Multivalued Dependencies & Fourth Normal Form (4NF) : Zaki Malik October 28, 2008 October 28, 2008
Multivalued Dependencies & Fourth Normal Form (4NF) : Zaki Malik October 28, 2008 October 28, 2008
Fourth Normal Form (4NF)
Zaki Malik
October 28, 2008
October 28, 2008
A New Form of Redundancy
A New Form of Redundancy
• Multivalued
Multivalued dependencies (MVD
dependencies (MVD’s) s) express a
express a
condition among tuples of a relation that
exists when the relation is trying to represent
exists when the relation is trying to represent
more than one many‐many relationship.
• Then certain attributes become independent
of one another, and their values must appear
f h d h i l
in all combinations.
2
Example
Drinkers(name, addr, phones, beersLiked)
• A drinker’s phones are independent of the beers
di k ’ h i d d f h b
they like.
• Thus, each of a drinker’s phones appears with each
Th h f di k ’ h ith h
of the beers they like in all combinations.
– If
If a drinker has 3 phones and likes 10 beers, then the
a drinker has 3 phones and likes 10 beers then the
drinker has 30 tuples
– where each phone is repeated 10 times and each beer 3
times
• This repetition is unlike redundancy due to FD’s, of
which name‐>addr is the only one.
hi h dd i h l
3
Tuples Implied by Independence
If we have tuples:
sue a p2 b1
sue a p1 b2
4
Another Example
Definition of MVD
Definition of MVD
• A
A multivalued dependency
multivalued dependency (MVD) X
(MVD) X ‐>‐>Y
> >Y
is an assertion that if two tuples of a relation
agree on all the attributes of X then their
agree on all the attributes of X, then their
components in the set of attributes Y may be
swapped and the result will be two tuples
swapped, and the result will be two tuples
that are also in the relation.
6
Definition of MVD
7
Example
t
u
v
Picture of MVD X ‐>‐>Y
Picture of MVD X > >Y
X Y others
equal
exchange
• Every FD is an MVD
– If X ‐>Y, then swapping Y ’s between two tuples that
, pp g p
agree on X doesn’t change the tuples.
– Therefore, the “new” tuples are surely in the
, p y
relation, and we know X ‐>‐>Y.
• Definition of keys depend on FDs and not MDs
10
Rules for Manipulating MDs
Rules for Manipulating MDs
Splitting Doesn’tt Hold
Splitting Doesn Hold
• Like
Like FD
FD’ss, we cannot generally split the left
we cannot generally split the left
side of an MVD.
• But unlike FD’s, we cannot split the right side
either ‐‐‐
ih sometimes you have to leave several
i h l l
attributes on the right side.
12
Another Example
Another Example
• Consider a drinkers relation:
Consider a drinkers relation:
Drinkers(name, areaCode, phone, beersLiked,
manf)
• A drinker can have several phones, with the
number divided between areaCode and phone
number divided between areaCode and phone
(last 7 digits).
• A drinker can like several beers, each with its
A drinker can like several beers, each with its
own manufacturer.
13
Example, Continued
Example, Continued
• Since
Since the areaCode
the areaCode‐phone
phone combinations for a
combinations for a
drinker are independent of the beersLiked‐
manf combinations we expect that the
manf combinations, we expect that the
following MVD’s hold:
name > > areaCode phone
name ‐>‐> areaCode phone
name ‐>‐> beersLiked manf
14
Example Data
Example Data
name areaCode p
phone beersLiked manf
Sue 650 555-1111 Bud A.B.
Sue 650 555-1111 WickedAle Pete’s
Sue 415 555-9999 Bud A.B.
Sue 415 555 9999
555-9999 WickedAle Pete’ss
Pete
15
Fourth Normal Form
Fourth Normal Form
• The
The redundancy that comes from MVD
redundancy that comes from MVD’ss is not
is not
removable by putting the database schema in
BCNF.
BCNF
• Th
There is a stronger normal form, called 4NF,
i lf ll d 4NF
that (intuitively) treats MVD’s as FD’s when it
comes to decomposition, but not when
d ii b h
determining keys of the relation.
16
4NF Definition
4NF Definition
• A relation R
A relation R is in 4NF if whenever X
is in 4NF if whenever X ‐>‐>Y
> >Y is
is
a nontrivial MVD, then X is a superkey.
– Nontrivial means that:
Nontrivial means that:
1. Y is not a subset of X, and
2. X and
and Y
Y are not, together, all the attributes.
are not, together, all the attributes.
– Note
Note that the definition of
that the definition of “superkey”
superkey still
still
depends on FD’s only.
17
BCNF Versus 4NF
BCNF Versus 4NF
• Remember that every FD X ‐>Y is also an
, ‐>‐>Y.
MVD, X
• Thus, if R is in 4NF, it is certainly in BCNF.
– Because any BCNF violation is a 4NF violation.
Because any BCNF violation is a 4NF violation
• But R could be in BCNF and not 4NF,
ld b d
because MVD’s are “invisible” to BCNF.
18
Decomposition and 4NF
Decomposition and 4NF
• If X
If X ‐>‐>Y
> >Y is a 4NF violation for relation R, we
is a 4NF violation for relation R we
can decompose R using the same technique
as for BCNF
as for BCNF.
1. XY is one of the decomposed relations.
2 All but Y
2. All but Y – X is the other.
is the other
19
Example
Drinkers(name, addr, phones, beersLiked)
Drinkers(name addr phones beersLiked)
FD: name ‐> addr
MVD’s:
’ name ‐>‐> phones
h
name ‐>‐> beersLiked
• Key is
– {name, phones, beersLiked}.
{ a e, p o es, bee s ed}
• Which dependencies violate 4NF ?
– All
All
20
Example, Continued
Example, Continued
• Decompose using name ‐> addr:
1. Drinkers1(name, addr)
Drinkers1(name, addr)
In 4NF, only dependency is name ‐> addr.
2 Drinkers2(name, phones, beersLiked)
2. Drinkers2(name phones beersLiked)
Not in 4NF. MVD’s name ‐>‐> phones and
name > > beersLiked apply
name ‐>‐> beersLiked apply.
Key ?
No FDs so all three attributes form the key
No FDs, so all three attributes form the key.
21
Example: Decompose Drinkers2
• Either MVD name ‐>‐> phones or name ‐>‐>
beersLiked tells us to decompose to:
beersLiked tells us to decompose to:
– Drinkers3(name, phones)
– Drinkers4(name, beersLiked)
22
Relationships Among Normal Forms
Relationships Among Normal Forms
kNFs