Re: Constraints and Functional Dependencies

From: mAsterdam <mAsterdam_at_vrijdag.org>
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

Original text of this message