What is database normalization and what are the normal forms?
Database normalization is the process of structuring a relational schema to reduce data redundancy and eliminate update anomalies. The motivation: storing the same fact in multiple places means updates must happen in multiple places -- miss one, and the database becomes inconsistent. Normalization progressively decomposes tables based on functional dependencies.
First Normal Form (1NF) requires that each column contain only atomic (indivisible) values and that each row be uniquely identifiable. A column storing comma-separated tags or a repeating group of columns (phone1, phone2, phone3) violates 1NF. Fix: extract multi-valued attributes into a separate table with a foreign key.
Second Normal Form (2NF) requires 1NF plus that every non-key column is fully functionally dependent on the entire primary key -- no partial dependencies. This applies only to tables with composite primary keys. If a table (OrderID, ProductID, ProductName) has ProductName depending on ProductID alone (not the full composite key), ProductName is a partial dependency. Fix: move ProductName to a Products table keyed by ProductID.
Third Normal Form (3NF) requires 2NF plus no transitive dependencies -- no non-key column should depend on another non-key column. If a table has (EmployeeID, DepartmentID, DepartmentName) and DepartmentName depends on DepartmentID (not EmployeeID directly), that is a transitive dependency. Fix: move DepartmentName to a Departments table. 3NF is the practical target for most OLTP schemas.
Boyce-Codd Normal Form (BCNF) strengthens 3NF by requiring that every determinant is a candidate key. Some 3NF tables with overlapping candidate keys still have anomalies; BCNF eliminates them.
Normalization improves write integrity and reduces storage but can hurt read performance by requiring joins. OLAP systems often deliberately denormalize (star/snowflake schemas) to reduce join complexity for analytical queries.
Candidate can define 1NF, 2NF, and 3NF with reasonable accuracy and understands that normalization removes redundancy, but cannot give concrete examples of partial vs transitive dependencies or discuss denormalization trade-offs.
Candidate defines 1NF through 3NF precisely with concrete examples of each violation and fix, explains functional dependencies clearly, mentions BCNF, discusses read-performance trade-offs, and knows when to denormalize for OLAP workloads.
Reading the answer is step one. Explaining it unprompted — under interview pressure — is what actually matters. Get AI-graded feedback on your answer with follow-up probes on your weak points.
Get Graded — Free Assessment