Multivalued Dependency Prof. Sin-Min Lee Department of Computer Science
1NF 2NF 3NF BCNF 4NF 5NF functional dependencies multivalued dependencies join dependencies HIGHER NORMAL FORMS
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
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
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
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
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.
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.
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 Sue BudA.B. Sue Wicked AlePete’s Sue BudA.B. Sue Wicked AlePete’s name areaCode phones holds, but neither name areaCode nor name phones do.
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
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)
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
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.
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
Example : Here is an example of multivalued dependencies given R(A B C D). Show that A BD we can rearrange the table to R(A B D C). ABCD ABDC
Example (Cont.): Perform each test to check if A BD. t 1 = r t 2 = r t 3 = r t 4 = r t 1 = r t 2 = r t 3 = r t 4 = r t 1 = r t 2 = r t 3 = r t 4 = r t 1 = r t 2 = r t 3 = r t 4 = r
Example (Cont.): Perform each test to check if A BD. t 1 = r t 2 = r t 3 = r t 4 = r t 1 = r t 2 = r t 3 = r t 4 = r t 1 = r t 2 = r t 3 = r t 4 = r Each test is satisfied, so A BD is true!!!
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
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.
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
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.
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.
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.
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.