Re: Perhaps an idiotic question

From: paul c <toledobythesea_at_oohay.ac>
Date: Sun, 03 Dec 2006 14:49:49 GMT
Message-ID: <huBch.408621$1T2.283841_at_pd7urf2no>


Bob Badour wrote:

> Bob Badour wrote:
> 

>> Gene Wirchenko wrote:
>>
>>> Bob Badour <bbadour_at_pei.sympatico.ca> wrote:
>>>
>>>
>>>> Gene Wirchenko wrote:
>>>>
>>>>
>>>>> Bob Badour <bbadour_at_pei.sympatico.ca> wrote:
>>>>>
>>>>>
>>>>>> Gene Wirchenko wrote:
>>>>>>
>>>>>>
>>>>>>> paul c <toledobythesea_at_oohay.ac> wrote:
>>>>>>>
>>>>>>>
>>>>>>>> But it perplexes me even though I admit I have no good reason
>>>>>>>> for asking:
>>>>>>>>
>>>>>>>> If I declare a relation (or more properly a relvar) R to have an
>>>>>>>> attribute A where A's type is the type of R am I declaring a
>>>>>>>> fallacy or something that is logically possible (ignoring
>>>>>>>> whether it has any use)?
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> I see recursion but no termination.
>>>>>>>
>>>>>>> What *is* the use of such a declaration?
>>>>>>
>>>>>>
>>>>>>
>>>>>> What would be the type of a view that combines a recursion or
>>>>>> closure with the GROUP operation?
>>>>>
>>>>>
>>>>>
>>>>> I do not know since I see recursion but no termination. If that
>>>>> is the case, the type can not declared in the first place.
>>>>
>>>>
>>>>
>>>> Sure, it can. It just requires a forward reference.
>>>
>>>
>>>
>>>
>>>>> I can see the attribute being an FK into its own relation. The
>>>>> type then is more pointer to R than R. (That wording is not quite
>>>>> right, but I hope the concept comes through.)
>>>>
>>>>
>>>>
>>>> Suppose you have a reference from R1 to R1. e.g. Employee relation
>>>> has a Manager reference to Employee. You declare a recursive view
>>>> that groups the manager references as a relation valued attribute.
>>>>
>>>> Whether the recusion terminates depends on what you did with the
>>>> CEO's manager reference and how you wrote the recursion.
>>>
>>>
>>>
>>> I do not see it. Could you please post some p-code?
>>
>>
>>
>> Something like the following:
>>
>> EE = extend (Emp where mgr# = e#)
>> add bosses as relation same heading as EE {}
>> union
>> extend (Emp where mgr# != e#)
>> add bosses as (EE where EE.mgr# = mgr#)
> 
> 
> I should amend something I said earlier. Whether the recursion 
> terminates will also depend on whether any cycles exist in the references.

Another way to put what I may have been driving at is the notion that relational conjunction (what I think D&D call "conjoin") is just a special case of transitive closure that applies when the operands happen to contain no rva's. Could this make any sense?

p Received on Sun Dec 03 2006 - 15:49:49 CET

Original text of this message