Re: 4NF is Where It Is At! [WAS Re: 1:1 relationships]
Date: 16 Feb 2001 09:54:28 GMT
Message-ID: <96itck$rq6$1_at_news.tue.nl>
Jan Hidders wrote:
> Vadim Tropashko wrote:
> > In article <96hjgh$ilp$1_at_news.tue.nl>, Jan Hidders says...
> > >
> > >which is indeed equivalent with
> > >
> > > ~R = (~R[CT] JN R[X]) + (~R[CX] JN R[T])
> > >
> > >and also with
> > >
> > > R = R[CT] JN R[CX]
> >
> > The manner in which you've written this prompts a natural question:
> > could this equivalence be demonstrated by pure algebraic means? Or we
> > have to resort to point-by-point consideration?
>
> Good question. It think you would need to add a rule like
>
> ~(R1 JN R2) = (~R1 JN R2) + (R1 JN ~R2) + (~R1 JN ~R2)
>
> and probably some more. As far as I know there is no complete finite
> axiomatization of the relational algebra. Perhaps we should ask in
> 'comp.theory'.
>
> > >> I write mine rather as
> > >>
> > >> ~R = (~R[CT] CP X) + (~R[CX] CP T)
> > >>
> > >> without joins.
> > >
> > >De gustibus non disputandum est :-) In the most straightforward
> > >definition of the join without artificial limitations the JN is
> > >equivalent to CP if there are no common attributes, which is a
> > >precondition for the CP anyway. So it is more elegant to have only
> > >a JN and no CP in your algebra; instead of two operators with
> > >preconditions you get one operator with no preconditions.
> >
> > By two operators do you mean CP and ~?
>
> No, I just meant that usually there is definied the two operators R1 JN
> R2 and R1 CP R2 with the preconditions that R1 JN R2 is only a well
> formed expression if R1 and R2 have at least one common attribute, and
> R1 CP R2 is well formed only if R1 and R2 have *no* common attributes.
> It is nicer just to have one operation R1 JN R1 that is always well
> formed and behaves as as a join if there are not common attributes, and
> as a cartesian product if there are none.
This last sentence should have been:
> It is nicer just to have one operation R1 JN R1 that is always well
> formed and behaves as a join if there are common attributes, and as a
> cartesian product if there are none.
-- Jan HiddersReceived on Fri Feb 16 2001 - 10:54:28 CET
