Re: RA with MV attributes

From: David <davidbl_at_iinet.net.au>
Date: 17 Jan 2007 18:24:10 -0800
Message-ID: <1169087050.041685.11440_at_11g2000cwr.googlegroups.com>


JOG wrote:
> David wrote:
> > Marshall wrote:
> > > David wrote:
> > [snip]
> > > > 2. It deals rather elegantly with missing information.
> > >
> > > I don't get this point either.
> >
> > Subject to integrity constraints, a tuple can map an attribute to an
> > empty set.
>
> The more I think about this the less it makes sense to me. Which
> representation is the most elegant?
>
> 1) Bill does not have a car.
> 2) Bill has an {} car.
> 3) Bill has a NULL car.
>
> I'll take number one.

I'll take number 4 - saying nothing at all

IMO a relational model should never try to state that a relation (definitely) doesn't exist, nor that a relation may or may not exist.  Rather it merely states all the relations that definitely do exist, and by the closed world assumption everything else is assumed to be false. Query results must be understood in this fashion. ie failure to find a result in the DB may indicate lack of information. This reminds me of Prolog's "negation as failure" approach.

MV attributes appear to offer a credible solution to representing lots of 6NF relations without all that repetition of the primary key. Of course you must be prepared to read the tuple in the "right way". When I see the tuple

    Names Cars



    bill {}

I only "read out" the proposition

   Person(bill).

So in a sense, it is like number 4 above. Received on Thu Jan 18 2007 - 03:24:10 CET

Original text of this message