Re: completeness of the relational lattice
Date: Fri, 22 Jun 2007 10:36:17 -0700
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
> 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