Database normalization is the process of organizing tables so each fact is stored once, reducing duplication and update anomalies. It is described by normal forms, such as 1NF, 2NF, and 3NF.
Why it matters
Without normalization, the same customer address can be copied onto thousands of order rows, and changing it means updating them all, with a risk of inconsistencies. Normalized designs keep data accurate and smaller. The cost is more joins at read time, so reporting systems and some high-read workloads deliberately denormalize.
Example
Unnormalized:
orders(id, customer_name, customer_email, product, price)
Normalized into related tables:
customers(id, name, email)
products(id, title, price)
orders(id, customer_id, product_id)
Changing an email now touches exactly one row.
Common mistakes
- Normalizing to the extreme where simple pages need ten joins.
- Denormalizing early "for performance" without measuring, then living with inconsistent copies.
- Storing multiple values in one column instead of creating a child table.
Related
Get notified when this term updates
Plus occasional practical tips on uptime and monitoring, nothing else. Unsubscribe anytime.
This page is general information written by our editorial team and updated when documentation changes. Servers and providers differ, so test changes safely first. See our editorial policy and disclaimer.