Re: Functional Dependencies?
Date: 1 Oct 2005 11:34:45 -0700
Message-ID: <1128191685.757290.240710_at_g44g2000cwa.googlegroups.com>
Theo Clevadore wrote:
> If there is a FD that says {} -> Y what does that mean?
>
> I take from it that Y is a constant value therefore anything supplied
> for X (including nothing) will determine Y. But, I'm unsure.
We can rewrite any functional dependency into a universally quantified constraint:
{A} -> {B}
is the same as
forall A, A', B, B'. A = A' => B = B'
Let P = (A = A')
Let Q = (B = B')
Then the body of the constraint is: P => Q
Putting this in disjunctive normal form, we get: !P | Q
Now in the case of A = (), we have
!( () = () ) | Q // starting to look like ascii art
!true | Q
false | Q
Q
expanding Q:
forall B, B'. B = B'
So {} -> B says that for all pairwise B values we can look at, they are the same. That is, there is only one value for B. (This is perhaps slightly different than saying it's a constant, but I think that's what you meant.)
Corrections/simplifications welcome.
Marshall Received on Sat Oct 01 2005 - 20:34:45 CEST