Re: atomic
- From: Bob Badour <bbadour@xxxxxxxxxxxxxxxx>
- Date: Thu, 01 Nov 2007 18:52:42 -0300
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.
.
- References:
- Re: atomic
- From: David Cressey
- Re: atomic
- From: Bob Badour
- Re: atomic
- From: Bob Badour
- Re: atomic
- Prev by Date: Re: RM and abstract syntax trees
- Next by Date: Re: atomic
- Previous by thread: Re: atomic
- Next by thread: Re: atomic
- Index(es):
Relevant Pages
|