Normalization organizes data so each fact lives in exactly one place, removing redundancy. Denormalization deliberately duplicates data to make reads faster. Most schemas start normalized and denormalize only where measurements demand it.
Normalization (up to 3NF)
Each table describes one entity; related data is referenced by foreign key.
-- Normalized: a customer's city is stored once
customers(id, name, city_id)
cities(id, name)
orders(id, customer_id, total)
