Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Multivalued Dependencies Fourth Normal Form Source: Slides by Jeffrey Ullman.

Similar presentations


Presentation on theme: "1 Multivalued Dependencies Fourth Normal Form Source: Slides by Jeffrey Ullman."— Presentation transcript:

1 1 Multivalued Dependencies Fourth Normal Form Source: Slides by Jeffrey Ullman

2 2 Definition of MVD uA multivalued dependency (MVD) on R, X ->->Y, says that if two tuples of R agree on all the attributes of X, then their components in Y may be swapped, and the result will be two tuples that are also in the relation. ui.e., for each value of X, the values of Y are independent of the values of R-X-Y.

3 3 Example Consumers(name, addr, phones, candiesLiked) uA consumer’s phones are independent of the candies they like. wname->->phones and name ->->candiesLiked. uThus, each of a consumer’s phones appears with each of the candies they like in all combinations. uThis repetition is unlike FD redundancy. wname->addr is the only FD.

4 4 Tuples Implied by name->->phones If we have tuples: nameaddrphones candiesLiked sueap1 b1 sueap2 b2 sueap2 b1 sueap1 b2 Then these tuples must also be in the relation.

5 5 Picture of MVD X ->->Y XY others equal exchange

6 6 MVD Rules uEvery FD is an MVD (promotion ). wIf X ->Y, then swapping Y ’s between two tuples that agree on X doesn’t change the tuples. wTherefore, the “new” tuples are surely in the relation, and we know X ->->Y. uComplementation : If X ->->Y, and Z is all the other attributes, then X ->->Z.

7 7 Splitting Doesn’t Hold uLike FD’s, we cannot generally split the left side of an MVD. uBut unlike FD’s, we cannot split the right side either --- sometimes you have to leave several attributes on the right side.

8 8 Example Consumers(name, areaCode, phone, candiesLiked, manf) uA consumer can have several phones, with the number divided between areaCode and phone (last 7 digits). uA consumer can like several candies, each with its own manufacturer.

9 9 Example, Continued uSince the areaCode-phone combinations for a consumer are independent of the candiesLiked-manf combinations, we expect that the following MVD’s hold: name ->-> areaCode phone name ->-> candiesLiked manf

10 10 Example Data Here is possible data satisfying these MVD’s: nameareaCodephonecandiesLikedmanf Sue650555-1111TwizzlersHershey Sue650555-1111SmartiesNestle Sue415555-9999TwizzlersHershey Sue415555-9999SmartiesNestle But we cannot swap area codes or phones by themselves. That is, neither name->->areaCode nor name->->phone holds for this relation.

11 11 Fourth Normal Form uThe redundancy that comes from MVD’s is not removable by putting the database schema in BCNF. uThere is a stronger normal form, called 4NF, that (intuitively) treats MVD’s as FD’s when it comes to decomposition, but not when determining keys of the relation.

12 12 4NF Definition uA relation R is in 4NF if: whenever X ->->Y is a nontrivial MVD, then X is a superkey. wNontrivial MVD means that: 1.Y is not a subset of X, and 2.X and Y are not, together, all the attributes. wNote that the definition of “superkey” still depends on FD’s only.

13 13 BCNF Versus 4NF uRemember that every FD X ->Y is also an MVD, X ->->Y. uThus, if R is in 4NF, it is certainly in BCNF. wBecause any BCNF violation is a 4NF violation (after conversion to an MVD). uBut R could be in BCNF and not 4NF, because MVD’s are “invisible” to BCNF.

14 14 Decomposition and 4NF uIf X ->->Y is a 4NF violation for relation R, we can decompose R using the same technique as for BCNF. 1.XY is one of the decomposed relations. 2.All but Y – X is the other.

15 15 Example Consumers(name, addr, phones, candiesLiked) FD: name -> addr MVD’s: name ->-> phones name ->-> candiesLiked uKey is {name, phones, candiesLiked}. uAll dependencies violate 4NF.

16 16 Example, Continued uDecompose using name -> addr: Consumers1(name, addr) uIn 4NF; only dependency is name -> addr. Consumers2(name, phones, candiesLiked) uNot in 4NF. MVD’s name ->-> phones and name ->-> candiesLiked apply. No FD’s, so all three attributes form the key.

17 17 Example: Decompose Consumers2 uEither MVD name ->-> phones or name ->-> candiesLiked tells us to decompose to: wConsumers3(name, phones) wConsumers4(name, candiesLiked)

18 18 Normal Form Comparisons u4NF  BCNF  3NF Property3NFBCNF4NF eliminates FD redundanciesmostyes eliminates MVD redundanciesno yes preserves FDsyesmaybe preserves MVDsmaybe


Download ppt "1 Multivalued Dependencies Fourth Normal Form Source: Slides by Jeffrey Ullman."

Similar presentations


Ads by Google