+ All Categories
Home > Documents > 4NF and Multivalued Dependency by Kristina Miguel

4NF and Multivalued Dependency by Kristina Miguel

Date post: 25-Sep-2015
Category:
Upload: 22rishabh
View: 234 times
Download: 0 times
Share this document with a friend
Description:
4nf
Popular Tags:
16
4NF & MULTIVALUED DEPENDENCY By Kristina Miguel
Transcript
  • 4NF & MULTIVALUED DEPENDENCYBy Kristina Miguel

  • ReviewSuperkey a set of attributes which will uniquely identify each tuple in a relationCandidate key a minimal superkeyPrimary key a chosen candidate keySecondary key all the rest of candidate keysPrime attribute an attribute that is a part of a candidate key (key column)Non-prime attribute a non-key column

  • Review (cont.)1NFEliminate repeating groups.Make a separate table for each set of related attributes, and give each table a primary key.2NFEliminate redundant data.Each attribute must be functionally dependent on the primary key.If an attribute depends on only part of a multi-valued key, remove it to a separate table.3NFEliminate columns not dependent on key.If attributes do not contribute to a description of the key, remove them to a separate table.Any transitive dependencies are moved into a smaller table.BCNFEvery determinant in the table is a candidate key.If there are non-trivial dependencies between candidate key attributes, separate them out into distinct tables.All normal forms are additive, in that if a model is in 3NF, it is by definition also in 2NF and 1NF.

  • Multivalued Dependency (MVD)A MVD XY,Holds for some relation R, so that when you fix the values for one set of attributes, then the values in certain other attributes are independent of the values of all the other attributes in the relation.Is an assertion that two attributes or sets of attributes are independent of one another.For each value of X, the values of Y are independent of the values of R-X-Y.

  • MVD (cont.)More precisely, for MVD ABFor each pair of tuples t and u of relation R that agree on all the As, we can find in R some tuple v that agreesWith both t and u on the As,With t on the Bs, andWith u on all attributes of R that are not among the As or Bs.

  • MVD (cont.)Representation of XY XY others

    equal

    exchange

  • MVD ExampleDrinkers(name, addr, phones, beersLiked)A drinkers phones are independent of the beers they like.namephones and namebeersLiked.Thus, each of a drinkers phones appears with each of the beers they like in all combinations.

  • MVD Example (cont.)Tuples Implied by namephonesIf we have tuples:

    Then these tuples must also be in the relation.

    nameaddrphones beersLikedsueap1 b1sueap2 b2sueap2 b1sueap1 b2

  • 4NFDefinitionA relation R is in 4NF if and only if, for every one of its non-trivial multivalued dependencies XY, X is a superkeythat is, X is either a candidate key or a superset thereof.Nontrivial MVD means that:Y is not a subset of X, andX and Y are not, together, all the attributes.

  • Decomposition into 4NFIf XY is a 4NF violation for relation R, we can decompose R using the same technique as for BCNF.XY is one of the decomposed relations.All but Y X is the other.

  • Decomposition into 4NF MethodFind a 4NF violation in R, say AB, where A is not a superkey.If there is such a 4NF violation, break the schema for the relation R that has the 4NF violation into two schemas.R1, whose schema is As and Bs.R2, whose schema is the As and all attributes of R that are not among the As or Bs.Find the FDs and MVDs that hold in R1 and R2. Recursively decompose R1 and R2 with respect to their projected dependencies.

  • 4NF Decomposition ExampleDrinkers(name, addr, phones, beersLiked)FD: nameaddrMVDs: namephonesnamebeersLikedKey is {name, phones, beersLiked}.All dependencies violate 4NF.

  • 4NF Decomposition Example (cont.)Decompose using nameaddr:Drinkers1(name, addr)In 4NF; only dependency is nameaddr.Drinkers2(name, phones, beersLiked)Not in 4NF. MVDs namephones and namebeersLiked apply. No FDs, so all three attributes form the key.

  • 4NF Decomposition Example (cont.)Decompose Drinkers2Either MVD name ->-> phones or name ->-> beersLiked tells us to decompose to:Drinkers3(name, phones)Drinkers4(name, beersLiked)

  • SummaryA multivalued dependency is a statement that two sets of attributes in a relation have sets of values that appear in all possible combinations.If a relation is in 4NF, then every nontrivial MVD is really an FD with a superkey on the left.

  • Referenceshttp://www.datamodel.org/NormalizationRules.htmlhttp://www.almaden.ibm.com/cs/people/fagin/tods77.pdfhttp://www.bkent.net/Doc/simple5.htmhttp://infolab.stanford.edu/~ullman/dscb.html


Recommended