Intermediate Topic 21 of 51 Databases
Normalization
Organizing tables to reduce redundancy.
How it works
Normalization organizes tables to reduce redundancy and avoid update, insert and delete anomalies by ensuring each fact is stored once, in the place where it belongs. It works by decomposing tables according to functional dependencies, so that non-key attributes depend only on the key. Designs go through successive normal forms, from first to third, and Boyce-Codd normal form is commonly targeted for transactional systems.
Step-by-step walkthrough
- A single wide table repeats customer data on every order.
- Duplicates cause update, insert and delete anomalies.
- Split the data into tables with one fact each.
- Orders and products get their own tables.
- Foreign keys link them, so each fact is stored once.
Where it is used
Operational databases for orders, accounts and inventory use normalization so that changing a customer's address requires updating one row, keeping data consistent.
Common pitfall
Over-normalizing creates many tiny tables and expensive joins. Under-normalizing leads to duplicated data that diverges. Normalize by understanding the real dependencies, not by memorizing rules. For analytics or read-heavy workloads, selective denormalization may be appropriate. Check design with typical queries and update scenarios.
Where it fits in the course
Normalization is topic 21 of 51 in Databases, rated Intermediate. It follows Indexes. The next topic is Normal Forms.
Practice and explore
- Open the interactive lesson, with a mini quiz.
- Take the Databases quiz.
How to study this topic
- Read the explanation above and restate the definition in your own words.
- Open the interactive lesson and answer its mini quiz.
- Read the common pitfall, then write a short example that avoids it.
- Check your understanding in the Databases quiz, and revisit the topic if you miss a question.
Frequently asked questions
What is Normalization?
Where do people use Normalization?
What is the most common mistake with Normalization?
What should I learn before this topic?
How can I practice it?
Is Normalization hard to learn?
How long does it take to learn Normalization?
Which topics are related to Normalization?
What should I study after Normalization?
Related topics
- Indexes (Databases)
- Normal Forms (Databases)
- Views (Databases)
- Denormalization (Databases)