Re: RA with MV attributes
Date: 17 Jan 2007 15:42:11 -0800
Message-ID: <1169077331.188616.184980_at_a75g2000cwd.googlegroups.com>
Bob Badour wrote:
> Jon Heggland wrote:
>
> > David wrote:
> >
> >>Example
> >>
> >>r1(Names,Cars)
> >> bill, car1,car2,car4
> >> john,fred car3
> >>
> >>r2(Cars,Colours)
> >> car1,car3,car4 red
> >> car2 green
> >>
> >>r1 |X| r2 (Names,Cars,Colours)
> >> bill car1,car4 red
> >> bill car2 green
> >> john,fred car3 red
> >> john,fred green
> >>
> >>[...]
> >>For example the
> >>last tuple of r1 |X| r2 above doesn't imply that John and Fred
> >>don't own any cars.
> >
> >
> > So what exactly does that last tuple mean?
>
> And what would happen if we replaced (car1,car3,car4)<->(red) with
> (car1,car3,car4)<->(red,blue) in r2 ?
Not that an integrity constraint should prevent that, unless we want to model multi-coloured cars.
> Suppose as well that r2(Cars,Colours) has the following tuple:
> yellow
>
> Would r1 |X| r2 (Names, Cars, Colours) have these tuples?
>
> bill yellow
> john, fred yellow
>
> Or would it have this tuples?
>
> bill,john,fred yellow
The non-uniqeness of representation is troublesome but not necessarily fatal. I have this idea of a mapping from the set of tuples to an underlying set of respectable 6NF propositions.
> What meaning would we ascribe to restricting r2 to the colour yellow and
> projecting on colour? Similarly, what meaning would we ascribe to
> restricting the join to the colour yellow and then projecting on Names?
Very perceptive questions. The second case is most interesting
Start with
r3 = r1 |X| r2 (Names,Cars,Colours)
bill car1,car4 red bill car2 green bill yellow john,fred car3 red john,fred green john, fred yellow
Now select yellow
r3'(Names,Cars,Colours)
Then project on Names
This is clearly not useful. The problem lies with the selection step.
If our intention is to find people that really own yellow cars then we
bill yellow
john, fred yellow
The MV approach is on shaky ground! Received on Thu Jan 18 2007 - 00:42:11 CET