What is Database Normalization?

Normalization is the practice of organising tables so that each fact is stored in one place, which avoids repetition and inconsistent updates.

Database Normalization explained

Instead of storing a customer's address on every order row, a normalised design keeps it once in a customers table and refers to it by id. Change the address once and every order sees the new value.

Normalised designs suit systems that record transactions. For reporting, teams often deliberately denormalise into wider tables so queries need fewer joins.

Example

Putting product name and price in a products table, and only product_id on each order line, is normalised. Repeating the name on every line is not.

How it differs from similar terms

Denormalisation deliberately repeats data to make reads simpler and faster.

Frequently asked questions

What is Database Normalization?
Normalization is the practice of organising tables so that each fact is stored in one place, which avoids repetition and inconsistent updates.
Can you give an example of Database Normalization?
Putting product name and price in a products table, and only product_id on each order line, is normalised. Repeating the name on every line is not.
How is Database Normalization different from similar terms?
Denormalisation deliberately repeats data to make reads simpler and faster.