Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS 3630 Database Design and Implementation

Similar presentations


Presentation on theme: "CS 3630 Database Design and Implementation"— Presentation transcript:

1 CS 3630 Database Design and Implementation

2 First Normal Form (1NF) No multi-value attributes
Done when mapping E-R model to relational schema DBDL

3 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 the PK.

4 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.

5 Boyce-Codd Normal Form (BCNF)
Definition R in 1NF and The determinant of each FD is a candidate key. Review: 1NF determinant candidate key

6 BCNF is stronger than 3NF
BCNF and 3NF BCNF is stronger than 3NF If R in BCNF, then R in 3NF. If R not in 3NF, then R not in BCNF.

7 Proof If R not in 3NF, then PK ---> B, and B ---> C, (PK ---> C) NO cycle for transitive FD B ---> PK : False B is not a candidate key but a determinant (B ---> C ) So, R is not in BCNF.

8 Example Lease (RNo, RName, PNo, PAddress, Start, Finish, Rent, ONo, OName) Primary Key: PNo, Start Alternate Key: PNo, Finish PAddress, Start PAddress, Finish FDs: PNo, Start ---> All other attributes PNo, Finish ---> All other attributes PAddress, Start ---> All other attributes PAddress, Finish ---> All other attributes PNo ---> PAddress, ONo, OName (Pno not a candidate key) PAddress ---> PNo, ONo, Oname (Paddress not a candidate key) RNo ---> Rname (Rno not a candidate key) ONo ---> OName (Ono not a candidate key) Not in BCNF. How many tables in order to make it BCNF?

9 Decompose Lease into BCNF
Lease (RNo, RName, PNo, PAddress, Start, Finish, Rent, ONo, OName) PNo ---> PAddress, ONo, OName (Pno not a candidate key) PAddress ---> PNo, ONo, Oname (Paddress not a candidate key) RNo ---> Rname (Rno not a candidate key) ONo ---> OName (Ono not a candidate key) Owner (ONo, OName) ONo ---> Oname Renter (RNo, RName) RNo ---> RName Property (PNo, PAddress, ONo) PNo ---> PAddress, ONo PAddress ---> PNo, Ono Only 4 tables, not 5. Pno  Paddress Paddress  Pno Ono will not be in Lease. Pno ---> Ono Lease (RNo, PNo, Start, Finish, Rent) PNo, Start ---> All PNo, Finish ---> All

10 Decompose Lease into BCNF
Lease (RNo, RName, PNo, PAddress, Start, Finish, Rent, ONo, OName) PNo ---> PAddress, ONo, OName (Pno not a candidate key) PAddress ---> PNo, ONo, Oname (Paddress not a candidate key) RNo ---> Rname (Rno not a candidate key) ONo ---> OName (Ono not a candidate key) Property (PNo, PAddress, Ono, Oname) PNo ---> PAddress, Ono, Oname PAddress ---> PNo, Ono, Oname The Same Table!

11 Decompose Lease into BCNF
Lease (RNo, RName, PNo, PAddress, Start, Finish, Rent, ONo, OName) PNo ---> PAddress, ONo, OName (Pno not a candidate key) PAddress ---> PNo, ONo, Oname (Paddress not a candidate key) RNo ---> Rname (Rno not a candidate key) ONo ---> OName (Ono not a candidate key) Property (PNo, PAddress, Ono, Oname) PNo ---> PAddress, Ono, Oname PAddress ---> PNo, Ono, Oname Ono ---> Oname (Ono not in Lease any more) Property (PNo, PAddress, Ono) PNo ---> PAddress, Ono PAddress ---> PNo, Ono Owner (Onp, Oname) Ono ---> Oname Ono is not in Lease any more!

12 Example R (A, B, C, D, E, F) PK: A, B, C AK: B, C, D FK: None FDs: A, B, C  All B, C, D  All B, D  A A: staffNo B, C: Date, Time D: surgeryNo

13 Table Instance A B C D E F 2 10 x u ct y v cis z u se x v cs 4 FDs: A, B, C  All B, C, D  All B, D  A A: staffNo B, C: Date, Time D: surgeryNo

14 Decomposing to BCNF R (A, B, C, D, E, F) PK: A, B, C AK: B, C, D FK: None FDs: A, B, C  All B, C, D  All B, D  A B, D and A should be in a new table with (B, D) as PK B and D should remain in the original table as FK A should not remain in the original table PK of the original table must be changed to B, C, D. A: staffNo B, C: Date, Time D: surgeryNo

15 Decomposing to BCNF R (A, B, C, D, E, F) PK: A, B, C AK: B, C, D FK: None FDs: A, B, C  All B, C, D  All B, D  A R1 (A, B, D) PK: B, D AK: NONE FK: None FDs: B, D  A Does R1 have a FK? R2 (B, C, D, E, F) PK: B, C, D AK: NONE FK: B, D References R1 FDs: B, C, D  All Does R2 have a FK? A: staffNo B, C: Date, Time D: surgeryNo

16 Table Instance A B C D E F 2 10 x u ct y v cis z u se x v cs 4 FDs: A, B, C  All B, C, D  All B, D  A A B D u v B C D E F 10 x u ct 1 20 y v cis 2 10 z u se 3 20 x v cs 4 A: staffNo B, C: Date, Time D: surgeryNo

17 Selecting B, C, D as PK at the Beginning
R (A, B, C, D, E, F) PK: A, B, C AK: B, C, D FK: None FDs: A, B, C  All B, C, D  All B, D  A R (A, B, C, D, E, F) PK: B, C, D AK: A, B, C FK: None FDs: A, B, C  All B, C, D  All B, D  A A is Partial on PK! A: staffNo B, C: Date, Time D: surgeryNo

18 Review: Normalization
1NF Remove multi-value attributes Why: each element can not be a set (first order logic) 2NF Remove partial FDs on PK Why: remove redundant data 3NF Remove transitive FDs on PK BCNF Stronger than 3NF Any candidate keys Why: better PK remove redundant data In most cases, BCNF is enough.

19 Lossless Decomposition
After a relation is normalized into two or more relations, the original relations could be obtained by joining new relations Primary Key and Foreign Key

20 Decompose Lease into BCNF
Lease (RNo, RName, PNo, PAddress, Start, Finish, Rent, ONo, OName) Owner (ONo, OName) ONo ---> OName Renter (RNo, RName) RNo ---> RName Property (PNo, PAddress, ONo) PNo ---> PAddress, ONo PAddress ---> PNo, Ono Lease (RNo, PNo, Start, Finish, Rent) PNo, Start ---> All other attributes PNo, Finish ---> All other attributes How to get Property data for a lease? Lease Property How to get Renter data for a lease? Lease Renter How to get Owner data for a lease? Lease Property Owner

21 De-Normalization Normalized relations Minimal redundancy
Need join operation to get results How far should we go? Where to stop?

22 Review: Database Design
A structured approach that uses procedures, techniques, tools, and documentation aids to support and facilitate the process of design. Three main phases Conceptual database design Understanding client data E-R (EER) Model Contract between clients and designers Logical database design Mapping E-R Model to (relational) database schema (Derive relational schema from E-R Model) DBDL Normalization Physical database design


Download ppt "CS 3630 Database Design and Implementation"

Similar presentations


Ads by Google