Normalization is a process of organizing data in a database to reduce data redundancy and improve data integrity. It involves creating tables and establishing relationships between those tables according to rules designed to eliminate redundancy and inconsistent dependency. Normalization rules divide larger tables into smaller tables and link them using relationships. The process is progressive, and a higher level of database normalization cannot be achieved unless the previous levels have been satisfied. There are several normal forms, including:
-
First Normal Form (1NF): Each table cell should contain a single value.
-
Second Normal Form (2NF): Each non-key column should be functionally dependent on the entire primary key.
-
Third Normal Form (3NF): Each non-key column should be functionally dependent on the primary key, and not on any other non-key column.
-
Boyce-Codd Normal Form (BCNF): A stronger version of 3NF, where every determinant is a candidate key.
Normalization is accomplished by applying some formal rules either by a process of synthesis (creating a new database design) or decomposition (improving an existing database design) . A fully normalized database allows its structure to be extended to accommodate new types of data without changing the existing structure too much. Normalized relations and the relationship between one normalized relation and another mirror real-world concepts and their interrelationships.