Presentation is loading. Please wait.

Presentation is loading. Please wait.

Properties of Armstrong’s Axioms Soundness All dependencies generated by the Axioms are correct Completeness Repeatedly applying these rules can generate.

Similar presentations


Presentation on theme: "Properties of Armstrong’s Axioms Soundness All dependencies generated by the Axioms are correct Completeness Repeatedly applying these rules can generate."— Presentation transcript:

1 Properties of Armstrong’s Axioms Soundness All dependencies generated by the Axioms are correct Completeness Repeatedly applying these rules can generate all correct dependency (i.e., any FDs in F + be generated)

2 Closure of Attribute Set X Let F be a set of functional dependencies on a set of attributes U and let X U. We define X + to be the set of all attributes that are dependent on X (under F). X + enables us to tell at a glance whether a dependency X  A follows from F.

3 Algorithm to compute X + under F // initialization 1.X + := X; // reflexive rule // find new attribute 2.For each function dependency Y  Z in F, if Y X + and Z has an attribute not in X +, add the new attribute to X+; //transitive rule 3.Repeat Step 2 until no new attribute can be found R(A,B,C,D,E,F), F={A->D, B->E, D  B, C->F}, What is {A} +? Example 1

4 Closure of Attribute Set: Example 2 EMP_PROJ(SSN,PNUMBER,HOURS,ENAME,PNAME,PLOCATION) F={ { SSN}->{ENAME}, { PNUMBER}->{PNAME,PLOCATION}, {SSN,PNUMBER}  {HOURS} } Initialization:{SSN} + ={SSN} 1 st iteration: SSN->ENAME, ENAME to is a new attribute {SSN} + ={SSN,ENAME} 2 nd iteration: {SSN} + ={SSN,ENAME}, cannot find any new attribute (1) Compute {SSN} +

5 (2) Compute {PNUMBER} + Initialization:{PNUMBER} + ={PNUMBER} 1 st iteration: {PNUMBER} -> {PNAME,PLOCATION} {PNUMBER} + ={PNUMBER,PNAME,PLOCATION} 2 nd iteration: cannot find any new attribute {PNUMBER} + ={PNUMBER,PNAME,PLOCATION} (3) Compute {SSN, PNUMBER} + F={ {SSN}->{ENAME}, {PNUMBER}->{PNAME,PLOCATION}, {SSN,PNUMBER}  {HOURS} }

6 Steps of checking if an FD X  Y is in the closure of a set of FDs F : 1.Compute X + wrt F. 2.Check if Y is in X +. 3.Y X + X  Y is in F + Does F = {A  B, B  C, CD  E } imply A  E? i.e, is A  E in F + ? Equivalently, is E in A + ? A + (w.r.t. F)={A,B,C} E is not in A +, thus, A  E is not in F +. Use of X + 1: Checking if X  Y

7 Set K:=R For each attribute A in K Compute (K-A) + w.r.t. F If (K-A) + contains all the attributes in R then set K:= K-A This algorithm returns only one key out of the possible candidate keys for R. The key returned depends on the order in which attributes are removed from R. Examples: (1) R={A,B,C,D} F={A  B,B  C,AB  D}; find a key of R. (2) R={A,B,C,D,E,F} F= {A->C, A->D, B->C, E->F}; find a key of R Use of X + 2: Finding a key K Let R be the set of attributes for a schema and F be its functional dependency set

8 Given a set of functional dependencies F, we define F + to be the set of all functional dependencies that can be inferred from F. Use of X + 3: Compute F + 1.F + ={}; 2.For each attribute set A in R, computing A + 3.For each X  Y implied by A +, add X  Y to F+

9 Equivalence of Sets of Functional Dependencies Let E&F be two sets of functional dependencies. F covers E if E F +. E and F are equivalent if E + =F +. E + =F + iff E covers F and F covers E. Note: Equivalence means that every FD in E can be inferred from F, and every FD in F can be inferred from E. Determine whether F covers E: For each FD X  Y in E, calculate X + with respect to F, then check whether X + Y.

