Re: Constraints and Functional Dependencies

From: paul c <toledobythesea_at_oohay.ac>
Date: Sun, 25 Feb 2007 17:30:55 GMT
Message-ID: <jJjEh.1142637$R63.1029634_at_pd7urf1no>


paul c wrote:
> Keith H Duggar wrote:
>

>> mAsterdam  wrote:
>>
>>> A rephrase to (i) could be:
>>>
>>> <reference>
>>> (i a)
>>>   A relation R with attribute a (written as R(a)) having
>>>   a as a reference into S(b)
>>>   is expressed as follows:
>>>
>>>   forall R(a): exists S(b): a = b
>>>
>>>   Note that b need not be a ck to S, hence 'into', not 'to'.
>>> </reference>
>>
>>
>>
>> Does Marshall's notation S(b) mean that relation S has only
>> one attribute b? If so then b is necessarily a ck (in fact
>> the only key). If S(b) is actually a shorthand notation for
>> S(b,b0...bn) then one can express that b is a ck by:
>>
>>    forall b: exists c0,...cn: forall b0...bn:
>>       S(b,b0...bn): b0 = c0 ... bn = cn
>>
>> Correct?

>
>
> Don't know - I thought he was just trying to be brief on the way to his
> main point (later in his original post, he gave his ck definition.)
>
> Regarding "(in fact the only key)" I don't think this is so, since the
> empty set of attributes could also be a key, aka constraint if the
> language in use allowed its expression. If that constraint were in
> place "b" would also be a key, whether it contained one attribute or
> many, lucky thing too, otherwise the RI interpretation that assumes ck's
> wouldn't be possible when the referenced table had only one row.
>
> p

Meant to add that this seems an irrefutable argument against PRIMARY keys being required by RI. (Candidate keys are a different issue.)

p Received on Sun Feb 25 2007 - 18:30:55 CET

Original text of this message