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. Slides 2-5 copied from Note14 and should be removed after done Could keep all slides here! Enough time to answer all questions!
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 PNo ---> PAddress, ONo, OName PAddress Pno ONo ---> OName Lease2 (RNo, RName, PNo, Start, Finish, Rent) Foreign Key: PNo References Lease1 PNo, Start ---> RNo, RName, Finish, Rent RNo ---> RName
Better Name for the Two Tables 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) Lease
Property (PNo, PAddress, ONo, OName) Primary Key: PNo FDs: PNo ---> PAddress, ONo, OName PAddress PNo ONo ---> OName Table Instance PNo PAddress ONo OName P1001 1001 main O100 Tina P1002 2001 main O109 Tony P1009 1009 first O109 Tony P2009 2009 first O109 Tony In 2NF? But still some Redundancy Reason?
Third Normal Form (3NF) No Transitive FDs on PK. 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.
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!)
Transitive FDs A B C If A B and B C Then A C
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!
Property (PNo, PAddress, ONo, OName) FDs: Primary Key: PNo FDs: PNo ---> PAddress, ONo, OName PAddress ---> PNo ONo ---> OName Table Instance PNo PAddress ONo OName P1001 1001 main O100 Tina P1002 2001 main O109 Tony P1009 1009 first O109 Tony P2009 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)
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
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
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
Table Instances Property PNo PAddress ONo OName P1001 1001 main O100 Tina P1002 2001 main O109 Tony P1009 1009 first O109 Tony P2009 2009 first O109 Tony Property PNo PAddress Ono P1001 1001 main O100 P1002 2001 main O109 P1009 1009 first O109 P2009 2009 first O109 Owner ONo OName O100 Tina O109 Tony
Final Tables Lease Property Owner
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?
Exercise 3NF Table Instance A B C D E F 1 x 10 100 se 400 1 y 20 200 cis 1000 2 x 30 100 cis 1000 2 y 10 100 ct 400 A, B ---> C, D, E, F C ---> D E ---> F
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 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 R1 (C, D) Primary Key: C Alternate Keys: None Foreign Key: None Functional Dependencies: C ---> D R2 (E, F) Primary Key: E Alternate Keys: None Foreign Key: None Functional Dependencies: E ---> F
Table Instances R (A, B, C, D, E, F) A B C D E F 1 x 10 100 se 400 1 y 20 200 cis 1000 2 x 30 100 cis 1000 2 y 10 100 ct 400 R (A, B, C, E) A B C E 1 x 10 se 1 y 20 cis 2 x 30 cis 2 y 10 ct R1 (C, D) C D 10 100 20 200 30 100 R2 (E, F) E F se 400 cis 1000 ct 400
Assignment 5-2 Due Thursday, March 9 Quiz 2 Wednesday, March 8 Schedule Assignment 5-2 Due Thursday, March 9 Quiz 2 Wednesday, March 8