Re: On Formal IS-A definition

From: Cimode <cimode_at_hotmail.com>
Date: Thu, 29 Apr 2010 15:05:00 -0700 (PDT)
Message-ID: <ec495948-aa2a-4367-9885-44a64926a907_at_r11g2000yqa.googlegroups.com>


On 29 avr, 21:38, Tegiri Nenashi <tegirinena..._at_gmail.com> wrote:
> Given the two relations R and S, the R is a subtype of S or simply  "R
> is an S" (was this the source of Reinier blunder?-) iff the two
> conditions hold:
>
> 1. R ^ S = R  (where the ^ is natural join operation). This can be
> expressed succinctly as R < S with generalized subset constraint "<".
>
> The immediate consequence is that the attributes of S are the subset
> of attributes R (formally: R ^ [] < S ^ [] where the "[]" is the
> relation with empty set of attributes and empty set of tuples, aka
> DUM). Then, one may add second requirement that
>
> 2. Attributes of S form a key in relation R.
>
> My question is if the condition #2 is really necessary. Consider the
> two relations:
>
> Animals = [Name]
>            bear
>            sheep
>            wolf
> ;
>
> Carnivores1 = [Name FavoritePrey]
>               bear deer
>               wolf sheep
> ;
>
> They satisfy both conditions so that informally we say "Carnivores1"
> IS-A "Animals".
>
> Contrast this with
>
> Animals = [Name]
>            bear
>            sheep
>            wolf
> ;
>
> Carnivores2 = [Name Prey]
>               bear deer
>               wolf sheep
>               wolf deer
> ;
>
> I suggest that we still have "Carnivores2" IS-A "Animals". Do you
> agree?
1 - I like the elegance of your notation and its underlying idea of operating relations as part of inequalities. 2 - The condition is not only unnecessary it also false because sharing the same header as the supertype Name defeats the purpose to define a subtype in the first place. Hence, a distinguishable header for each subtype makes a the concept of *key formation* or *key inheritance* an absurd concept.

As a side note, there is a need to be cautious about terminology, Based on your example, Carnivores is not a subtype of Animals: only unary  Name attribute (as part of Carnivore is) is. Received on Fri Apr 30 2010 - 00:05:00 CEST

Original text of this message