Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> comp.databases.theory -> Re: completeness of the relational lattice

Re: completeness of the relational lattice

From: Jan Hidders <hidders_at_gmail.com>
Date: Fri, 22 Jun 2007 22:31:01 -0000
Message-ID: <1182551461.248301.256250@a26g2000pre.googlegroups.com>


On 22 jun, 21:11, Vadim Tropashko <vadimtro_inva..._at_yahoo.com> wrote:
> On Jun 22, 11:20 am, Jan Hidders <hidd..._at_gmail.com> wrote:
>
>
>
> > On 22 jun, 19:36, Vadim Tropashko <vadimtro_inva..._at_yahoo.com> wrote:
>
> > > On Jun 22, 3:08 am, Jan Hidders <hidd..._at_gmail.com> wrote:
>
> > > > > > We cannot distribute in general, but we have a specific distribution rule:
>
> > > > > > (1) r /\ ((s \/ [H]) \/ (t\/[H])) = r /\ (s \/ [H]) \/ r*(t \/ [H])
>
> > > > > Which is BTW a very limited case embraced by Spight criteria.
>
> > > > Indeed. But it is a simple equation, no premises.
>
> > > Your premise is that H is a set of attributes which is a subset of
> > > attributes of relations s and t
>
> > No, any set of attributes H will do.
>
> Counterexample:
>
> r(x,y) = {(1,7),(1,4),(2,4),(2,7)}
> s(x) = {2}
> t(y) = {7}
> H = {x,y}
>
> s \/ [H] = {2}
> t \/ [H] = {7}
> ((s \/ [H]) \/ (t\/[H])) = 01
> r /\ ((s \/ [H]) \/ (t\/[H])) = *** {(1,7),(1,4),(2,4),(2,7)} ***
> r /\ (s \/ [H]) = {(2,4),(2,7)}
> r /\ (t \/ [H]) = {(1,7),(2,7)}
> r /\ (s \/ [H]) \/ r*(t \/ [H]) = *** {(1,7),(2,4),(2,7)} ***

[.. multiple expletives deleted ..] You are right!! I'd missed that. That seemed a serious threat to the proof technique I had in mind. But I think it is not fatal.

> AFIR you explicitly mentioned that H is a set of attributes which is
> intersection of that of s and t -- and that's a premise.

Yes, that is how I wanted to construct that H and I think I can, but I'm annoyed by this premise. I wanted all my rules to be without premises. But I don't seem to be able to avoid it. :-( Anyway, with premises I can probably simplify using Marshall's rule. Assuming I have a function A(e) that gives the header of the result of e:

  r /\ (s \/ t) = (r /\ s) \/ (r /\ t) if (A(r) * (A(s)) - A(t) is empty and (A(r) * A(t)) - A(s) is empty

Clearly the function A can be defined for the algebra, including [H] and 'x=y'.

Received on Fri Jun 22 2007 - 17:31:01 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US