1 Multivalued Dependencies Fourth Normal Form Sources: Slides by Jeffrey Ullman book by Ramakrishnan & Gehrke
2 Limitations of FD’s uSome redundancies cannot be detected using just functional dependencies uExample: suppose a teacher can teach several courses, several books can be recommended for a course, and same book can be recommended for different courses. uSuppose all this information is smushed together into one relation CTB wThere are no FD’s, so key is CTB and relation is in BCNF wBut there is redundancy since course implies book wEliminate redundancy by decomposing into CT and CB
3 Example of FD Limitations Course (C)Teacher (T)Book (B) Phys101GreenMechanics Phys101GreenOptics Phys101BrownMechanics Phys101BrownOptics Math301GreenMechanics Math301GreenVectors Math301GreenGeometry
4 Definition of MVD uNotion of MVD captures redundancy that FD’s can’t 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.
5 Relation with C ->-> T Course (C)Teacher (T)Book (B) Phys101GreenMechanics Phys101GreenOptics Phys101BrownMechanics Phys101BrownOptics Math301GreenMechanics Math301GreenVectors Math301GreenGeometry
6 Another 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.
7 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.
8 Picture of MVD X ->->Y XY others equal exchange
9 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.
10 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.
11 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.
12 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
13 Example Data Here is possible data satisfying these MVD’s: nameareaCodephonecandiesLikedmanf Sue TwizzlersHershey Sue SmartiesNestle Sue TwizzlersHershey Sue SmartiesNestle But we cannot swap area codes or phones by themselves. That is, neither name->->areaCode nor name->->phone holds for this relation.
14 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.
15 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.
16 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.
17 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.
18 Example Consumers(name, addr, phones, candiesLiked) FD: name -> addr MVD’s: name ->-> phones name ->-> candiesLiked uKey is {name, phones, candiesLiked}. uAll dependencies violate 4NF.
19 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. (Sadly, no simple rule for projecting MVD’s onto decomposed relations – use heuristics and knowledge of application)
20 Example: Decompose Consumers2 uEither MVD name ->-> phones or name ->-> candiesLiked tells us to decompose to: wConsumers3(name, phones) wConsumers4(name, candiesLiked)
21 Normal Form Comparisons u4NF BCNF 3NF Property3NFBCNF4NF eliminates FD redundanciesmostyes eliminates MVD redundanciesno yes preserves FDsyesmaybe preserves MVDsmaybe