Re: Multi-Valued Dependencies

From: Harry Chomsky <harryc_at_chomsky.net>
Date: 2000/03/22
Message-ID: <SzbC4.1517$ZT3.33568_at_news.pacbell.net>#1/1


Randy Yates wrote in message <38D923E5.B3220C33_at_rtp.ericsson.com>...
>Harry Chomsky wrote:
>> In fact, in *any* relation with two or more attributes, you can partition
>> the attributes into subsets X and Y and verify that X ->-> Y. This fact
 is
>> not very interesting though. When designers talk about MVDs, they
 generally
>> mean non-trivial ones.
>
>You seem to be using the term trivial for two different reasons:
>
> Trivial A: An MVD is trivial if the subset C is null

"Trivial A" is what I meant.

> Trivial B: An MVD is trivial if the set of B values
> matching a given (A value, C value) pair is of
> cardinality "1" (i.e., the set contains only one value).
>
>The case defined by trivial B is the only way I can reconcile your
>statement that *any* relation with two or more attributes and
>be considered MVDs, otherwise, e.g., the relation
>
> COURSE TEACHER
> Physics Green
> Math Green,
>
>where COURSE is a primary key, would not be considered an MVD.

In this case, still, we have the trivial (in sense A) MVD COURSE ->-> TEACHER. That is, the set of TEACHER values matching any given COURSE value depends only on the COURSE value. It sounds stupid to say it that way because it's so obvious -- hence "trivial" :-).

>I really don't mean to be hung up on this point - it really
>seems to be important in being able to proceed to the
>definition of fourth normal form. The problem is, I'm not
>sure which characteristic of relvars the concept of MVD
>is meant to identify: the characteristic in which two or
>more sets of attributes are independent of one another but dependent
>on some other set of attributes, or the characteristic in
>which a single set of attributes contains a "set" of values that
>are, as a set, dependent on another set of attributes (i.e.,
>a "relation-valued" attribute).

The former. As far as I can tell, the latter characteristic is satisfied by every relation. If X is any subset of the attributes and Y is its complement, then for any value of X, there is a set of corresponding values of Y. Collectively, these sets define the relation. To put it a different way, you could define a new relation with the attributes from X and a new attribute A, where A is defined on the domain of "sets of tuples on the attributes from Y". In the new relation, X is a (super)key, hence X -> A. The new relation contains the same information as the old one -- either can be reconstructed from the other.

For example, if X = { COURSE } and Y = { TEACHER }, the new relation would contain a row for each course, in which the A value would be the set of teachers of that course. This works whether or not the FD COURSE -> TEACHER is satisfied in the original relation. Date actually gives examples like this in his "Third Manifesto".

I hope this sheds light rather than creating more confusion! Received on Wed Mar 22 2000 - 00:00:00 CET

Original text of this message