10 EXAMPLE: Check whether or not F is equivalent to G. F={A  C, AC  D, E  AD,E  H} G={A  CD, E  AH} Prove that F is covered by G. {A} + ={A,C,D} (wrt to G). Since {C} A +, A  C can be inferred from G. {AC} + ={A,C,D} (wrt to G). Since {D} {AC} +, AC  D is covered by G. {E} + ={E,A,H,C,D} (wrt G), Since {AD} {E} +, E  AD is covered by G. Since {H} {E} +, E  H is covered by G.

11 Prove that G is covered by F: {A} + ={A,C,D} (wrt F), Since {CD} {A} +, A  CD is covered by F. {E} + ={E,A,D,H,C} (with respect to F) {A,H} {E} +, E  AH is covered by F. Since F covers G and G covers F, F and G are equivalent. F={A  C, AC  D, E  AD,E  H} G={A  CD, E  AH}

12 Minimal Cover of Functional Dependencies A set of functional dependencies F is minimal if it satisfies the following three conditions: Every FD in F has a single attribute for its right-hand side. (This is a standard form, not a requirement.) We cannot replace any dependency X  A in F with a dependency Y  A, where Y is a proper subset of X, and still have a set of dependencies that is equivalent to F. We cannot remove any dependency from F and still have a set of dependencies that is equivalent to F. There can be several minimal covers for a set of functional dependencies!

13 Minimal Cover Definition: A minimal cover of a set of FDs F is a minimal set of functional dependencies F min that is equivalent to F. /* The following procedure finds one minimal cover of F. */ Procedure: Find a minimal cover F min for F. 1.Set F min =F /*put every FD in a standard form, i.e., it has a single attribute as its right-hand side*/ 2.Replace each FD X  A 1,A 2,…,A n in F min by the n FDs X  A 1,…,X  A n. /* minimize the left side of each FD, i.e., every attribute is needed */ 3.For each FD X  A in F min For each B X, Let T=(F min - {X  A})U{(X-{B})  A} Check whether T is equivalent to F min (1) If (1) is true, then set F min = T. /* delete redundant FDs, i.e., No redundant FDs remain in Fmin. */ 4.For each FD X  A in F min Let T=F min -{X  A} Check whether T is equivalent to F min. (2) If (2) is true, set F min = T.

14 Minimal Cover F={X1  Y1, X2  Y2, … Xn  Yn} is a minimum cover 1)Any Yi is a single attribute 2)For any Xi  Yi, it is impossible that X’  Y and X’ is a subset of X 3)No Xi  Yi can be taken out F’ = F - {Xi  Yi} is not equivalent to F

15 Example: Find the minimal cover of the set F={ABCD  E,E  D,A  B,AC  D}.

16 Example: Find the minimal cover of the set F={ABCD  E,E  D,A  B,AC  D}. Step 2:F min ={ABCD  E,E  D,A  B,AC  D} Step 3: Replace AC  D with A  D; T={ABCD  E,E  D,A  B,A  D} Compute {A} + wrt to F, {A} + ={A,B} Compute {A} + wrt to T, {A} + ={A,B,D} Cannot replace F min with T. Replace ABCD  E with ACD  E, T={ACD  E,E  D,A  B,AC  D} Compute {ACD} + wrt to F, {ACD} + ={A,C,D,B,E} Compute {ACD} + wrt to T,{ACD} + ={A,C,D,E,B} Replace F min with T. Is T equivalent to F min ? Can Fmin Cover T? No, keep AC  D

17 Step 3: (cont’d) Replace ACD  E with AC  E, T={AC  E,E  D,A  B,AC  D} Compute {AC} + wrt to F, {AC} + ={ACDBE} Compute {AC} + wrt to T,{AC} + ={ACEDB} Replace F min with T. Step 4: Consider T={AC  E,E  D,AC  D,A  B} (take out AC  D) {AC} + ={A,C,E,D,B} with respect to T; {D} {AC} + ; we don’t have to include AC  D The minimal cover of F is: {AC  E,E  D,A  B}

18 Some Important Concepts X + : Closure of an attribute set X –The set of all attributes that are determined by X K: a key –minimum set of attributes that determines all attributes F + : Closure of a dependency set F –The set of all dependencies that are implied from F F min : a minimum cover of a dependency set F –a minimum set of FDs that is equivalent to F


Download ppt "Properties of Armstrong’s Axioms Soundness All dependencies generated by the Axioms are correct Completeness Repeatedly applying these rules can generate."

Similar presentations


Ads by Google