Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> comp.databases.theory -> Re: TRUE and FALSE values in the relational lattice
On Jun 21, 3:14 am, Jan Hidders <hidd..._at_gmail.com> wrote:
> I would assume the following operations: (in yet another notation)
> - E * E : natural join
> - E + E : generalized union
Eh, 3 different people, 3 different notations:-)
> - {()} : the relation with empty header and a single empty tuple
OK
> - [A,B,..D] : the empty relation with header {A, B, ..., D} (possibly
> the empty set)
This is nice proposal. How abotut small letters for attributes and capital letters for relations?
One of my (yet not realized) goals is to get rid of the attributes completely. Every time we have some relational lattice identity which mentions attribute x, the x can always be thought of as a composite attribute. And in relational terms a composite attribute is either an empty relation with header x, or a or cartesian product of domains. Therefore an attribute x, being it composite or not is just a relation x which satisfies the identity
x /\ 00 = x
(empty relation constraint), or
X \/ 11 = X
(full domain constraint). Therefore, perhaps the distinction between attributes and relations is not so clear cut to warrant capital and small letter notation?
> - A=B : the equality relation with header {A, B}
> - A=c : the relation with header {A} and tuple (A:c)
Single tuple element is a relation R such that
R /\ 00 != R
and there is no relation X such that
R < X < R /\ 00
where the "<" operation is understood to be the strict lattice order: "greater than (and not equal)"
Defining equality relation is an intersting venture by itself. I can suggest few identities. Assuming R(x,y)
(((R /\ (y=y') ) \/ [x,y'] ) /\ (y=y') ) \/ [x,y] = R
Again, for this to become a true axion it better be transformed into attribute agnostic form, something like this:
(( (R /\ E) \/ (X /\ Y') ) /\ E ) \/ (X /\ Y) = R
X /\ 00 = X
Y /\ 00 = Y
Y' /\ 00 = Y'
E /\ 00 = X /\ Y /\ 00
R /\ 00 = X /\ Y /\ 00
X \/ Y = 00 X \/ Y' = 00 Y \/ Y' = 00
Clearly, the straightforward translation produced such an unwieldy mess that there has to be a more concise axioms.
> - R : a relation with name R (and known header)
Yes! Again, this is how algebraic identity should look like: relation variables (no attributes in parenthesis!), constant relation symbols, and algebraic operations.
> That would be roughly equivalent with unions of conjunctive queries,
> for which equivalence is known to be decidable. Adding the set
> difference or division would make it relationally complete (so, FOL)
> and make this undecidable.
>
This is nice research program. If the other exchange taught any lessons, then spelling out every minute detail would be one of them:-) Could you please clarify (with an example!) what "homomorfism over the conjuncts" you have in mind? Received on Thu Jun 21 2007 - 12:26:19 CDT