Re: Foreign keys

From: Kira Yamato <kirakun_at_earthlink.net>
Date: Tue, 15 Jan 2008 10:32:07 -0500
Message-ID: <2008011510320716807-kirakun_at_earthlinknet>


On 2008-01-15 04:37:23 -0500, "Brian Selzer" <brian_at_selzer-software.com> said:

> 
> "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.

Hmm... According to Atzeni/De Antonellis's book "Relational Database Theory" (section 1.6) he does not include surjectivity as a requirement for functional dependency.

-- 

-kira
Received on Tue Jan 15 2008 - 16:32:07 CET

Original text of this message