Unnormalized Form (UNF)

CS 3630
Database Design and Implementation
Second Normal Form (2NF)
A relation R is in 1NF, and
every non-primary-key attribute is fully
functionally dependent on the primary key
Then R is in 2NF.
No Partial FDs on PK.
2
Lease (RNo, RName, PNo, PAddress, Start, Finish, Rent, ONo, OName)
Primary Key: PNo, Start
FDs:
PNo, Start ---> RNo, RName, PAddress, Finish, Rent, ONo, OName
PNo ---> PAddress, ONo, Oname (Partial on PK!)
Lease1 (PNo, PAddress, ONo, OName)
Primary Key: Pno
Alternate Key: None
Foreign Key: None
FDs:
PNo ---> PAddress, ONo, OName
PAddress  Pno
ONo ---> OName
Lease2 (RNo, RName, PNo, Start, Finish, Rent)
Primary Key: PNo, Start
Alternate Key: None
Foreign Key: PNo References Lease1
FDs:
PNo, Start ---> RNo, RName, Finish, Rent
RNo ---> RName
3
Lease (RNo, RName, PNo, PAddress, Start, Finish, Rent, ONo, OName)
Primary Key: PNo, Start
Better Name for the Two Tables
Lease1 (PNo, PAddress, ONo, OName)
Primary Key: Pno
Property
Lease2 (RNo, RName, PNo, Start, Finish, Rent)
Primary Key: PNo, Start
Lease
4
Property (PNo, PAddress, ONo, OName)
Primary Key: PNo
FDs:
PNo ---> PAddress, ONo, OName
PAddress  PNo
ONo ---> OName
PNo
P1001
P1002
P1009
P2009
Table Instance
PAddress
ONo
1001 main
O100
2001 main
O109
1009 first
O109
2009 first
O109
OName
Tina
Tony
Tony
Tony
In 2NF?
But still some Redundancy
Reason?
5
Third Normal Form (3NF)
Relation R in 2NF, and
No non-Primary-Key attribute is
transitively functionally dependent on the
primary key
Then R is in 3NF.
No Transitive FDs on PK.
6
Transitive FDs
If A  B and B  C
Then A  C is always TRUE
(provided A is not functionally dependent on
either B or C)
(NO cycle!)
7
Transitive FDs
A
B
C
If
A  B and B  C
Then A  C
8
Transitive FDs
A
B
C
If
A  B and B  C
Then A C
Provided not B  A (A and B are equivalent)
nor C  A (A, B and C are equivalent)
No Cycle!
9
Property (PNo, PAddress, ONo, OName)
Primary Key: PNo
FDs:
PNo ---> PAddress, ONo, OName
PAddress ---> PNo
ONo ---> OName
PNo
P1001
P1002
P1009
P2009
Table Instance
PAddress
ONo
OName
1001 main
O100 Tina
2001 main
O109 Tony
1009 first
O109 Tony
2009 first
O109 Tony
In 2NF, but still some redundancy
Not in 3NF!
PNo ---> ONo, Oname
Ono --> Oname
(Oname is transitively functionally dependent on Pno)
10
Decompose Property into 3NF
Property (PNo, PAddress, ONo, OName)
PNo ---> PAddress, ONo, OName
PAddress ---> PNo
ONo ---> OName
Property1 (ONo, OName)
Primary Key: Ono
Alternate Keys: None
Foreign Keys: ?
FDs:
ONo ---> Oname
Property2 (PNo, PAddress, ONo)
Primary Key: PNo
Alternate Keys: PAddress
Foreign Keys: ?
FDs:
PNo ---> PAddress, ONo
PAddress  Pno
11
Decompose Property into 3NF
Property (PNo, PAddress, ONo, OName)
PNo ---> PAddress, ONo, OName
PAddress ---> PNo
ONo ---> OName
Property1 (ONo, OName)
Primary Key: Ono
Alternate Keys: None
Foreign Keys: None
FDs:
ONo ---> Oname
Better table name?
Owner
Property2 (PNo, PAddress, ONo)
Primary Key: PNo
Alternate Keys: PAddress
Foreign Keys: Ono references Property1
FDs:
PNo ---> PAddress, ONo
PAddress  Pno
Better table name?
Property
12
Decompose Property into 3NF
Property (PNo, PAddress, ONo, OName)
PNo ---> PAddress, ONo, OName
PAddress ---> PNo
ONo ---> OName
Owner (ONo, OName)
Primary Key: Ono
Alternate Keys: None
Foreign Keys: None
FDs:
ONo ---> Oname
Property (PNo, PAddress, ONo)
Primary Key: PNo
Alternate Keys: PAddress
Foreign Keys: Ono references Owner
FDs:
PNo ---> PAddress, ONo
PAddress  Pno
13
Table Instances
PNo
P1001
P1002
P1009
P2009
Owner
ONo
OName
O100 Tina
O109 Tony
Property
PAddress
ONo
1001 main
O100
2001 main
O109
1009 first
O109
2009 first
O109
PNo
P1001
P1002
P1009
P2009
OName
Tina
Tony
Tony
Tony
Property
PAddress
1001 main
2001 main
1009 first
2009 first
Ono
O100
O109
O109
O109
14
Final Tables
Lease
Property
Owner
15
Relation R
R (A, B, C, D, E, F)
Primary Key: A, B
Alternate Keys: None
Functional Dependencies:
A, B ---> C, D, E, F
C ---> D
E ---> F
Is it in 2NF?
Is it in 3NF?
How many tables we will have to decompose it into
3NF?
16
Exercise 3NF
A
1
1
2
2
B
x
y
x
y
Table Instance
C
D
E
10
100
se
20
200
cis
30
100
cis
10
100
ct
F
400
1000
1000
400
A, B ---> C, D, E, F
C ---> D
E ---> F
17
Decompose R into 3NF
R (A, B, C, D, E, F)
PK: A, B
AK: None
FK: None
FDs:
A, B ---> C, D, E, F
C ---> D
E ---> F
R1 (C, D)
Primary Key: C
Alternate Keys: None
Foreign Key: None
Functional Dependencies:
C ---> D
R3 (A, B, C, E)
Primary Key: A, B
Alternate Keys: None
Foreign Key: C References R1
E References R2
Functional Dependencies:
A, B ---> C, E
R2 (E, F)
Primary Key: E
Alternate Keys: None
Foreign Key: None
Functional Dependencies:
E ---> F
18
Table Instances
R (A, B, C, D, E, F)
A
B
C
D
1
x
10
100
1
y
20
200
2
x
30
100
2
y
10
100
R1 (C, D)
C
D
10
100
20
200
30
100
E
se
cis
cis
ct
F
400
1000
1000
400
R (A, B, C, E)
A
B
C
1
x
10
1
y
20
2
x
30
2
y
10
E
se
cis
cis
ct
R2 (E, F)
E
F
se
400
cis 1000
ct
400
19
Schedule
Assignment 5-2
Due Thursday, March 9
Quiz 2
Wednesday, March 8
20