>>> I'm a bit studying join types and trying to make a visualisation of
>>> relations among them. As a result I've created an ER diagram
[quoted text clipped - 18 lines]
> I do not share the perspective. I prefer to view theta join as natural
> join followed by restrict.
Can you explain how that works? I can see theta join as cartesian
product followed by restrict, but I don't see how you do a 'greater
than' join with a natural join -- unless you rename one (or both) of the
join terms so that natural join degenerates into cartesian product and
then you restrict on the renamed terms. But that's not an obvious use
of a natural join, I think.
> One might argue it's just a question of one's choice of primitives. I
> would argue that both natural join and restrict are simpler operations
> than theta join.

Signature
Jonathan Leffler #include <disclaimer.h>
Email: jleffler@earthlink.net, jleffler@us.ibm.com
Guardian of DBD::Informix v2007.0914 -- http://dbi.perl.org/
publictimestamp.org/ptb/PTB-2365 sha512 2008-01-26 03:00:05
AB90FEBA17BC6DD2B41824F751D70E037E6DC63C810FF209B17E01B7883E9DFB1D6E34
51F56B1991A26C63BECE9CBC0C696517C3EE4F0B0C9056723D17F3EDE
Bob Badour - 26 Jan 2008 14:22 GMT
>>>> I'm a bit studying join types and trying to make a visualisation of
>>>> relations among them. As a result I've created an ER diagram
[quoted text clipped - 25 lines]
> then you restrict on the renamed terms. But that's not an obvious use
> of a natural join, I think.
Cartesian product is only a special case of natural join. How do you
express the inequality if the join attributes have the same name? What
is the corresponding value in each tuple?
>> One might argue it's just a question of one's choice of primitives. I
>> would argue that both natural join and restrict are simpler operations
>> than theta join.