Re: Functional Dependency to constrain a relation to exactly one element?

From: Marshall <marshall.spight_at_gmail.com>
Date: 1 Oct 2006 08:21:15 -0700
Message-ID: <1159716075.462989.232080_at_e3g2000cwe.googlegroups.com>


vc wrote:
> Marshall wrote:
> > vc wrote:
> > > Jan Hidders wrote:
> > > > Marshall wrote:
> > > [...]
> > > > > Is it possible to have a functional dependency > > [...]
> > > > > If it can't be done with an FD, can we do it with a constraint?
> > > >
> > > > Of course. In first-order logic you can specify this (i.e. that there
> > > > is at least one tuple in the relation) with a simple existential
> > > > statement.
> > >
> > > What simple existential statement do you have in mind ?
> >
> > If we want to ensure that relation R has at least one
> > element, *any* existential constraint on R will do it.

>

> Right, but it was not your original question. You asked about a
> constraint "that will constrain R to *exactly* one row?". Clearly,
> "*any* existential constraint on R" won't do that.

Ah, of course, I see what you mean now.

Well, we could always pair an empty determinant set FD with an empty existential constraint. Or, given a candidate key k of relation R, we could perhaps say

  exists R.k: forall R.k': k = k'

(using x' to indicate a different binding of attribute x)

Of course, you could make a good case that the above isn't "simple".

Marshall Received on Sun Oct 01 2006 - 17:21:15 CEST

Original text of this message