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.
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'attributindex
de l'associationhas_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 oun
. 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 associationshas_endpoint
). - Une association many-to-many est une association dont la cardinalité maximale est
n
des deux côtés (par exemple, l'associationhas_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.