1NF (First Normal Form)
Not in 1NF (repeating / multi-valued column)
StudentID Name Subjects
1 Ravi Math, Science
2 Anu English, History
Problem: Subjects column has multiple values.
In 1NF (atomic values)
StudentID Name Subject
1 Ravi Math
1 Ravi Science
2 Anu English
2 Anu History
2NF (Second Normal Form)
Primary Key = (StudentID, Subject)
Not in 2NF (partial dependency)
StudentID Subject StudentName
1 Math Ravi
1 Science Ravi
Problem: StudentName depends only on StudentID, not on full key (StudentID, Subject).
In 2NF (remove partial dependency)
Student Table
StudentID StudentName
1 Ravi
2 Anu
Enrollment Table
StudentID Subject
1 Math
1 Science
2 English
3NF (Third Normal Form)
Not in 3NF (transitive dependency)
EmpID DeptID DeptName
101 D1 HR
102 D2 IT
EmpID → DeptID → DeptName
In 3NF
Employee Table
EmpID DeptID
101 D1
102 D2
Department Table
DeptID DeptName
D1 HR
DeptID DeptName
D2 IT
BCNF (Boyce-Codd Normal Form)
Not in BCNF
Student Course Instructor
Ravi DBMS Prof.A
Ravi OS Prof.B
Anu DBMS Prof.A
Functional Dependency:
Instructor → Course (Instructor is not a candidate key)
In BCNF
Instructor Table
Instructor Course
Prof.A DBMS
Prof.B OS
Student Table
Student Instructor
Ravi Prof.A
Anu Prof.A
Ravi Prof.B
4NF (Fourth Normal Form)
Not in 4NF (multi-valued dependency)
Student Skill Hobby
Ravi Java Cricket
Ravi Python Music
Student → Skill
Student → Hobby
(Independent multi-valued dependencies)
In 4NF
Student-Skill Table
Student Skill
Ravi Java
Ravi Python
Student-Hobby Table
Student Hobby
Ravi Cricket
Ravi Music
5NF (Fifth Normal Form)
Not in 5NF (join dependency)
Supplier Product Project
S1 P1 J1
S2 P2 J2
In 5NF (decomposed into 3 tables)
Supplier-Product
Supplier Product
S1 P1
S2 P2
Supplier-Project
Supplier Project
S1 J1
S2 J2
Product-Project
Product Project
P1 J1
P2 J2
Rejoining all three gives original data without loss.
First Normal Form (1NF)
A table is in 1NF if:
• Each column contains atomic (single) values
• No repeating groups or multi-valued attributes
• Each record can be uniquely identified (primary key)
Second Normal Form (2NF)
A table is in 2NF if:
• It is already in 1NF
• All non-key attributes are fully functionally dependent on the whole primary key (no
partial dependency)
Example (Not in 2NF):
Primary Key = (StudentID, CourseID)
But StudentName depends only on StudentID → partial dependenc
Third Normal Form (3NF)
A table is in 3NF if:
• It is already in 2NF
• No transitive dependency (non-key attribute depends on another non-key attribute)
Example (Not in 3NF):
| EmpID | DeptID | DeptName |
EmpID → DeptID → DeptName (transitive dependency)
Boyce-Codd Normal Form (BCNF)
A stronger version of 3NF.
A table is in BCNF if:
• For every functional dependency A → B, A must be a super key
Used when 3NF still has anomalies.
Fourth Normal Form (4NF)
A table is in 4NF if:
• It is in BCNF
• No multi-valued dependency