Généralisations
Qu'est-ce qu'une généralisation ?

Une généralisation représente une relation d'héritage entre une entité générale et une entité plus spécifique. L'entité spécifique est cohérente avec l'entité plus générale et hérite de ses caractéristiques et de son comportement. Elle peut cependant comporter des attributs ou des associations supplémentaires. Tout objet de l'entité spécifique est aussi un objet de l'entité générale.
L'entité A est une généralisation de l'entité B. Cela suppose que tous les objets de l'entité B sont aussi des objets de l'entité A. Autrement dit, B est un sous-ensemble de A. B est alors la sous-entité, A la super-entité.
Exemple :
A : Personne, B : Parisien.
B étant un sous-ensemble de A, les objets de l'entité B "héritent" des caractéristiques de ceux de l'entité A.
Il n'est donc pas nécessaire de décrire de nouveau pour l'entité B :
• Ses attributs
• Ses associations
Exemple :
L'entité "Client important" qui représente les clients dont le "C.A. sur les 12 derniers mois" dépasse 1 million d'euros, peut être une spécialisation de l'entité "Client".
Dans l'exemple qui précède, les associations et les attributs spécifiés pour "Client" sont aussi valables pour "Client important".
Autres exemples de généralisations :
"prospect" et "client" sont deux sous-entités de "personne".
"commande export" est une sous-entité de l'entité "commande".
"personne physique" et "personne morale" sont deux sous-entités de l'entité "personne".
"polygone", "ellipse" et "cercle" sont des sous-entités de l'entité "forme".
"chêne", "orme", et "bouleau" sont des sous-entités de l'entité "arbre".
"véhicule à moteur", "véhicule tout-terrain" et "véhicule amphibie" sont des sous-entités de l'entité "véhicule".
"camion" est une sous-entité de l'entité "véhicule à moteur".
Cas de plusieurs sous-entités
Plusieurs sous-entités d'une même entité :
• Ne sont pas forcément exclusives.
• Ne forment pas nécessairement une partition.
Intérêt des sous-entités
Une sous-entité hérite de tous les attributs et associations de sa super-entité, mais elle peut avoir des attributs ou des associations que ne possède pas sa super-entité.
Une sous-entité peut ainsi avoir des attributs spécifiques. Ceux-ci n'ont de sens que pour une sous-entité particulière. Dans l'exemple ci-dessus :
• Le "numéro de Siret" et le "nombre d'employés" n'ont de sens que pour une "société".
• La "date de naissance" est caractéristique d'une "personne", pas d'une "société".
Une sous-entité peut également avoir des associations spécifiques.
• Une "personne" entre dans une "catégorie socio-professionnelle" : "cadre", "employé", "commerçant", "agriculteur", etc. Cette classification n'a pas de sens pour une "société" (il existe également une classification pour les entreprises, mais ce n'est pas la même que pour les personnes).
Héritage multiple
Il est parfois utile de spécifier une entité ayant plusieurs super-entités. La sous-entité hérite alors de toutes les caractéristiques des deux super-entités. Cette possibilité doit être utilisée avec précaution.
Créer une généralisation
Pour créer une généralisation :
1. Dans la barre d'insertion du diagramme de données, cliquez sur le bouton
Généralisation
2. Cliquez dans la sous-entité, par exemple "Entité 5", et faites glisser la souris jusqu'à l'entité générale, par exemple "Entité 3", avant de relâcher votre pression.
La généralisation apparaît dans le diagramme, matérialisée par une flèche.
Discriminant
Le discriminant est l'attribut de l'entité générale dont la valeur permet de répartir les objets entre les sous-entités associées à la généralisation.
Par exemple, l'attribut code-sexe permet de répartir les objets de l'entité personne entre la sous-entité homme ou femme.
Pour définir un discriminant sur une généralisation :
1. Ouvrez les propriétés de la généralisation.
2. Cliquez la liste déroulante puis sur Caractéristiques.
3. Dans le champ Discriminant, cliquez sur la flèche puis sur Relier Attribut (MD).
4. Recherchez et sélectionnez le discriminant parmi les attributs de la super-entité.
Une fois sélectionné, le discriminant s'affiche sur la généralisation.

Il est également possible de préciser si une généralisation est
Complète : dans ce cas toutes les instances de la super-entité appartiennent à au moins une des sous-entités de cette généralisation.