Unit 2.3
Unit 2.3
Normalization
• Normalization is the process of organizing the data in the database.
• Normalization is used to minimize the redundancy from a relation or set of
relations. It is also used to eliminate the undesirable characteristics like Insertion,
Update and Deletion Anomalies.
• Normalization divides the larger table into the smaller table and links them using
relationship.
• The normal form is used to reduce redundancy from the database table.
Normal Forms
Normal Forms
Normal Description
Form
1 NF A relation is in 1NF if it contains an atomic value.
2 NF A relation will be in 2NF if it is in 1NF and all non-key attributes
are fully functional dependent on the primary key.
3 NF A relation will be in 3NF if it is in 2NF and no transition
dependency exists.
BCNF A relation will be in BCNF if every functional dependency X → Y,
X is the super key of the table.
1NF
• A relation will be 1NF if it contains an atomic value.
• It states that an attribute of a table cannot hold multiple values. It must hold only
single-valued attribute.
• First normal form disallows the multi-valued attribute, composite attribute, and their
combinations.
• Example: EMPLOYEE is not in 1NF because of multi-valued attribute EMP_PHONE.
EMPLOYEE table:
EMP_ID EMP_NAME EMP_PHONE EMP_STATE
14 John 7272826385, UP
9064738238
• The decomposition of the EMPLOYEE table into 1NF has been shown below:
14 John 7272826385 UP
14 John 9064738238 UP
25 Chemistry 30
25 Biology 30
47 English 35
83 Math 38
83 Computer 38
25 30
47 35
83 38
TEACHER_SUBJECT table:
TEACHER_ID SUBJECT
25 Chemistry
25 Biology
47 English
83 Math
83 Computer
3NF
• A relation will be in 3NF if it is in 2NF and not contain any transitive dependency.
• 3NF is used to reduce the data duplication.
• If there is no transitive dependency for non-prime attributes, then the relation must be in third normal
form.
• Transitive dependency one non-prime attribute is dependent on another non-prime attribute
• A relation is in third normal form if it holds function dependency X → Y.
• X is a super key; Y is a prime attribute, i.e., each element of Y is part of some candidate key.
EMPLOYEE_DETAIL table:
EMPLOYEE_ZIP table:
201010 UP Noida
02228 US Boston
60007 US Chicago
06389 UK Norwich
462007 MP Bhopal
BCNF-Boyce Codd NF
• BCNF is the advance version of 3NF. It is stricter than 3NF.
• A table is in BCNF if every functional dependency X → Y, X is the super key of the table.
• For BCNF, the table should be in 3NF, and for every FD, LHS is super key.
Example: Let's assume there is a company where employees work in more than one department.
EMPLOYEE table:
EMP_DEPT_MAPPING table:
EMP_ID EMP_DEPT
264 283
264 300
364 232
364 549
BCNF
Functional dependencies:
• EMP_ID → EMP_COUNTRY
• EMP_DEPT → {DEPT_TYPE, EMP_DEPT_NO}
Candidate keys: