You are on page 1of 16

4NF & MULTIVALUED

DEPENDENCY
By Kristina Miguel

Review

Superkey a set of attributes which will


uniquely identify each tuple in a relation
Candidate key a minimal superkey
Primary key a chosen candidate key
Secondary key all the rest of candidate
keys
Prime attribute an attribute that is a
part of a candidate key (key column)
Non-prime attribute a non-key column

Review (cont.)

1NF

Eliminate repeating groups.

2NF

Eliminate redundant data.

Eliminate 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.

BCNF

Every determinant in the table is a candidate key.

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.

3NF

Make a separate table for each set of related attributes, and give each table a primary
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 AB

For 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 agrees
With

both t and u on the As,


With t on the Bs, and
With u on all attributes of R that are not among
the As or Bs.

MVD (cont.)

Representation of XY

equal
exchange

others

MVD Example
Drinkers(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 namephones

If we have tuples:

name
sue a
sue a
sue a
sue a

addr phones beersLiked


p1
b1
p2
b2
p2
b1
p1
b2

Then these tuples must also be in the


relation.

4NF

Definition

A 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.

1.
2.

Nontrivial MVD means that:


Y is not a subset of X, and
X and Y are not, together, all the attributes.

Decomposition into 4NF

If XY is a 4NF violation for relation


R, we can decompose R using the
same technique as for BCNF.
1.
2.

XY is one of the decomposed relations.


All but Y X is the other.

Decomposition into 4NF


Method

Find 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.
1.
2.

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
Example
Drinkers(name, addr, phones, beersLiked)
FD:
nameaddr
MVDs: namephones
namebeersLiked
Key is {name, phones, beersLiked}.
All dependencies violate 4NF.

4NF Decomposition
Example (cont.)
Decompose using nameaddr:
Drinkers1(name, addr)

1.

In 4NF; only dependency is nameaddr.

Drinkers2(name, phones, beersLiked)

2.

Not in 4NF. MVDs namephones and


namebeersLiked apply. No FDs, so
all three attributes form the key.

4NF Decomposition
Example (cont.)

Decompose Drinkers2

Either MVD name ->-> phones or name ->> beersLiked tells us to decompose to:
Drinkers3(name,

phones)
Drinkers4(name, beersLiked)

Summary

A 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.

References

http://www.datamodel.org/Normalization
Rules.html
http://www.almaden.ibm.com/cs/people/f
agin/tods77.pdf
http://www.bkent.net/Doc/simple5.htm
http://infolab.stanford.edu/~ullman/dscb.
html

You might also like