Generalization - Generalization (internal data type)
A generalization is a property that defines a more general object type, from which the current object type inherits all features, i.e. features of all generalizations of an object type are considered as features of the object type itself. Generalizations always contain exactly one element in the properties object collection. The value of a generalization is the value of the generalized object instance.
Thus, on the level of object instances, generalizations describe specific sort of relationship to a more general object view. Object instances of several views may inherit from the same object instance (two employments for a person result in two employee instances, which both inherit from the same person instance).
In fact, generalizations have an extensional aspect and may refer to supersets containing the object instances referred to as generalization instances, i.e. generalization instances are not necessarily part of the specialized instance. Since the object type defined for a generalization refers to a different object view, generalizations in general define separate object instances.
In [1087] generalizations are defined as generic object relations. [ODMG] and [UML] support generalizations but not as properties. [ERM] does not support generalizations at all.