Re: atomic

From: Bob Badour <bbadour_at_pei.sympatico.ca>
Date: Thu, 01 Nov 2007 18:52:42 -0300
Message-ID: <472a4aad$0$14879$9a566e8b_at_news.aliant.net>


paul c wrote:

> Regarding RVA's, suppose I make up a relation that names all the
> children of various fathers.
>
> I might have
>
> F C
> _ _
>
> Joe Jack
> Joe Jill
>
> If RVA's are allowed, I could also "say":
>
> F {C}
> _ ___
>
> Joe {Jack, Jill}
>
> (here, I've taken the liberty for graphical reasons of calling the RVA
> "{C}".)
>
> I could add another tuple:
>
> F {C}
> _ ___
>
> Joe {Jack, Jill}
> Bob {}
>
> This might mean that Bob is the father of the empty set of children. As
> far as the predicate is concerned, this might be seen as contradictory
> because if Bob has no children, he can't be a father. (By
> "contradictory", I don't mean a contradiction within the database,
> rather that the second tuple and the predicate contradict each other.)
>
> For that matter if F is not a primary key, I could say:
>
> F {C}
> _ ___
>
> Joe {Jack, Jill}
> Joe {}
>
> which seems to have two such contradictions if such a thing is possible.

I don't understand the point of this second example. If you are describing a predicate where F should be a primary key, then pointing out that failing to declare the key causes problems seems redundant. If you are describing a predicate where F should not be a primary key, then presumably there is nothing whatsoever wrong with the relation above.

> If RVA's aren't allowed (and neither are nulls), I think such
> contradictions aren't possible. But similar relations seem possible
> without the second contradiction, depending on the predicate, eg., F has
> lived with a woman who was mother to the children {C}. But I still have
> the contradiction that the unnamed woman in the second tuple couldn't be
> a mother (assuming we don't let lawyers into the discussion).
>
> Maybe that second "contradiction" is just psychological and there is
> always another possible predicate that washes it away, such as "Person P
> has the children {C}". But that second tuple still seems superfluous.
>
> For a predicate like "supplier S supplies the set of parts {P}", it
> doesn't seem very useful to use an RVA to say that a supplier supplies
> no parts when a relation that avoids RVA's can avoid recording this fact
> in the first place.
>
> I suppose if a db language offers no way to construct such relations as
> above without using a form of "group" that takes as an operand only
> relations that don't contain RVA's, then such relations couldn't arise.
>
> I'm wondering are there applications where RVA values that are "empty"
> make sense or are such values just a curious by-product of RVA's?

Yes, of course, there are lots of such applications (assuming RVAs make sense.)

   If
> the latter, should they be suppressed or somehow prevented?

Not the latter, which makes the question moot. Received on Thu Nov 01 2007 - 22:52:42 CET

Original text of this message