Re: Perhaps an idiotic question
From: Bob Badour <bbadour_at_pei.sympatico.ca>
Date: Fri, 01 Dec 2006 14:14:13 GMT
Message-ID: <VMWbh.27212$cz.412201_at_ursa-nb00s0.nbnet.nb.ca>
>
>
> 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#)
Date: Fri, 01 Dec 2006 14:14:13 GMT
Message-ID: <VMWbh.27212$cz.412201_at_ursa-nb00s0.nbnet.nb.ca>
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. Received on Fri Dec 01 2006 - 15:14:13 CET