What is Normalization?
A design procedure that splits relational database tables based on functional dependencies between columns so that the same fact is not recorded in several places. It removes duplicated data and prevents update, insertion and deletion anomalies. Its stages include first to third normal form and Boyce-Codd normal form.
Japanese name: 正規化
Normalization appears in 2 practice questions across 1 topic, including Database Basics.
Field: Database Basics
Anomalies prevented by normalization
In an unnormalized table, the same fact is recorded repeatedly in many rows. If every row of an employee table also holds the department name, for example, renaming a department requires rewriting every row of that department's employees, and missing any of them leaves the contents inconsistent (an update anomaly). A department with no employees yet cannot be registered (an insertion anomaly), and deleting a department's last employee erases the department's information as well (a deletion anomaly). Moving department information into a separate table records each fact in only one place and prevents these anomalies.
FAQ
What is the difference between second and third normal form?
Second normal form has no column determined by only part of the primary key (no partial functional dependency). Third normal form additionally has no column determined via a column other than the primary key (no transitive functional dependency). A table with a single-column primary key is automatically in second normal form if it is in first normal form.
Does normalization make searches faster?
Not necessarily. The purpose of normalization is to remove duplication and prevent anomalies when updating; splitting tables means more joins for searches. When read performance is important, tables are sometimes deliberately denormalized.