Presentation is loading. Please wait.

Presentation is loading. Please wait.

Multivalued Dependency Prof. Sin-Min Lee Department of Computer Science.

Similar presentations


Presentation on theme: "Multivalued Dependency Prof. Sin-Min Lee Department of Computer Science."— Presentation transcript:

1 Multivalued Dependency Prof. Sin-Min Lee Department of Computer Science

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19 1NF 2NF 3NF BCNF 4NF 5NF functional dependencies multivalued dependencies join dependencies HIGHER NORMAL FORMS

20

21

22

23

24

25

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

29

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

42

43

44

45

46

47

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.


Download ppt "Multivalued Dependency Prof. Sin-Min Lee Department of Computer Science."

Similar presentations


Ads by Google