Re: Functional Dependencies?

From: Marshall Spight <marshall.spight_at_gmail.com>
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

Original text of this message