Re: Question about Date & Darwen <OR> operator

From: paul c <toledobythesea_at_oohay.ac>
Date: Sat, 03 Sep 2005 00:33:51 GMT
Message-ID: <Pb6Se.67282$Hk.4881_at_pd7tw1no>


Marshall Spight wrote:
> Mikito Harakiri wrote:
>

>>>From http://c2.com/cgi/wiki?RelationalAlgebra
>>
>>a OR b : An extended form of union; if the headings of the operands
>>differ, then "missing" attributes take on all possible values. Thus the
>>result may be very large or even infinite. When the operands have the
>>same heading, then this is the same as a traditional SQL UNION, except
>>that all duplicates are always removed.
>>
>>This informal description matches the other alternative. What is the
>>formal definition?

>
>
> I haven't seen one. D&D don't really do anything with formal methods
> that I've seen.
>
> I would propose something like
>
> Given
> A:(a:Ta,ab:Tab)
> B:(b:Tb,ab:Tab)
>
> A <OR> B = { (a,ab,b) |
> ((a,ab) in A cross product Tb)
> union
> ((b,ab) in B cross product Ta)
> }
>
> Is that sufficiently formal? What would constitute a
> sufficiently formal form?
>
>
> Marshall
>

the bit on pg 56 ...
Hs = Hr1 union Hr2
Bs = {ts: exists tr1 exists tr2

		( ( tr1 in Br1 or tr2 in Br2) and
			ts = tr1 union tr2 }

... D & D call it a formal definition. i had the impression they wanted to use <AND> and <OR> to define the other operators, such as product from that starting point. personally, i like the connection with ordinary English, even if i'm often getting the result of <OR> wrong! (maybe that's why i like it since so many people i know get the English one wrong too, eg. "i'll see you today or tomorrow" usually means neither!)

i was wondering - if you started with 'cross product' instead of <OR>, how would you define 'cross product'?

thanks,
pc Received on Sat Sep 03 2005 - 02:33:51 CEST

Original text of this message