If the same fact lives in many places, it will eventually disagree with itself.
Direct answer
Normalization is the process of organising tables so each fact is stored once. In first normal form each cell holds one value, in second normal form non-key columns depend on the whole key and in third normal form they depend only on the key, not on other columns.
A messy table
| order_id | customer | customer_email | items |
|---|---|---|---|
| 1 | Ada | ada@example.com | pen, book |
Problems
- Several items in one cell.
- Customer details repeated for each order.
Normalised design
customers(id, name, email)
orders(id, customer_id, created_at)
order_items(order_id, product_id, quantity)
products(id, name, price)
The three forms
- 1NF: one value per cell, no repeating groups.
- 2NF: every column depends on the whole primary key.
- 3NF: columns depend only on the key, not on other non-key columns.
Where Teyro fits
Teyro's SQL and Databases for Beginners course turns this into short lessons you can play in a few minutes a day. It has 50 lessons, and you can start free.
The bottom line
Store each fact once, then join when you need it.



