Databases Reference
In-Depth Information
{ QTY } { QTY }
{ } { }
4.2 Yes, it is (“whenever two tuples agree on X , they also agree on Y ” implies a comparison between the
projections of the tuples in question on the attributes of X and Y ).
4.3
4.4
First of all, here are the two definitions, numbered for purposes of subsequent reference:
1.
Relvar R is in 2NF if and only if, for every key K of R and every nonkey attribute A of R , the FD K → { A }
is irreducible.
2.
Relvar R is in 2NF if and only if, for every nontrivial FD X Y that holds in R , at least one of the
following is true: (a) X is a superkey; (b) Y is a subkey; (c) X is not a subkey.
Now, Definition 2 says R isn't in 2NF if and only if there exists a nontrivial FD X Y that holds in R such
that X isn't a superkey and Y isn't a subkey and X is a subkey. But if X is a subkey and not a superkey, it must be a
proper subkey; thus, Definition 2 effectively says R isn't in 2NF if and only if there exists a nontrivial FD X Y
that holds in R such that X is a proper subkey and Y isn't a subkey. So let K be a key that includes X as a proper
subkey. Then the FD K Y holds in R and is reducible, whence it follows that the FD K → { A } holds in R and is
reducible for every attribute A contained in Y . So Definition 2 implies Definition 1. Following this argument in the
reverse direction will likewise show that Definition 1 implies Definition 2.
4.5
Consider the following argument.
Let relvar R not be in 2NF. Then there must be some key K of R and some nonkey attribute A of R such that
the FD K → { A } (which holds in R , necessarily) is reducible─meaning some attribute can be dropped from
K , yielding K′ say, such that the FD K′ → { A } still holds. Hence K must be composite.
This argument appears to show that the answer to the exercise must be yes ─i.e., if a relvar isn't in 2NF, it
must have a composite key. But the argument is incorrect! Here's a counterexample. Let USA be a binary relvar
with attributes COUNTRY and STATE; the predicate is STATE is part of COUNTRY , but COUNTRY is the
United States in every tuple. Now, {STATE} is the sole key for this relvar, and the FD {STATE} → {COUNTRY}
thus certainly holds. However, the FD {} → {COUNTRY} clearly holds as well (see the answer to Exercise 4.10
below); the FD {STATE} → {COUNTRY} is thus reducible, and so the relvar isn't in 2NF, and yet the key
{STATE} isn't composite.
4.6 No! By way of a counterexample, consider relvar USA from the answer to the previous exercise. That relvar
is subject to the FD {} → {COUNTRY}, which is neither trivial nor an arrow out of a superkey, and so the relvar
isn't in BCNF. (In fact, of course, it isn't even in 2NF, as we saw in the answer to the previous exercise.) It follows
that the relvar can be nonloss decomposed into its two unary projections on {COUNTRY} and {STATE},
respectively. (Note that the corresponding join, needed to reconstruct the original relvar, is in fact a cartesian
product.)

Search WWH ::

Custom Search