Re: Functional dependency is multivalued dependency
Date: 30 Apr 2006 10:57:31 -0700
Message-ID: <1146419851.120045.102580_at_j73g2000cwa.googlegroups.com>
Jan Hidders wrote:
> paul c wrote:
> >
> > (I wasn't expecting that it would be a 'bag', it's just that I thought
> > the symbol '\/' stood for semi-union which I think RL intends to operate
> > on relations.) So if we start with the value I that has X and Y
> > attributes, how do we get a value for XY without projection?
>
> XY is by definition the binary relation with an X column and Y column
> that contains all possible 2-tuples.
Smaller letters for empty relations and capital letters for domains and their cartesian products was the earlier convention. It is not especially attractive because of the mixed use of capital and small letters. In the latest article the convention was to denote empty relations and predicates in those funny quotes/brackets like
`x` , `y` -- empty relations with headers x, y where x and y are single
attributes
`x=y`, `y=1` -- relations with headers xy, and x defined by the
predicates
`x=0 and x!=0` -- the domain of x (which unlike header relation
appeared to be used so rarely that a shothand is not justified).
The source of confusion is that the proposition in the Alice book denotes X, Y, and Z as sets of attributes. I just reused them as the empty header relations, which is inconsistent neither with the former lattice notaton nor the latest one! Below is a little bit more careful treatment:
When translating the proposition into the lattice form, perhaps the best thing to do is to get rid of the worthless abstraction. Let x, y and z again be single attributes. The "obvious" part of the proposition is
pi_xy(I) /\ pi_xz(I) is always a superset of I
Then in lattice terms
pi_xy(I) = `xy` \/ I
pi_xz(I) = `xz` \/ I
and the inequality we are after is
(`xy` \/ I) /\ (`xz` \/ I) <= I
which is the same as the equality
I /\ (`xy` \/ I) /\ (`xz` \/ I) = I
Then, we apply absorption law twice. Received on Sun Apr 30 2006 - 19:57:31 CEST