Normal Forms
Normal Forms
Normal Description
Form
2NF A relation will be in 2NF if it is in 1NF and all non-key attributes are fully
functional dependent on the primary key.
4NF A relation will be in 4NF if it is in Boyce Codd normal form and has no multi-
valued dependency.
5NF A relation is in 5NF if it is in 4NF and not contains any join dependency and
joining should be lossless.
Example: Let's assume, a college can store the data of faculty and the subjects they teach. In a
college, a faculty can teach more than one subject.
FACULTY table
25 Chemistry 30
25 Biology 30
47 English 35
83 Math 38
83 Computer 38
FAC_ID FAC_AGE
25 30
47 35
83 38
o FACULTY_SUBJECT table:
FAC_ID SUBJECT
25 Chemistry
25 Biology
47 English
83 Math
83 Computer
A relation is in third normal form if it holds atleast one of the following conditions for every
non-trivial function dependency X → Y.
1. X is a super key.
2. Y is a prime attribute, i.e., each element of Y is part of some candidate key.
Example:
STAFF_DETAIL table:
STAFF table:
520001 AP Vijayawada
530001 AP Guntur
500001 TG Hyderabad
500010 TG Hyderabad
520003 AP Vijayawada
Example: Let's assume there is a company where staff work in more than one department.
STAFF table:
1. STAFF_ID → STAFF_COUNTRY
2. STAFF_DEPT → {DEPT_TYPE, STAFFP_DEPT_NO}
STAFF_COUNTRY table:
STAFF_ID STAFF_COUNTRY
264 India
264 India
STAFF_DEPT table:
STAFF_ID STAFF_DEPT
D394 283
D394 300
D283 232
D283 549
Functional dependencies:
1. STAFF_ID → STAFF_COUNTRY
2. STAFF_DEPT → {DEPT_TYPE, STAFF_DEPT_NO}
Candidate keys:
For the first table: STAFF_ID
For the second table: STAFF_DEPT
For the third table: {STAFF_ID,STAFF_DEPT}
Fourth normal form (4NF)
o A relation will be in 4NF if it is in Boyce Codd normal form and has no multi-valued
dependency.
o For a dependency A → B, if for a single value of A, multiple values of B exists, then the
relation will be a multi-valued dependency.
Example
STUDENT
STU_ID COURSE HOBBY
21 Computer Dancing
21 Math Singing
34 Chemistry Dancing
74 Biology Cricket
59 Physics Hockey
The given STUDENT table is in 3NF, but the COURSE and HOBBY are two independent
entity. Hence, there is no relationship between COURSE and HOBBY.
So to make the above table into 4NF, we can decompose it into two tables:.6M
How to find Nth Highest Salary in SQL
STUDENT_COURSE
STU_ID COURSE
21 Computer
21 Math
34 Chemistry
74 Biology
59 Physics
STUDENT_HOBBY
STU_ID HOBBY
21 Dancing
21 Singing
34 Dancing
74 Cricket
59 Hockey
o A relation is in 5NF if it is in 4NF and not contains any join dependency and joining
should be lossless.
o 5NF is satisfied when all the tables are broken into as many tables as possible in order to
avoid redundancy.
o 5NF is also known as Project-join normal form (PJ/NF).
Example
Suppose we add a new Semester as Semester 3 but do not know about the subject and who will be taking
that subject so we leave Lecturer and Subject as NULL. But all three columns together acts as a primary
key, so we can't leave other two columns blank.
So to make the above table into 5NF, we can decompose it into three relations P1, P2 & P3:
P16M493HTML Tutorial
SEMESTER SUBJECT
Semester 1 Computer
Semester 1 Math
Semester 1 Chemistry
Semester 2 Math
P2
SUBJECT LECTURER
Computer Prasad
Computer Rao
Math Bhanu
Math Babu
Chemistry Sri
P3
SEMSTER LECTURER
Semester 1 Prasad
Semester 1 Rao
Semester 1 Bhanu
Semester 2 Babu
Semester 1 Sri
Relational Decomposition
o When a relation in the relational model is not in appropriate normal form then the
decomposition of a relation is required.
o In a database, it breaks the table into multiple tables.
o If the relation has no proper decomposition, then it may lead to problems like loss of
information.
o Decomposition is used to eliminate some of the problems of bad design like anomalies,
inconsistencies, and redundancy.
Types of Decomposition
Lossless Decomposition
o If the information is not lost from the relation that is decomposed, then the decomposition
will be lossless.
o The lossless decomposition guarantees that the join of relations will result in the same
relation as it was decomposed.
o The relation is said to be lossless decomposition if natural joins of all the decomposition
give the original relation.
Example:
EMPLOYEE_DEPARTMENT table:
EMP_ID EMP_NAME EMP_AGE EMP_CITY DEPT_ID DEPT_NAME
22 Mani 28 Mumbai
33 Sri 25 Delhi
46 Satya 30 Bangalore
52 Rao 36 Mumbai
60 Balaji 40 Noida
DEPARTMENT table
DEPT_ID EMP_ID DEPT_NAME
827 22 Sales
438 33 Marketing
869 46 Finance
575 52 Production
678 60 Testing
Now, when these two relations are joined on the common column "EMP_ID", then the resultant
relation will look like:
Employee ⋈ Department
EMP_ID EMP_NAME EMP_AGE EMP_CITY DEPT_ID DEPT_NAME
Multivalued Dependency
o Multivalued dependency occurs when two attributes in a table are independent of each
other but, both depend on a third attribute.
o A multivalued dependency consists of at least two attributes that are dependent on a third
attribute that's why it always requires at least three attributes.
Example: Suppose there is a bike manufacturer company which produces two colors(white and
black) of each model every year.
Join Dependency