# Re: completeness of the relational lattice

Date: Fri, 22 Jun 2007 10:36:17 -0700

Message-ID: <1182533777.854292.304630_at_x35g2000prf.googlegroups.com>

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 -- for me it is no different (although less general) than Spight criteria.

> > Once again, we are interested if union distributes over join, not if

*> > join distributes over union.
**>
**> ?? No, here I'm interested if join distributes over union, because I
**> want a union normal form.
*

I was confused with your example. Aiming for union normal form is indeed bettr than for join normal form because join over union distributivity in relational lattice is less restrictive!

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

Set of attributes = empty relation

> 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

Once again, I'm not convinced about syntax until I see a convincing set of axioms. Received on Fri Jun 22 2007 - 19:36:17 CEST