Notes on Normalization - Database management
Notes on Normalization - Database management
Normalization
🔶 Introduction to Normalization
Normalization is a database design technique used to minimize data redundancy and eliminate
anomalies in relational databases.
📌 The goal of normalization is to organize data into well-structured tables to ensure data
consistency, integrity, and efficient querying.
Rule:
Violation Example:
✅ Fix:
Split multivalued fields into separate rows.
Rule:
Be in 1NF
No partial dependency (non-prime attributes should depend on the whole primary key)
Violation Example:
✅ Fix:
Separate the Course-Instructor relation into a new table.
🔹 3NF – Third Normal Form
Rule:
Be in 2NF
No transitive dependency (non-key depends on another non-key)
Violation Example:
✅ Fix:
Separate Department info into its own table.
Rule:
Violation Example:
If one instructor teaches only one course, but multiple instructors teach in the same room —
Room depends on Instructor, not Course.
✅ Fix:
Break into two tables.
Rule:
Be in BCNF
No multi-valued dependencies
Violation Example:
Student Hobby Language
Alice Painting English
Alice Painting French
Alice Cycling English
Alice Cycling French
✅ Fix:
Separate hobbies and languages into different tables.
Rule:
🔶 Denormalization
In some cases, data is intentionally denormalized to improve performance, especially for
reporting or read-heavy systems.
All BCNF is 3NF, but not all 3NF is BCNF. BCNF handles more edge cases where non-prime
attributes are still candidate keys.
No. OLAP systems (data warehouses) often use denormalized structures (star/snowflake
schemas).
No. Each form builds on the previous; 1NF is always the first step.