The EER model is an extension of the ER model. It includes all the modeling concepts of the ER model. In addition, it incorporates the following additional semantic data modeling concepts.

Specialization is the process of defining a set of subclasses of an entity type. This entity type is called the superclass of the specialization. The set of subclasses that form a specialization is defined on the basis of some distinguishing characteristic of the entities in the superclass. Ex: The set of subclasses {SECRETARY, ENGINEER, TECHNICIAN} is a specialization of the superclass EMPLOYEE. We may have several specializations of the same entity type based on different distinguishing characteristics. In other words there exist other specializations of the employee base on the method of pay for example.

The specialization process defines a subset of subclasses of an entity type representing an “IS A” relationship. It can then establish addition specific attribute types for each subclass. Ex: a student can have a master thesis; a professor can have an academic degree attribute type. During the specialization, it is also possible to establish additional specific relationship types between each subclass and other entity types. Ex: a student can register for courses, a professor can teach courses.

Generalization, also called abstraction, is the reverse process of specialization. Specialization corresponds to a top-down process of conceptual refinement whereas generalization corresponds to a bottom-up process of conceptual synthesis. In this process, we suppress the differences among several entity types, identify their common features, and generalize them into a single superclass of which the original entity types are special subclasses. Ex: if we consider the entity types Car and Truck. Because they have several common attributes, they can be generalized into the entity type vehicle.

We use the term generalization to refer to the process of defining a generalized entity type from the given entity type.

Disjointness constraint

  • Disjoint: an entity can a member of at most one of the subclasses.
  • Overlap: the same entity may a be member of more than one subclass.

 Completeness constraint

  • Total: specialization where every entity in the superclass must be a member of some subclass.
  • Partial: allows an entity not to belong to any of the subclasses and to only belong to the superclasses.

The disjointness and completeness constraints are independent which leads to many possible combinations.

  1. Disjoint and total
  2. Disjoint and partial
  3. Overlapping and total
  4. Overlapping and partial

Specialization can be several levels deep. In other words, a subclass can be a superclass of another specialization. In a specialization hierarchy, every subclass can only have a single superclass. In a specialization lattice, a subclass can have multiple superclasses. In both cases, a subclass inherits the attribute types and relationship types of all its predecessor super classes all the way to the root of the hierarchy.

The concept where a shared subclass (i.e a subclass with multiple parents) inherits from all of its parents is called multiple inheritances.

  • Categorization: A category is a subclass that has several possible super classes. Each superclass represents a different entity type. The category represents a collection of entities that is a subset of the union of super classes. Ex: Account holder is the subset of a union between person and company.
  • Inheritance in this case corresponds to an entity inheriting only the attributes and relationships of that superclass it is a member of (= selective inheritance). It can be total or partial. In a total categorization all entity of the super classes belongs to the subclass. A total categorization can also be represented as a specialization or generalization.
  • Aggregation: The idea is that entity types that are related by a particular relationship type can be combined into a higher-level aggregate entity type. This can be useful when the aggregate entity type has its own attribute types and relationship types.

Ex: Consultants working on projects can be combined into the aggregation of “participation”.

We partially specialized employees into manager. Then we connect the manager subclass to the department entity type. Department and project have been allocated into allocation. This then participated in the relationship type “works on” with EMPLOYEE.