A relation is said to be in 1NF if it contains
no non-atomic values and each row can provide a unique combination of values.
The above table in UNF can be processed to create the following table in 1NF.
Emp-Id |
Emp-Name
|
Month
|
Sales
|
Bank-Id
|
Bank-Name
|
E01
|
AA
|
Jan
|
1000
|
B01
|
SBI
|
E01
|
AA
|
Feb
|
1200
|
B01
|
SBI
|
E01
|
AA
|
Mar
|
850
|
B01
|
SBI
|
E02
|
BB
|
Jan
|
2200
|
B02
|
UTI
|
E02
|
BB
|
Feb
|
2500
|
B02
|
UTI
|
E03
|
CC
|
Jan
|
1700
|
B01
|
SBI
|
E03
|
CC
|
Feb
|
1800
|
B01
|
SBI
|
E03
|
CC
|
Mar
|
1850
|
B01
|
SBI
|
E03
|
CC
|
Apr
|
1725
|
B01
|
SBI
|
As you can see now, each row contains unique
combination of values. Unlike in UNF, this relation contains only atomic
values, i.e. the rows can not be further decomposed, so the relation is now in
1NF.
Second Normal Form
(2NF)
A relation is said to be in 2NF f if it is
already in 1NF and each and every attribute fully depends on the primary key of
the relation. Speaking inversely, if a table has some attributes which is not
dependant on the primary key of that table, then it is not in 2NF.
Let us explain. Emp-Id is the primary key of
the above relation. Emp-Name, Month, Sales and Bank-Name all depend upon
Emp-Id. But the attribute Bank-Name depends on Bank-Id, which is not the
primary key of the table. So the table is in 1NF, but not in 2NF. If this position
can be removed into another related relation, it would come to 2NF.
Emp-Id
|
Emp-Name
|
Month
|
Sales
|
Bank-Id
|
E01
|
AA
|
JAN
|
1000
|
B01
|
E01
|
AA
|
FEB
|
1200
|
B01
|
E01
|
AA
|
MAR
|
850
|
B01
|
E02
|
BB
|
JAN
|
2200
|
B02
|
E02
|
BB
|
FEB
|
2500
|
B02
|
E03
|
CC
|
JAN
|
1700
|
B01
|
E03
|
CC
|
FEB
|
1800
|
B01
|
E03
|
CC
|
MAR
|
1850
|
B01
|
E03
|
CC
|
APR
|
1726
|
B01
|
Bank-Id
|
Bank-Name
|
B01
|
SBI
|
B02
|
UTI
|
After removing the portion into another
relation we store lesser amount of data in two relations without any loss
information. There is also a significant reduction in redundancy.
Third Normal Form
(3NF)
A relation is said to be in 3NF, if it is
already in 2NF and there exists no transitive dependency in
that relation. Speaking inversely, if a table contains transitive dependency,
then it is not in 3NF, and the table must be split to bring it into 3NF.
What is a transitive dependency? Within a
relation if we see
A → B [B depends on A]
And
B → C [C depends on B]
Then we may derive
A → C[C depends on A]
A → B [B depends on A]
And
B → C [C depends on B]
Then we may derive
A → C[C depends on A]
Such derived dependencies hold well in most of
the situations. For example if we have
Roll → Marks
And
Marks → Grade
Then we may safely derive
Roll → Grade.
Roll → Marks
And
Marks → Grade
Then we may safely derive
Roll → Grade.
This third dependency was not originally
specified but we have derived it.
The derived dependency is called a transitive
dependency when such dependency becomes improbable. For example we have been given
Roll → City
And
City → STDCode
Roll → City
And
City → STDCode
If we try to derive Roll → STDCode it becomes
a transitive dependency, because obviously the STDCode of a city cannot depend
on the roll number issued by a school or college. In such a case the relation
should be broken into two, each containing one of these two dependencies:
Roll → City
And
City → STD code
Roll → City
And
City → STD code
Boyce-Code Normal Form
(BCNF)
A relationship is said to be in BCNF if it is
already in 3NF and the left hand side of every dependency is a candidate key. A
relation which is in 3NF is almost always in BCNF. These could be same
situation when a 3NF relation may not be in BCNF the following conditions are
found true.
1.
The candidate keys are
composite.
2.
There are more than
one candidate keys in the relation.
3.
There are some common
attributes in the relation.
Professor Code
|
Department
|
Head of Dept.
|
Percent Time
|
P1
|
Physics
|
Ghosh
|
50
|
P1
|
Mathematics
|
Krishnan
|
50
|
P2
|
Chemistry
|
Rao
|
25
|
P2
|
Physics
|
Ghosh
|
75
|
P3
|
Mathematics
|
Krishnan
|
100
|
Consider, as an example, the above relation.
It is assumed that:
1.
A professor can work
in more than one department
2.
The percentage of the
time he spends in each department is given.
3.
Each department has
only one Head of Department