A generalization derived object class,
, is defined as the
superclass of object classes
,
,
(m
2),
and consists of the union of objects belonging to these classes.
is associated with a derived identifier attribute
that is defined as the union of the identifiers of classes
,
, and
.
does not ``upward inherit'' any attributes
from
,
,
as described in [Abiteboul & Bonner 91].
However,
can have explicitly defined derived attributes,
and attributes from subclasses
,
,
can be defined on
using attribute composition derivations.
<generalization derived class> ::= DERIVED OBJECT CLASS <class name>
<permission model>
<class description>
<class example>
<generalization derivation>
<derived view attributes>
;
<generalization derivation> ::= DERIVATION ':' <generalization class list>
;
<generalization class list> ::= <class name>
| <generalization class list> or <class name>
;
An example of a generalization derived object class is class OWNED_OBJECT shown below:
DERIVED OBJECT CLASS OWNED_OBJECT
DESCRIPTION: "generalization of CONTIG_MAP and FRAGMENT"
DERIVATION: CONTIG_MAP or FRAGMENT
ATTRIBUTE owned_obj_id DERIVATION: [CONTIG_MAP] contig_id [INTEGER] or
[FRAGMENT] fragment_id [INTEGER]
ATTRIBUTE owner DERIVATION: [CONTIG_MAP] owner [PERSON] or
[FRAGMENT] owner [PERSON]