Generalizations

A generalization represents an inheritance relationship between a general entity and a more specific entity. The specific entity is fully consistent with the general entity and inherits its characteristics and behavior. It can however include additional attributes or associations. Any object of the specific entity is also a component of the general entity.
What is a generalization?
Entity A is a generalization of entity B. This implies that all objects in entity B are also objects in entity A. In other words, B is a subset of A. B is then the sub-entity, and A the super-entity.
Example:
A: Person, B: Employee.
B being a subset of A, the instances of entity B "inherit" the characteristics of those in entity A.
It is therefore unnecessary to redescribe for entity B:
• Its attributes
• Its associations
Example:
The “Large Client” entity, representing clients with a 12-month revenue exceeding $1 million, can be a specialization of the Client entity (origin).
In the above example, the associations and attributes specified for “Client” are also valid for “Large client”.
Other examples of generalizations:
"prospect" and "client" are two sub-entities of "person".
"export order" is a sub-entity of the "order" entity.
"Individual person" and "corporate person" are two sub-entities of the "person" entity.
"motor vehicle", "off-road vehicle" and "amphibious vehicle" are sub-entities of the "vehicle" entity.
Multiple sub-entities
Several sub-entities of the same entity:
• are not necessarily exclusive.
• do not necessarily partition the set.
Advantages of sub-entities
A sub-entity inherits all the attributes and associations of its super-entity, but can have attributes or associations that the super-entity does not have.
A sub-entity can also have specific attributes. These only have meaning for that particular sub-entity. In the above example:
• "Registry number" and "number of employees" only have meaning for a "company".
• "Date of birth" is a characteristic of a "person", not a "company".
A sub-entity can also have specific associations.
• A "person" falls into a "socio-professional group": “manager”, “employee”, “shopkeeper”, “grower”, etc. This classification makes no sense for a “company”. There is also a classification for companies, but this differs from the one for persons.
Multiple inheritance
It is sometimes useful to specify that an entity has several super-entities. The sub-entity inherits all the characteristics of both super-entities. This possibility should be used carefully.

Multiple inheritance is not taken into account when generating tables.
Creating a generalization
To create a generalization:
1. Click the
Generalization 
button in the objects toolbar.
2. Click the sub-entity, in this example "Entity 5", and drag the mouse to the general entity, in this example "Entity 3", then release the button.
The Add Generalization dialog box opens.
3. Enter the name of the generalization, "Generalization 1”, then click Create.
The generalization is now indicated in the diagram by an arrow.
Discriminator
The discriminator is a general entity attribute whose value partitions the objects into the sub-entities associated with the generalization.
For example, the gender code attribute divides the objects in the person entity into the man and woman sub-entities.
You can define discriminator(s) in the generalization properties dialog box.

It is also possible to specify whether a generalization:
• IsDisjoint: An instance cannot belong to two sub-entities of the generalization simultaneously.
• IsComplete: All instances of the super-entity belong to at least one of the sub-entities of this generalization.