Re: Constraints and Functional Dependencies
Date: Sun, 25 Feb 2007 13:03:19 +0100
Message-ID: <45e17ab6$0$325$e4fe514c_at_news.xs4all.nl>
Marshall wrote:
> Walt wrote:
>> Marshall wrote:
>>
(i)
>>> ... a relation R with attribute >>> a (which I will write as R(a)) having a as a foreign >>> key into S(b) is expressed as follows: >>> forall R(a): exists S(b): a = b >> Nitpicking response: the above not only expresses the foreign key concept, >> but also referential integrity. ...
>
> Reviewing a variety of definitions, it seems to me that what
> I wrote above would best be called "referential integrity"
> and not a "foreign key" per se, since I haven't specified
> any keys.
>
> http://www.google.com/search?q=define%3Areferential+integrity
In a reply to paul c I said I liked his use of the term 'reference' for this. I changed my mind. I'll try to explain why:
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>
But what exactly is the reference referencing?
A set of S-tuples, not just one.
That makes it a sort of hand_wave instead of a reference, right?
Is there something I am missing? Should we go with:
<handwave>
(i a)
A relation R with attribute a (written as R(a)) having
a as a handwave 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'.
</handwave>
and have the 'reference' denote the special case where b /is/ ck to S? Received on Sun Feb 25 2007 - 13:03:19 CET