Upload
scot-powers
View
219
Download
0
Embed Size (px)
Citation preview
First Normal Form (1NF)
• No multi-value attributes
• Done when mapping E-R model to relational schema
• DBDL
2
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.
3
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.
4
Boyce-Codd Normal Form (BCNF)
Definition
R in 1NF and
The determinant of each FD is a candidate key.
Review: 1NF
determinant
candidate key
5
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.
6
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 candidate key
but a determinant (B ---> C )
So, R is not in BCNF.
7
ExampleLease (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?
8
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
Lease (RNo, PNo, Start, Finish, Rent) PNo, Start ---> All PNo, Finish ---> All
Property (PNo, PAddress, ONo) PNo ---> PAddress, ONo PAddress ---> PNo, Ono
9
Only 4 tables, not 5.Pno PaddressPaddress Pno
Ono will not be in Lease.Pno ---> Ono
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
10
Table Instance
A B C D E F
2 10 x u ct 1
1 20 y v cis 2
2 10 z u se 3
1 20 x v cs 4
FDs: A, B, C All
B, C, D All
B, D A11
Decomposing to BCNFR (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.
12
Decomposing to BCNFR (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
13
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?
R1 (A, B, D)
PK: B, D
AK: NONE
FK: None
FDs: B, D A
Does R1 have a FK?
Table Instance A B C D E F
2 10 x u ct 1
1 20 y v cis 2
2 10 z u se 3
1 20 x v cs 4
FDs: A, B, C All
B, C, D All
B, D A
14
A B D
2 10 u
1 20 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
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
15
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!
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 Why: remove redundant data • BCNF Stronger than 3NF Any candidate keys Why: better PK remove redundant data
In most cases, BCNF is enough.
16
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
17
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
18
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
De-Normalization
• Normalized relations
Minimal redundancy
Need join operation to get results
• How far should we go?
• Where to stop?
19
20
Review: Database DesignA structured approach that uses procedures, techniques, tools,
and documentation aids to support and facilitate the process of design.
Three main phases 1. Conceptual database design Understanding client data E-R (EER) Model Contract between clients and designers
2. Logical database design Mapping E-R Model to (relational) database schema (Derive relational schema from E-R Model) DBDL Normalization
3. Physical database design