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.
Lease (RNo, RName, PNo, PAddress, Start, Finish, Rent, ONo, OName) Primary Key: PNo, Start FDs: PNo, Start All PNo PAddress, ONo, Oname (Partial on PK!) Lease1 (PNo, PAddress, ONo, OName) Primary Key: Pno Alternate Key: None Foreign Key: None PNo All PAddress All ONo OName Lease (RNo, RName, PNo, Start, Finish, Rent) Foreign Key: PNo References Lease1 RNo RName
Better Name for the New Table Lease (RNo, RName, PNo, PAddress, Start, Finish, Rent, ONo, OName) Primary Key: PNo, Start Better Name for the New Table Lease1 (PNo, PAddress, ONo, OName) Primary Key: Pno Property Lease (RNo, RName, PNo, Start, Finish, Rent)
Property (PNo, PAddress, ONo, OName) Primary Key: PNo FDs: PNo All PAddress All 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: PNo All PAddress All Primary Key: PNo FDs: PNo All PAddress All 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! Ono Oname (Oname is transitively functionally dependent on Pno)
Decompose Property into 3NF Property (PNo, PAddress, ONo, OName) PNo All PAddress All ONo OName Property1 (ONo, OName) Primary Key: Ono Alternate Keys: None Foreign Keys: ? FDs: ONo Oname Property (PNo, PAddress, ONo) Primary Key: PNo Alternate Keys: PAddress Foreign Keys: ? FDs: PNo All PAddress All
Decompose Property into 3NF Property (PNo, PAddress, ONo, OName) PNo All PAddress All ONo OName Property1 (ONo, OName) Primary Key: Ono Alternate Keys: None Foreign Keys: None FDs: ONo Oname Better table name? Owner Property (PNo, PAddress, ONo) Primary Key: PNo Alternate Keys: PAddress Foreign Keys: Ono references Property1 FDs: PNo All PAddress All
Decompose Property into 3NF Property (PNo, PAddress, ONo, OName) PNo All PAddress All 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 All PAddress All
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 All C D E F Is it in 2NF? Is it in 3NF? How many tables we will have to decompose it into 3NF?
R (A, B, C, D, E, F) PK: A, B AK: None FK: None FDs: A, B All C D 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 Decompose into 3NF Each table: DBDL FDs Table instance
Assignment 5-2 Due Monday, March 5 Quiz 2 Wednesday, March 7 Lab 206 Schedule Assignment 5-2 Due Monday, March 5 Quiz 2 Wednesday, March 7 Lab 206