Re: Foreign keys

From: Brian Selzer <brian_at_selzer-software.com>
Date: Tue, 15 Jan 2008 04:37:23 -0500
Message-ID: <n9%ij.63$XM.37_at_nlpi068.nbdc.sbc.com>


"Kira Yamato" <kirakun_at_earthlink.net> wrote in message news:2008011502240916807-kirakun_at_earthlinknet...
> On 2008-01-14 21:18:57 -0500, "Evan Keel" <evankeel_at_sbcglobal.net> said:
>
>> Always a physical issue. Never a theory issue.Agree?
>
> Foreign keys are functional dependencies across two relations.
>
> More specifically, let
> R1(K1, A1, B1)
> be a relation with attribute sets K1, A1 and B1 where K1 is R1's primary
> key and B1 is a foreign key to the relation
> R2(K2, A2)
> where K2 is R2's primary key and A2 is the set of its remaining
> attributes.
>
> Then the foreign key B1 represents the functional dependency
> B1 --> A2,
> which is the functional dependency across two relation I mentioned in the
> first sentence.
>
> Furthermore, through transitivity by the functional dependency K1 --> B1,
> the foreign key also represents the inter-relational functional dependency
> K1 --> A2.
>
> Am I correct to say this?
>

I don't think so. A functional dependency A --> B is surjective, meaning not only that for every A there must be one and only one B, but also that for every B there must be at least one A. The relationship between B1 and A2 above is injective, as is the relationship between K1 and A2.

> --
>
> -kira
>
Received on Tue Jan 15 2008 - 10:37:23 CET

Original text of this message