Re: completeness of the relational lattice
Date: Fri, 22 Jun 2007 18:20:50 -0000
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.
> > > 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