Download presentation
Published byRandell McCoy Modified over 9 years ago
1
THIRD NORMAL FORM (3NF) A relation R is in BCNF if whenever a FD XA holds in R, one of the following statements is true: XA is a trivial FD, or X is a superkey, or A is part of some key
2
Why 3NF? A relation R is in 3NF if whenever a FD XA holds in R, one of the following statements is true: XA is a trivial FD, or X is a superkey, or A is part of some key By making an exception for certain dependencies involving some key attributes, we can ensure that every relation schema can be decomposed into a collection of 3NF with two desirable properties: lossless-join and dependency-preserving.
3
Cases of 3NF Violation If XY causes a violation of 3NF, there are two cases: X is a proper subset of some key (partial dependency) Partial dependency causes data redundancy: Since XY and X is not a key, X could be redundant, so Y. X is not a proper subset of any key (transitive dependency) KEY Attributes X Attribute Y KEY Attributes X Attribute Y Attributes X KEY Attribute Y Transitive dependency KXY makes it impossible to record the values of (K, X, Y) unless all of them are known: Since KXY, we cannot associate an X value with a K value unless we also associate an X value with Y value
4
Dependency-Preserving Decomposition
Inputs: A relation R with a set Fmin of FDs that is minimum cover D(R1, R2, …, Rn) is a lossless-join decomposition of R Find all dependencies in Fmin that are not preserved For each such dependency XA, create a relation schema XA and add it to the decomposition of R Every dependency in Fmin is now preserved Proof: XA is in 3rd NF X must be a key for XA, Since XA is in a minimal cover, YA does not hold for any Y that is a subset of X For any other dependencies hold over XA, say YZ, in Fmin, it must satisfy 3rd NF conditions If Z is A, Y must be X If Z is not A, Z must be part of X R and F For each X->Y in F, check if it violates BCNF. If yes, decompose R into R-Y and XY Let R1, …, Rn be the resulted decomposition. Compute F+, and for each X->Y in F+, find its corresponding Ri (if X and Y are both in Ri). This generates F1, …, Fn for R1, …, Rn, respectively. Find Fmin. For each X->Y in Fmin, check if it is included in the union of F1, …, Fn. If not, add XY in R’s decomposition.
5
A. Lossless-Join Decomposition
Top-Down Approach: Lossless-Join and Dependency Preserving Decomposition into 3NF A. Lossless-Join Decomposition Set D{R} While there is a relation schema Q in D that is not in BCNF do begin Choose a relation schema Q in D that is not in BCNF; Find a functional dependency XY in Q that violates BCNF; Replace Q in D by two schemas (Q-Y) and (XUY) end; B. Dependency-Preserving Decomposition Assume the decomposition is D(R1, R2, …, Rn) and the FD sets are accordingly F1, F2, …, and Fn (let their union be F’) For each dependency XA in the original F (needs to be a minimum cover), check if it can be inferred from F’ If not, create a relation schema XA and add it to the decomposition of R
6
Exercise Top-down approach R(ABCDE) F={ABCDE,ED,AB,ACD}
Loss-less join decomposition: R(ACBDE) is not in BCNF 3. Dependency-preserving decomposition: {ABCDE, ED, ABB, ACD}+ == {ACE, AB, ED}+ ?? /* Find a minimum cover first */ /* If XY is not preserved, add (XY) into the decomposition */ ED R1(ACBE) R2(ED) AB R1(ACE) R2(AB)
7
Bottom-up Approach: Lossless-Join and Dependency Preserving Decomposition into 3NF
Inputs: A relation R and a set of functional dependencies F on the attributes of R. Find a minimal cover G of F. For each left-hand side X of a FD G, create a relation schema in D with attributes where XA1, XA2, …, XAm are the only dependencies in G with X as the left-hand side. Prove that this relation is in 3rd NF If none of the relation schemas in D contains a key of R, then create one more relation schema in D that contains attributes that form a key of R. Prove that this decomposition is lossless-join X->Ai is in Fmin. Let Y->Z If Z is Ai, Y must be X, then Y->Z obey BNCF. If Z is not Ai, then Z must be part of X. Since X is a key, Z is part of some key. So Y->Z obey 3NF. Since K determines all other attributes, so
8
Exercise R(ABCDE) F={ABCDE,ED,AB,ACD}
Bottom up approach (Synthesis): Step 1: Find a minimum cover, G={ACE,ED,AB} Step 2: R1(ACE), R2(ED), R3(AB) Step 3: Is this a lossless-join decomposition?
9
Normalization Review Functional Dependency Normal Forms Decomposition
Amstrong’s axioms Attribute closure (A+) Dependency closure (F+) Minimum cover (Fmin) Normal Forms BCNF 3NF Decomposition Lossless join Dependency preserving Conceptual design Schemas ICs
10
Determine Normal Forms
BCNF For each XA, is it a trivial dependency? Is X a superkey? 3NF Suppose XA violate BCNF Is A part of some key?
11
Exercise 1 For each of the following relation schemas and sets of FDs
R(ABCD) with FDs ABC, CD, and DA R(ABCD) with FDs BC and BD. R(ABCD) with FDs ABC, BCD, CDA, and ADB Check if they are in BCNF or 3NF, if not, perform a lossless join and dependency preserving decomposition BCNF For each XA, is it a trivial dependency? Is X a superkey? 3NF Suppose XA violate BCNF Is A part of some key?
12
Exercise 2 Prove that, if R is in 3NF and every key is simple (i.e, a single attribute), then R is in BCNF Prove that, if R has only one key, it is in BCNF if and only if it is in 3NF.
13
Quiz For each of the following relation schemas Indicate the strongest normal form of each of the following relations R1(ABCDE) F1={AB, CD, ACEABCDE} R2(ABCEF) F2={ABC, BF, FE} Consider a relation R with five attributes: ABCDE. F={AB, BCE, EDA} Are {ECD}, {ACD}, {BCD} keys for R? Is R in BCNF? Why? Is R in 3NF? Why?
14
Dependency preservation
Conceptual Schema ( ER diagram ) DBMS independent Data Model Mapping DBMS specific Conceptual Schema ( Relations ) Normalization BCNF/3NF? Decomposition Lossless join Dependency preservation
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.