# Re: completeness of the relational lattice

From: Jan Hidders <hidders_at_gmail.com>
Date: Fri, 22 Jun 2007 18:20:50 -0000

> 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.

> > > BTW, why don't we define square brackets [R] as an unary operator,
> > > expressed in my notation as
>
> > > [R] = R /\ 00
>
> > What is R? In [R] it is a set of attributes. So a set of attributes is
> > a valid expression in your syntax? I'm not sure what that means.

Sorry, I missed your point there. The problem with [R] is that is doesn't allow me to define a projection for an arbitrary set of attributes.

> > Could
> > you give a complete definition of your syntax just like I did?
>
> - R : a relation name
> - Expr /\ Expr : the natural join
> - Expr \/ Expr : the inner union
> - 00 : the empty relation with empty header
> - 01 : the relation with the empty tuple and empty header
> - 10 : the empty relation with the set of all attributes as header
> - 11 : the relation with all tuples over all attributes
> - E : the "universal" equlity relation

And extended with [R] I assume. Can you prove that you can express all queries in UCQ?

• Jan Hidders
Received on Fri Jun 22 2007 - 20:20:50 CEST

Original text of this message