Download presentation
Presentation is loading. Please wait.
1
Multivalued Dependency Prof. Sin-Min Lee Department of Computer Science
19
1NF 2NF 3NF BCNF 4NF 5NF functional dependencies multivalued dependencies join dependencies HIGHER NORMAL FORMS
26
Mary C++Reading Tennis Cycling Jenny C++Music Databases John PascalMusic DatabasesJogging Java STUDENTMODULEHOBBY STUDENT learns MODULE STUDENT enjoys HOBBY John learns Pascal Databases Java Mary learns C++ Jenny learns C++ Databases John enjoys Music Jogging Mary enjoys Reading Tennis Cycling Jenny enjoys Music
27
STUDENTMODULEHOBBY JohnPascalMusic JohnPascalJogging JohnDatabasesMusic JohnDatabasesJogging JohnJavaMusic JohnJavaJogging MaryC++Reading MaryC++Tennis MaryC++Cycling JennyC++Music JennyDatabasesMusic PROFILE multivalued dependency X Y holds in R if: whenever two tuples of R agree in value of X, their image sets in R(X,Y) are the same; X, Y, Z - pairwise disjoint subsets of R (X,Y,Z) STUDENT MODULE STUDENT HOBBY mutually independent PROFILE is in BCNF but exhibits redundancy and I, D ad U anomalies
28
Fourth Normal Form R(X, Y, Z) is in 4NF if, whenever a multivalued dependency X Y holds for R, so does the functional dependency X A for all attributes A in R preventing conjunction of unrelated facts 4NF: every MVD is FD
30
Multivalued Dependencies The multivalued dependency X Y holds in a relation R if whenever we have two tuples of R that agree in all the attributes of X, then we can swap their Y components and get two new tuples that are also in R. X Y others
31
Example Drinkers(name, addr, phones, beersLiked) with MVD Name phones. If Drinkers has the two tuples: nameaddrphonesbeersLiked sueap1b1 sueap2b2 it must also have the same tuples with phones components swapped: nameaddrphonesbeersLiked sueap2b1 sueap1b2 Note: we must check this condition for all pairs of tuples that agree on name, not just one pair.
32
MVD Rules 1.Every FD is an MVD. –Because if X Y, then swapping Y’s between tuples that agree on X doesn’t create new tuples. –Example, in Drinkers : name addr. 2.Complementation: if X Y, then X Z, where Z is all attributes not in X or Y. –Example: since name phones holds in Drinkers, so does name addr beersLiked.
33
Splitting Doesn’t Hold Sometimes you need to have several attributes on the right of an MVD. For example: Drinkers(name, areaCode, phones, beersLiked, beerManf) nameareaCodephonesbeersLikedbeerManf Sue831555-1111BudA.B. Sue831555-1111Wicked AlePete’s Sue408555-9999BudA.B. Sue408555-9999 Wicked AlePete’s name areaCode phones holds, but neither name areaCode nor name phones do.
34
4NF Eliminate redundancy due to multiplicative effect of MVD’s. Roughly: treat MVD’s as FD's for decomposition, but not for finding keys. Formally: R is in Fourth Normal Form if whenever MVD X Y is nontrivial (Y is not a subset of X, and X Y is not all attributes), then X is a superkey. –Remember, X Y implies X Y, so 4NF is more stringent than BCNF. Decompose R, using 4NF violation X Y, into XY and X (R—Y). R Y X
35
Example Drinkers(name, addr, phones, beersLiked) FD: name addr Nontrivial MVD’s: name phones and name beersLiked. Only key: { name, phones, beersLiked } All three dependencies above violate 4NF. Successive decomposition yields 4NF relations: D1(name, addr) D2(name, phones) D3(name, beersLiked)
36
Multivalued Dependencies Multivalued dependencies are referred to as tuple- generating dependencies. Let R be a relation schema and let a R and b R. The multivalued dependency is a b holds on R if, in any legal relation r( R ), for all pairs of tuples t1 and t2 in r such that t1[ a ] = t2[ a ], there exist tuples t3 and t4 in r such that
37
Multivalued Dependencies (cont) t1[ a ] = t2[ a ] = t3[ a ] = t4[ a ] t3[ b ] = t1[ b ] t3[ R - b ] = t2[ R - b ] t4[ b ] = t2[ b ] t4[ R - b ] = t1[ R - b ] The multivalued dependency a b says that the relationship between a and b is independent of the relationship between a and R - b.
38
Multivalued Dependencies (cont) If the multivalued dependency a b is satisfied by all relations on schema R, then a b is a trivial multivalued dependency on schema R. Thus, a b is trivial if b a or b a = R Tabular representation of a b ab R - a - b t1a1…aiai+1…ajaj+1…an t2a1…aibi+1…bjbj+1…bn t3a1…aiai+1…ajbj+1…bn t4a1…aibi+1…bjaj+1…an
39
Multivalued Dependencies (cont) To illustrate the difference between functional and multivalued dependencies, we consider again the BC- schema. Graph 1 loan-numbercustomer-namecustomer-streetcustomer-city L-23SmithNorthRye L-23SmithMainManchester L-93CurryLakeHorseneck
40
Multivalued Dependencies (cont) On graph 1, we must repeat the loan number once for each address a customer has, and we must repeat the address for each loan a customer has. This repetition is unnecessary, since the relationship between that customer and his address is independent of the relationship between that customer and a loan. If a customer (say, Smith) has a loan (say, loan number L- 23), we want that loan to be associated with all Smith’s addresses.
41
Multivalued Dependencies (cont) The relation on graph 2 is illegal, therefore to make this relation legal, we need to add the tuples (L-23, Smith, Main, Manchester) and (L-27, Smith, North, Rye) to the bc relation of graph 2. Graph 2 (an illegal bc relation) loan-numbercustomer-namecustomer-streetcustomer-city L-23SmithNorthRye L-27SmithMainManchester
48
Multivalued Dependencies (cont) Comparing the preceding example with our definition of multivalued dependency, we see that we want the multivalued dependency to hold. customer-name customer-street customer-city As was the case for functional dependencies, we shall use multivalued dependencies in two ways: 1. To test relations to determine whether they are legal under a given set of functional and multivalued dependencies. 2. To specify constraints on the set of legal relations; we shall thus concern ourselves with only those relations that specify a given set of functional and multivalued dependencies.
49
Theory of Multivalued Dependencies 1.Reflexivity rule. If a is a set attributes, and b C a, then a b holds. 2.Augmentation rule. If a b holds, and c is a set of attributes, then ca cb holds. 3.Transitivity rule. If a b holds, and b c holds, then a c holds. 4.Complementation rule. If a b holds, then a R – b – a holds.
50
Theory of Multivalued Dependencies 5. Multivalued augmentation rule. If a b holds, and c R and d C c, then ca db holds. 6. Multivalued transitivity rule. If a b holds, and b c holds, then a c – b holds. 7. Replication rule. If a b holds, then a b. 8. Coalescence rule. If a b holds, and c C b, and there is a d such that d C R, and d 3 b = w, and d c, then a c holds.
51
Theory of Multivalued Dependencies (cont) 1.Multivalued union rule. If a b holds, and a c holds, then a bc holds. 2.Intersection rule. If a b holds, and a c holds, then a b 3 c holds. 3.Difference rule. If a b holds, and a c holds, then a b - c holds and a c - b holds.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.