~4 min read • Updated Apr 15, 2026
Introduction
Database Normalization is one of the fundamental principles of relational database design, introduced by Edgar F. Codd. Its main goal is to reduce data redundancy and eliminate insertion, update, and deletion anomalies. Normalization is achieved by applying progressive rules known as Normal Forms. Each higher form includes the requirements of the previous ones and adds stricter conditions.
In practice, most projects stop at 3NF or BCNF, but understanding all 7 layers is essential for professional database design.
1st Layer: First Normal Form (1NF)
A table must contain atomic (indivisible) values. Each cell should hold only one value, not a list or set.
Requirements:
- Each column must contain a single value
- No repeating groups allowed
- Each row must be unique (usually enforced by a Primary Key)
Non-normalized example:
StudentID | Name | Courses
1 | Ali | Math, PhysicsAfter 1NF:
StudentID | Name | Course
1 | Ali | Math
1 | Ali | Physics2nd Layer: Second Normal Form (2NF)
A table must be in 1NF and have no partial dependencies. All non-key columns must depend on the entire Primary Key, not just part of it.
Example: A StudentCourse table with a composite key (StudentID, CourseID) where StudentName depends only on StudentID → it must be moved to a separate table.
3rd Layer: Third Normal Form (3NF)
A table must be in 2NF and have no transitive dependencies. No non-key column should depend on another non-key column.
Example: An Employee table with columns EmployeeID, Department, DepartmentLocation → DepartmentLocation depends on Department, not directly on EmployeeID.
4th Layer: Boyce-Codd Normal Form (BCNF)
A stronger version of 3NF. For every functional dependency X → Y, X must be a Super Key.
BCNF covers all functional dependencies more strictly and is sometimes required even when 3NF is technically satisfied.
5th Layer: Fourth Normal Form (4NF)
A table must be in BCNF and have no multi-valued dependencies (independent multivalued facts).
Example: A table storing both EmployeeSkills and EmployeeLanguages as independent facts → these should be split into separate tables.
6th Layer: Fifth Normal Form (5NF) or Project-Join Normal Form (PJ/NF)
A table must be in 4NF and have no join dependencies that are not implied by the candidate keys. The table cannot be decomposed into smaller tables and then rejoined without losing information.
This form is used for very complex cases involving cyclic dependencies.
7th Layer: Sixth Normal Form (6NF) and Domain-Key Normal Form (DKNF)
6NF: The highest level of normalization where each table holds only one type of fact. Tables usually consist of two columns (a key + one attribute). It is particularly useful for temporal data and versioning.
Domain-Key Normal Form (DKNF): A table is in DKNF if all constraints are a logical consequence of domain constraints and key constraints. This form is mostly theoretical and rarely applied in practice.
Advantages and Disadvantages of Normalization
Advantages:
- Reduces data redundancy
- Eliminates insertion, update, and deletion anomalies
- Improves data integrity
Disadvantages:
- Increases the number of tables and complexity of JOINs
- May reduce performance in complex queries (sometimes denormalization is needed)
Practical Tips
- In most real-world projects, 3NF or BCNF is sufficient.
- For Data Warehouses and analytical systems, denormalization is common.
- Always balance normalization with performance requirements.
Conclusion
Database Normalization, through the application of 7 Normal Forms, transforms tables into a logical, redundancy-free structure. A deep understanding of these layers helps database designers create efficient, maintainable, and anomaly-free databases. While 1NF to 3NF or BCNF are most commonly used, awareness of higher forms (4NF to 6NF) is essential for handling complex scenarios.
Written & researched by Dr. Shahin Siami