On Formal IS-A definition
From: Tegiri Nenashi <tegirinenashi_at_gmail.com>
Date: Thu, 29 Apr 2010 12:38:33 -0700 (PDT)
Message-ID: <0b2f71d0-34b5-4661-a8f6-21a40cdb9989_at_n37g2000prc.googlegroups.com>
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:
Date: Thu, 29 Apr 2010 12:38:33 -0700 (PDT)
Message-ID: <0b2f71d0-34b5-4661-a8f6-21a40cdb9989_at_n37g2000prc.googlegroups.com>
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:
- 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:
Carnivores2 = [Name Prey]
bear deer
wolf sheep
wolf deer
;
I suggest that we still have "Carnivores2" IS-A "Animals". Do you
agree? Received on Thu Apr 29 2010 - 21:38:33 CEST