What is Normalization?
Normalization is a step wise formal process that allows us to decompose database tables in such a way that both data redundancy and update anomalies are minimized.
Normalization Process
Courtesy
First normal form if and only if the domain of each attribute contains only atomic values (an atomic value is a value that cannot be divided), and the value of each attribute contains only a single value from that domain(example:- domain for the gender column is: "M", "F". ).
First normal form enforces these criteria:
- Eliminate repeating groups in individual tables.
- Create a separate table for each set of related data.
- Identify each set of related data with a primary key
Second normal form = 1NF + no partial dependencies i.e. All non-key attributes are fully functional dependent on the primary key.
Third normal form = 2NF + no transitive dependencies i.e. All non-key attributes are fully functional dependent DIRECTLY only on the primary key.
Boyce–Codd normal form (or BCNF or 3.5NF) is a slightly stronger version of the third normal form (3NF).
Note:- Second, Third, and Boyce–Codd normal forms are concerned with functional dependencies.
Examples
Fourth normal form = 3NF + remove Multivalued dependencies
Fifth normal form = 4NF + remove join dependencies