Normalization is a process of organizing data in a database to reduce data redundancy and eliminate undesirable characteristics like insertion, deletion, and update anomalies. It involves creating tables and establishing relationships between those tables according to rules designed to protect the data and make the database more flexible by eliminating redundancy and inconsistent dependency. Normalization works through a series of stages called normal forms, and each normal form applies to individual relations. The following are the various types of normal forms:
-
First Normal Form (1NF): A relation is in 1NF if every attribute is a single-valued attribute or it does not contain any multi-valued or composite attribute, i.e., every attribute is an atomic attribute.
-
Second Normal Form (2NF): The normalization of 1NF relations to 2NF involves the elimination of partial dependencies. A partial dependency in DBMS exists when a non-key attribute is functionally dependent on only a part of the primary key.
-
Third Normal Form (3NF): The normalization of 2NF relations to 3NF involves the elimination of transitive dependencies. A transitive dependency in DBMS exists when a non-key attribute is functionally dependent on another non-key attribute.
-
Boyce-Codd Normal Form (BCNF): BCNF is a higher level of normalization than 3NF, and it eliminates all the anomalies that 3NF does not.
Normalization provides several advantages, including simplified database design, improved query performance, and easier database maintenance. However, excessive normalization can lead to complex queries and reduced performance.