Re: Constraints and Functional Dependencies
Date: 25 Feb 2007 14:55:05 -0800
Message-ID: <1172444104.943754.19960_at_s48g2000cws.googlegroups.com>
On Feb 25, 8:23 am, "Keith H Duggar" <dug..._at_alum.mit.edu> 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?
That was my intention; I like my examples to be as simple as possible. Certainly we could have written the example such that S had additional columns and it still would have illustrated the same point. However the additional columns wouldn't have added anything, so I left them out.
> If so then b is necessarily a ck (in fact
> the only key).
Not quite. A key is a set of columns, and the empty set is not excluded. So we have two possible keys: the empty set of columns, and the set containing b. (Which does mean the set containing b is necessarily a superkey.)
> 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?
I can't quite make out the above. Where did c0 .. cn come from? Are they free logic variables? My earlier proposal (in contrast to garden-variety FOL) prohibited free logic variables, allowing variables to range only over attribute values of named relations.
Marshall Received on Sun Feb 25 2007 - 23:55:05 CET