Re: Concurrency in an RDB - another question about recursive definitions

From: Bob Badour <bbadour_at_pei.sympatico.ca>
Date: Sat, 20 Jan 2007 16:05:09 GMT
Message-ID: <V4rsh.3146$1x.54063_at_ursa-nb00s0.nbnet.nb.ca>


paul c wrote:
> Bob Badour wrote:
>

>> ...
>> What I am saying is: When you project onto A, the data type of B is 
>> mostly** irrelevant. Likewise, when you project onto B, the data type 
>> of A is mostly irrelevant.
>>
>> The fact that you have a recursive data type definition has no effect 
>> on project or join or restrict or union or intersect or difference 
>> etc. The values identified as B are simply values.
>>
>> Assuming:
>>
>> A = { a1, a2, a3, a4, a5 }
>> B = { {a,b} | a in A and b in B }
>>
>> Given relation R{a in A,b in B}: /* Using C-style comments */
>>
>> R = { { a1, { a2, { a3, {} } } }  /* a=a1, b={ a2, { a3, {} } */
>>   , { a4, { a3, {} } }            /* a=a4, b={ a3, {} } */
>>   , { a5, { a2, { a3, {} } } }    /* a=a5, b={ a2, { a3, {} } */
>> }
>> ...

>
>
> Bob, now I remember a parallel question that struck me about your subtle
> definition of B, B = { {a,b} | a in A and b in B }. I take it that you
> meant B to be a type that is used by the R relation. But is it somehow
> plausible to see B as a relation?

B must be a relation type, in fact.

> If so, I would think that a value for relation B that has one tuple:
>
> B = { { a1, {a2, {a3, {} } } } } /* a=a1, b={ a2, { a3, {} } */
>
> is not possible because by definition (B "referencing" itself), there
> would need to be two additional tuples to make it stick to the
> definition, namely
>
> { a2, { a3, {} }
>
> and
>
> { a3, {} }.
>
> Thanks for any comments,
> p

Relations are sets and {} is one of them. Thus {} is a valid B value; although, I omitted the headers for brevity. Joe Thurbon introduced a notation today where the set would look more like:

<<A: anA, B: aB>: {}>

{ a3, {} } would look more like:

<<A: anA, B: aB>: {{ a3, <<A: anA, B: aB>: {}>}}>

etc. Received on Sat Jan 20 2007 - 17:05:09 CET

Original text of this message