CentraleSupélecDépartement informatique
Plateau de Moulon
3 rue Joliot-Curie
F-91192 Gif-sur-Yvette cedex
Modèles conceptuels et diagrammes EA

Définition

Un modèle conceptuel se compose de :

  • entités : les objets sur lequels nous conservons des informations.
  • associations entre les entités.
  • attributs : propriétés des entités ou des associations.

Les associations sont, la plupart du temps, binaires, c'est-à-dire qu'elles impliquent deux entités. Les associations ternaires (avec trois entités) ou, plus généralement, n-aires (avec n entités) sont moins fréquemment utilisées.

👉 Dans la suite de cette page, nous ne considérons que des associations binaires.

Exemple

Considérons le modèle conceptuel d'une base de données de formes géométriques.


Modèle conceptuel pour une base de données de formes géométriques.

Le modèle conceptuel est visualisé à l'aide d'un diagramme entité-association (EA).

Entités

  • Chaque rectangle correspond à une entité.
  • Une entité est désignée par un nom singulier (segment, point, polygon, label) et possède certains attributs (par exemple, seg_id, seg_color).
  • Une entité décrit un type d'objet. Il peut y avoir plusieurs instances d'une entité (par exemple, il peut y avoir plusieurs segments). Chaque instance a ses propres valeurs d'attribut (par exemple, un segment peut être rouge, un autre bleu).
  • Les attributs soulignés sont des identifiants d'entités. Il ne peut y avoir deux instances différentes d'une entité avec les mêmes valeurs pour les attributs soulignés. Par exemple, deux points différents ne peuvent pas avoir les mêmes coordonnées (x, y).

Associations

  • Chaque losange correspond à une association.
  • Une association est désignée par un verbe (has_endpoint, has_side, has_label) et peut avoir certains attributs (par exemple, l'attribut index de l'association has_side).
  • Chaque association a des cardinalités (min, max) pour chaque entité impliquée dans l'association. Les cardinalités prennent uniquement les valeurs 0, 1 ou n. Les autres valeurs ne sont pas autorisées.

👉 Les côtés d'un polygone sont rangés dans le sens horaire. L'attribut index indique la position d'un côté par rapport à cet ordre.

Exemple. Considérons l'association has_endpoint entre les entités segment et point.

Les cardinalités sont (1, 1) du côté de l'entité segment :

  • Un segment doit avoir au moins une extrémité (cardinalité minimale 1).
  • Un segment peut avoir au plus une extrémité (cardinalité maximale 1).

Les cardinalités sont (0, n) du côté de l'entité point.

  • Un point peut ne pas être l'extrémité d'un segment (cardinalité minimale 0).
  • Un point peut être l'extrémité de plusieurs segments (cardinalité maximale n).

👉 Il peut y avoir deux associations différentes entre deux entités (par exemple, les associations has_endpoint entre segment et point).

Classification des associations

En fonction de ses cardinalités maximales, une association peut être classée dans l'une des catégories suivantes :

  • Une association one-to-one est une association dont la cardinalité maximale est de 1 des deux côtés (par exemple, les associations has_label).
  • Une association one-to-many est une association dont la cardinalité maximale est de 1 d'un côté et de n de l'autre (par exemple, les associations has_endpoint).
  • Une association many-to-many est une association dont la cardinalité maximale est n des deux côtés (par exemple, l'association has_side).

Pour en savoir plus

Pour une présentation approfondie des modèles conceptuels et des diagrammes entité-association, nous recommandons le livre Modern database management.