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.
Normal Forms:
Normalization rules are divided into the following normal forms:
First Normal Form (1NF):
Relational schema R is in 1NF if every attribute of R is single valued (Atomic). [No multi-valued attribute in R]
Above relation is not in 1NF because it has multi valued attribute (Cn). So arrange the relation as
Second Normal Form (2NF):
Relational schema R is in 2NF if it is in 1NF and there are no partial dependencies in R.
Example: Consider the relation
Stuid | Subjectid | Marks | Teacher |
1 | 10 | 65 | Java teacher |
1 | 20 | 78 | C++ teacher |
2 | 10 | 70 | Java teacher |
In above relation Stuid + Subjectid is the candidate key and it is the primary key. It uniquely identifies any tuple in relation.
If observed carefully there is a dependency between Subjectid and Teacher. And Subjectid is part of primary key, so there is a partial dependency in the relation.
Partial dependency can be eliminated by decomposing the relation as follows:
Score:
Stuid | Subjectid | Marks |
1 | 10 | 65 |
1 | 20 | 78 |
2 | 10 | 70 |
Subject:
Subjectid | Teacher |
10 | Java teacher |
20 | C++ teacher |
10 | Java teacher |
Third Normal Form(3NF):
A relation is in 3NF if it is in 2NF and there are no transitive dependencies in the relation
Example: Consider the relation
ID | Name | Subject | State | Country |
29 | Lalita | English | Gujrat | India |
33 | Ramesh | Geography | Punjab | India |
49 | Sarita | Mathematics | Maharashtra | India |
The candidate key in the above table is ID.
The functional dependency set can be defined as Id->Name, Id->Subject, Id->State, State->Country.
For the above relation, Id->State, State->Country is true. So we deduce that Country is transitively dependent upon Id. This does not satisfy the conditions of the Third Normal Form. The realtion can be
decomposed to eliminate transitive dependency as
Teacher:
ID | Name | Subject |
29 | Lalita | English |
33 | Ramesh | Geography |
49 | Sarita | Mathematics |
State_country:
State | Country |
Gujrat | India |
Punjab | India |
Maharashtra | India |
Boyce-Codd Normal Form(BCNF):
A relation is in BCNF if it is in 3NF and for every dependency X → Y, X should be a super key.
It means that for every dependency X → Y, X cannot be a non prime attribute if Y is a prime attribute.
Example:
Stuid | Subject | Teacher |
101 | Java | Javateacher |
101 | C++ | C++teacher |
102 | Java | Javateacher |
103 | C# | C#teacher |
In above relation Studid + Subject is primary key. There is a dependency between Subject and Teacher (Teacher → Subject). Teacher is a non prime attribute and Subject is prime attribute. This relation violates BCNF.
Decomposing the realation as:
Professor:
Pid | Subject | Teacher |
1 | Java | Javateacher |
2 | C++ | C++teacher |
3 | C# | C#teacher |
Student:
Stuid | Pid |
101 | 1 |
101 | 2 |
102 | 1 |
103 | 3 |
0 comments:
Post a Comment