Normal Form
Normal Form
Normalization
Presented By
Dr Jasmine Selvakumari Jeya I
Professor & Head/IT
Hindusthan College of Engineering and Technology
Coimbatore – 641 032
[email protected]
1
Normalization
• Normalization of a data is a process of analyzing the given
relation schema based on their Functional Dependency’s and
Primary Key to achieve the desirable properties of
– Minimizing Redundancy
– Minimizing the Insertion, Deletion and Update Anomalies.
2
KEYS
• Keys also help to identify relationships uniquely, and thus
distinguish relationships from each other.
• Various types of keys used in relational model are:
1. Super Key
2. Candidate Key
3. Primary Key
4. Foreign Key
3
1. Super key
• It is a set of one or more attributes within the table that can
be uniquely identify each record within a table. For example –
Consider the student table as follows
4
• The super key can be represented as follows:
6
7
3. Primary key
• The primary key is a candidate key chosen by the database
designer to identify the tuple in the relation uniquely. For
example – Consider the following representation of primary
key in the student table.
8
• Other than the above mentioned primary key, various possible
primary keys can be (Roll_no), (Roll_no, Phone_no). The relation
among superkey, candidate key and primary can be denoted by
• Candidate Key = Super Key – Primary Key
Rules for Primary Key
• 1. The primary key may have one or more attributes.
• 2. There is only one primary key in the relation.
• 3. The value of primary key attribute cannot be NULL.
• 4. The value of Primary key attribute does not get changed.
9
Types of Normal Forms
10
NORMAL FORM DESCRIPTION
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.
11
First Normal Form
• First Normal Form is defined in the definition of relations
(tables) itself. This rule defines that all the attributes in a
relation must have atomic domains. The values in an atomic
domain are indivisible units.
• As per the rule of first normal form, an attribute (column) of a
table cannot hold multiple values. It should hold only atomic
values.
12
Example
Suppose a company wants to store the names and contact details of its employees
• To make the table complies with 2NF we can break it in two table.
17
teacher_details table teacher_subject table
18
Third Normal Form (3NF)
• A table design is said to be in 3NF if both the following conditions hold:
– Table must be in 2NF
– Transitive functional dependency of non-prime attribute on any super
key should be removed.
• An attribute that is not part of any candidate key is known as non-prime
attribute.
• An attribute that is a part of one of the candidate keys is known as prime
attribute.
• In other words: A table is in 3NF if it is in 2NF and for each functional
dependency X->Y at least one of the following conditions hold:
– X is a super key of table
– Y is a prime attribute of table 19
Example
company wants to store the complete address of each employee, they create a table
named employee_details
emp_id emp_name emp_zip emp_state emp_city emp_district
1001 John 282005 UP Agra Dayal Bagh
1002 Ajeet 222008 TN Chennai M-City
1006 Lora 282007 TN Chennai Urrapakkam
1101 Lilly 292008 UK Pauri Bhagwan
1201 Steve 222999 MP Gwalior Ratan
Super keys: {emp_id}, {emp_id, emp_name}, {emp_id, emp_name, emp_zip}…so on
Candidate Keys: {emp_id}
Non-prime attributes: all attributes except emp_id are non-prime as they are not part of any
20
candidate keys.
• emp_state, emp_city & emp_district dependent on emp_zip.
• emp_zip is dependent on emp_id that makes non-prime
attributes (emp_state, emp_city & emp_district) transitively
dependent on super key (emp_id).
• This violates the rule of 3NF.
• To make this table complies with 3NF we have to break the
table into two tables to remove the transitive dependency:
21
To make this table complies with 3NF we have to break the table into two tables to
remove the transitive dependency:
employee table employee_zip table
22
Boyce Codd Normal Form (BCNF)
• It is an advance version of 3NF that’s why it is also referred as 3.5NF.
• BCNF is stricter than 3NF. A table complies with BCNF if it is in 3NF and for every
functional dependency X->Y, X should be the super key of the table.
Example:
Company wherein employees work in more than one department. They store the data like
this:
emp_id emp_nationality emp_dept dept_type dept_no_of_emp
1001 Austrian Production and planning D001 200
1001 Austrian stores D001 250
1002 American design and technical support D134 100
1002 American Purchasing department D134 600
23
• Functional dependencies in the table above:
– emp_id -> emp_nationality
– emp_dept -> {dept_type, dept_no_of_emp}
• Candidate key: {emp_id, emp_dept}
• The table is not in BCNF as neither emp_id nor emp_dept
alone are keys.
• To make the table comply with BCNF we can break the table in
three tables.
24
emp_nationality table emp_dept table
emp_id emp_nationality emp_dept dept_type dept_no_of_emp
1001 Austrian Production and planning D001 200
1002 American stores D001 250
design and technical support D134 100
Purchasing department D134 600
Functional dependencies:
emp_dept_mapping table
emp_id -> emp_nationality
26
Thank You !!!
27