0% found this document useful (0 votes)
2 views6 pages

Normalization

Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views6 pages

Normalization

Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

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

You might also like