Copyright © 2021 Yves MARCOUX; dernière modification : 2021-09-22; corrections mineures : 2021-09-28.

Diagrammes entités-relations

Yves MARCOUX - EBSI - Université de Montréal


Table des matières

Introduction

Différentes formes de diagrammes

Constitution d’un diagramme E/R

Les entités (rectangles)

Les attributs (ovales)

Les attributs d’entité

Les relations (losanges)

Les attributs de relation

Les cardinalités

Cardinalité d’un attribut

Cardinalité d’une relation

Un exemple

Distinguer une entité d’un attribut

Dessiner concrètement un diagramme E/R


Introduction

Les diagrammes entités-relations – qu’on abrège souvent diagrammes E/R ou diagrammes ER – sont un type d’outils visuels utiles lors de la conception d’une base de données (BD). Ils permettent de représenter de façon graphique et concise une certaine compréhension de la situation où se manifestent les besoins de gestion d’information auxquels la BD répondra. À ce titre, ils permettent de réfléchir à la situation, d’échanger sur elle avec les différentes parties prenantes du projet de BD, notamment les « clients » de la BD : les personnes pour le compte desquelles la BD est conçue et mise en service.

Normalement, une analyste procédera à l’analyse des besoins sous-jacents au projet de BD, puis établira le diagramme E/R en fonction de sa compréhension de la situation. Elle validera cette compréhension auprès des clients de la BD en leur présentant le diagramme établi. La forme graphique est particulièrement propice aux échanges avec les clients. Une fois le diagramme E/R validé, on peut en tirer presque automatiquement la structure d’une BD : tables, champs, clés primaires et externes.

Établir le diagramme E/R n’est pas une étape obligatoire dans la mise sur pied d’une BD. En effet, il est possible de passer directement d’une étude de besoins à la structure d’une BD, surtout lorsque la situation est peu complexe. Cependant, il est habituellement plus difficile de valider auprès d’un client la compréhension d’une situation avec une structure de BD qu’avec un diagramme E/R.

Quand l’analyste décide de passer par l’étape d’un diagramme E/R, celui-ci sera inclus dans le dictionnaire de données de la BD. En effet, il constitue un élément de documentation et d’explication important concernant la BD.


Différentes formes de diagrammes

Les diagrammes E/R sont des outils destinés à être utilisés par les humains et non par un programme informatique. De ce fait, la forme précise qu’ils peuvent prendre n’est pas strictement fixée et n’a pas, contrairement aux langages informatiques, à se conformer à une syntaxe ou à une forme rigoureusement définie.

Pour cette raison, une panoplie de formes différentes ont été développées pour les diagrammes E/R, notamment en fonction de différentes méthodologies informatiques d’analyse et de développement, qui sont nombreuses. La forme spécifique que nous présentons ici en est une de base que l’on retrouve comme sous-ensemble d’à peu près toutes les formes courantes.


Constitution d’un diagramme E/R

Un diagramme E/R est constitué de formes géométriques de trois types : rectangles, ovales et losanges, reliés par des lignes. Chaque forme géométrique possède une annotation textuelle, qui est simplement un mot ou quelques mots d’une langue naturelle inscrit dans la forme (pour nous, ce sera le français). Les lignes n’ont pas d’annotation textuelle, mais certaines d’entre elles possèdent à une de leurs extrémités une indication de cardinalité, qui prend la forme du chiffre 1 ou de la lettre N.

Voici un exemple :

diagrammes-ER-2.png

Les entités (rectangles)

Les entités sont symbolisées dans le diagramme par les rectangles. Les entités correspondent aux types d’objets que l’on veut gérer avec la BD. Attention, on entend ici objet au sens très large. Il peut s’agir bien sûr d’objets matériels comme tels (livres, appareils électroniques, véhicules routiers, etc.), mais il peut aussi s’agir de personnes avec un certain statut (client, étudiant, professeur, etc.) ou d’objets abstraits, comme un cours, une période de temps (année, trimestre, etc.) ou encore un événement (concert, voyage, séance d’entraînement, etc.).

Essentiellement, les entités représentent les objets (dans le sens très large que l’on vient de voir) à propos desquels nous inscrirons dans la BD les principales informations descriptives.

L’annotation textuelle inscrite dans un rectangle est le nom de l’entité. On essaie le plus possible d’utiliser un nom commun ou un groupe nominal au pluriel comme nom d’entité. On utilise le pluriel car l’entité représente une classe d’objets, donc plusieurs objets.

Les entités sont très analogues aux tables dans une BD et, effectivement, chaque entité donnera lieu à une table lorsque le diagramme sera « converti » en structure de BD. Mais rappelons-nous qu’un diagramme E/R est une représentation conceptuelle d’une situation et ne décrit pas directement une structure de BD, d’où le vocabulaire différent. D’ailleurs, certaines tables ne correspondant pas à des entités s’ajouteront dans la structure de BD.

Les attributs (ovales)

Les attributs, symbolisés dans le diagramme par des ovales, correspondent aux informations atomiques de base que l’on veut retrouver dans la BD. On dit atomique dans le sens qu’il s’agit d’une information qui peut raisonnablement être considérée et traitée comme un tout n’ayant pas besoin d’être subdivisé. Par exemple, une date peut être considérée comme une information atomique, même si on pourrait théoriquement la subdiviser en année, mois et jour. Cependant, il n’est souvent pas nécessaire de faire cette subdivision et, dans ces cas, une date peut être considérée comme atomique et donc constituer un attribut.

L’annotation textuelle inscrite dans l’ovale est le nom de l’attribut. Il s’agira le plus souvent d’un nom commun ou d’un groupe nominal au singulier.

Les attributs sont très analogues aux champs dans les tables d’une BD. Cependant, au niveau du diagramme E/R, on ne précise pas le type du champ, ni les règles de validation, par exemple s’il est obligatoire ou non. Aussi, certains champs ne correspondant pas à des attributs s’ajoutent lors de la conversion du diagramme en structure de BD.

Dans un diagramme E/R, un attribut peut être lié à une entité (rectangle) ou à une relation (losange). Dans les deux cas, l’attribut correspond à une information de base atomique, mais la façon de l’interpréter diffère légèrement. Nous traitons les deux cas séparément : d’abord les attributs d’entité puis, plus loin, les attributs de relation.

Les attributs d’entité

Les attributs d’entité représentent les informations que l’on veut enregistrer dans la BD à propos des objets correspondant aux entités. Un attribut d’entité correspond à une information atomique à propos d’un des objets de la classe correspondant à l’entité. Les attributs d’entité sont liés à l’entité à laquelle ils se rapportent par une ligne.

Le nom de certains attributs d’entité est accompagné du symbole ⚿ (une clé encadrée), qui indique que le champ pourrait servir d’identifiant unique (donc, dans la future structure de BD, de clé primaire) pour les objets de l’entité à laquelle l’attribut se rapporte.

Les relations (losanges)

Les relations, symbolisées dans le diagramme par des losanges, correspondent (comme leur nom l’indique) aux relations que l’on veut représenter dans la BD entre les objets des différentes entités.

Une relation est toujours liée à exactement deux entités, chacune par une ligne. On dit que la relation lie ou relie les deux entités, ou qu’il s’agit d’une relation entre ces deux entités. Ainsi, une relation qui relierait deux entités « modèles d’auto » et « concessionnaires » serait une relation existant entre des modèles d’auto et des concessionnaires, par exemple le fait qu’un concessionnaire vend un certain modèle d’auto.

Dans certaines variantes de diagrammes E/R, une relation peut relier plus de deux entités.

L’annotation textuelle inscrite dans le losange peut être considérée comme le nom de la relation. Le plus souvent, on utilise un verbe à la troisième personne du singulier de l’indicatif présent. Ainsi, pour les modèles d’auto et les concessionnaires, pour représenter le fait qu’un concessionnaire vend un certain modèle, on utilisera le verbe « vend » :

diagrammes-ER-3.png

Un bon choix de verbe doit permettre de former une phrase « qui se tient » lorsqu’on le place entre les noms des entités liées (mis au singulier), en prenant soin de mettre en premier l’entité agissant comme sujet et en dernier celle qui agit comme complément d’objet direct. Par exemple :

Un concessionnaire vend un modèle d’auto.

Notons que l’ordre dans lequel les entités sont « distribuées » autour de la relation n’a pas d’importance. Ainsi, le diagramme suivant est entièrement équivalent au précédent :

diagrammes-ER-4.png

Lorsque visuellement, l’entité « complément d’objet direct » vient naturellement avant l’entité « sujet », on peut aussi obtenir une phrase « qui se tient », en mettant simplement le verbe à la voie passive :

Un modèle d’auto est vendu par un concessionnaire.

Théoriquement, la forme en voie passive pourrait aussi être utilisée comme nom de la relation. On préfère en général la forme en voie active, moins lourde.

Les attributs de relation

Un attribut de relation est une information qui qualifie ou donne un détail sur la relation qui existe entre deux objets spécifiques liés par la relation. Dans le diagramme, un attribut de relation est lié par une ligne à la relation à laquelle il se rapporte.

Par exemple, pour la relation « vend » entre des modèles d’auto et des concessionnaires, on pourrait être intéressé à connaître le nombre d’exemplaires vendus dans la dernière année. On ajouterait alors un attribut à la relation «  vend », correspondant au nombre d’exemplaires vendus dans la dernière année :

diagrammes-ER-5.png

Il ne faut pas se soucier de la longueur des noms des différents éléments dans un diagramme E/R, en particulier des noms d’attribut, qui peuvent être longs, puisqu’ils correspondent parfois à des informations très pointues. Il faut donner priorité à la clarté et à la précision, car le diagramme E/R est un outil de communication entre humains.

Au moment où le diagramme sera converti en structure de BD, il sera possible d’adopter des noms plus courts. Les noms plus longs ne seront pas perdus, car il sera possible de les utiliser comme « description » de l’élément approprié (table, champ) dans la définition de la BD au niveau du SGBD.

Les cardinalités

Dans un diagramme E/R, les cardinalités peuvent s’appliquer aux attributs et aux relations. Il est important d’établir les cardinalités des attributs et des relations car elles ont une grande importance lors de la conversion du diagramme en structure de BD.

Cardinalité d’un attribut

Si un attribut d’entité peut avoir plusieurs valeurs pour le même objet (par exemple, plusieurs numéros de téléphone pour la même personne), on dit que sa cardinalité est N Dans ce cas, on inscrit la lettre N au bout de la ligne allant de l’entité à l’attribut. Dans le cas contraire, l’attribut est de cardinalité 1, mais on ne l’écrit pas explicitement : en l’absence d’un N, il est implicite que l’attribut ne peut avoir qu’une seule valeur par objet. Dans certaines variantes de diagrammes E/R, le symbole de l’infini ∞ est parfois utilisé au lieu de la lettre N.

Au niveau conceptuel, les attributs de cardinalité N sont tout à fait analogues aux champs à occurrences multiples des BD textuelles.

Un attribut de relation est toujours implicitement de cardinalité 1.

Cardinalité d’une relation

La cardinalité d’une relation correspond intuitivement à la possibilité pour un objet d’un côté de la relation d’être ou non en relation avec plusieurs objets de l’autre côté de la relation. Comme la relation peut être parcourue dans deux sens, la cardinalité a deux composantes. On parlera donc de cardinalité 1-1, 1-N ou N-N.

La façon la plus simple d’établir la cardinalité d’une relation est d’utiliser la phrase associée à la relation, telle que nous l’avons introduite ci-dessus. On formulera cependant la phrase à l’interrogative et avec certaines variations.

Un exemple de relation N-N

Pour la relation de vente entre concessionnaires et modèles d’auto, la phrase qu’on obtenait était :

Un concessionnaire vend un modèle d’auto.

Au lieu de cette phrase, on formule plutôt la question suivante :

Un concessionnaire peut-il vendre plusieurs modèles d’auto ?

Les mots un et plusieurs sont importants. Comme la réponse est ici « oui », on inscrira N au bout de la ligne reliant la relation à l’entité « modèles d’auto ». Cela constituera une composante de la cardinalité :

diagrammes-ER-6.png

Si la réponse avait été « non », nous aurions inscrit le chiffre 1.

Pour connaître l’autre composante de la cardinalité, on inverse les deux entités dans la question (en faisant évidemment passer le verbe à la voie passive) :

Un modèle d’auto peut-il être vendu par plusieurs concessionnaires ?

La réponse est encore « oui », et nous écrivons donc aussi un N au bout de la ligne reliant la relation à l’entité « concessionnaires » :

diagrammes-ER-7.png

Comme les deux composantes de la cardinalité sont N, la relation est de cardinalité N-N. Si une des composantes (n’importe laquelle) avait été 1, elle aurait été de cardinalité 1-N; si les deux avaient été 1, elle aurait été de cardinalité 1-1.

Un exemple de relation 1-N

Voici un exemple de relation 1-N. Remplaçons les concessionnaires par des fabricants d’autos et intéressons-nous à la relation entre les fabricants et les modèles d’auto :

diagrammes-ER-8.png

La première question que l’on est appelé à poser est :

Un fabricant peut-il fabriquer plusieurs modèles d’auto ?

Clairement, la réponse est « oui », alors on inscrit un N près de l’entité « modèles d’auto » :

diagrammes-ER-9.png

La seconde question est :

Un modèle d’auto peut-il être fabriqué par plusieurs fabricants ?

Avec le sens habituel de « modèle d’auto » et de « fabriquer », la réponse est « non », alors on inscrit un 1 près de l’entité « fabricants » :

diagrammes-ER-10.png

Comme les composantes de la cardinalité sont 1 et N, la relation est de cardinalité 1-N.


Un exemple

Revenons maintenant au premier diagramme donné en exemple au début du texte :

diagrammes-ER-2.png

Il correspond à une situation – par exemple une école ou autre institution de formation – dans laquelle des étudiants peuvent être inscrits à des cours donnés par des professeurs et obtenir une note. Assurez-vous de comprendre tous les éléments de ce diagramme.

Exercice

Répondez aux questions suivantes en observant le diagramme E/R ci-dessus. Justifiez votre réponse à l’aide d’éléments spécifiques du diagramme.

Dans la situation décrite par le diagramme E/R :

  1. L’institution d’enseignement pratique-t-elle le team teaching, autrement dit, un cours peut-il être donné par plusieurs professeurs ?
  2. Un étudiant peut-il s’inscrire à plusieurs cours ?
  3. Est-il possible d’enregistrer pour le même étudiant une adresse permanente et une adresse temporaire ?
  4. Est-il possible que, par hasard, deux professeurs aient le même matricule ?

Distinguer une entité d’un attribut

Il est parfois difficile de distinguer ce qui doit être considéré comme une entité de ce qui doit être considéré comme un attribut. Voici une façon (intuitive et informelle) de procéder.

Dans la situation à modéliser, il y a des objets (concrets ou abstraits) que l’on veut représenter dans la base, c’est-à-dire au sujet desquels on veut emmagasiner de l’information dans la base. On identifie d’abord les différents types d’objets (e.g., des personnes, des livres, des heures, etc.). Ensuite, pour chacun de ces types d’objets, on se demande : est-on est intéressé à ces objets en eux-mêmes, ou seulement parce qu’ils qualifient ou se rapportent à des objets d’un autre type ? Si c’est le premier cas, alors les objets du type considéré constituent une entité. Si c’est le second cas, les objets sont un attribut d’une (autre) entité.

Une autre façon de poser le problème est de se demander si on voudrait conserver l’information sur un objet de ce type, même s’il s’adonnait, à un moment donné, à n’être en relation avec aucun autre objet dans la base.

Par exemple, dans la situation correspondant au diagramme utilisé dans l’exercice ci-dessus, un cours se donne dans un certain local, et on veut conserver cette information dans la base; par contre, s’il n’y a aucun cours qui se donne dans un certain local particulier, il n’est pas gênant de n’avoir aucune information sur ce local dans la base. C’est pour ça que les locaux sont un attribut (de l’entité « cours »), et non une entité.

La situation serait différente si on voulait gérer l’attribution des locaux aux différents cours avec la base de données. Il faudrait alors être capable de formuler des requêtes du genre « Quels sont les locaux qui peuvent recevoir le nombre d’étudiants qui sont inscrits à tel cours ? » Alors, il faudrait conserver dans la base l’information sur un local (en particulier, le nombre de places), et ce, même si aucun cours ne s’y donne à un moment précis. Les locaux constitueraient donc une entité, qui aurait comme attributs une localisation physique, un nombre de places, etc. Le fait qu’un type d’objets doive être considéré comme une entité ou un attribut peut donc dépendre de l’utilisation prévue de la base.

Pour ce qui est des cours, la situation est claire : même si aucun étudiant n’est inscrit à un cours (ce qui arrive au début de chaque année, avant que les inscriptions ne commencent), on veut conserver les informations qui y sont reliées : son titre, qui le donne, où il se donne. Les cours constituent donc clairement une entité.


Dessiner concrètement un diagramme E/R

Comme les diagrammes E/R n’ont pas à se conformer à une syntaxe ou à une forme rigoureusement définie, une variation est possible dans la façon exacte dont ils sont dessinés. Un diagramme fait à la main peut tout à fait faire l’affaire dans certaines circonstances.

Bien qu’il existe des outils de dessin spécialisés permettant de créer facilement des diagrammes E/R d’une grande régularité et d’allure professionnelle, on peut obtenir d’excellents résultats avec des outils généraux de dessin. Ainsi, les exemples présentés dans ce texte ont été produits avec les outils de dessin du logiciel PowerPoint de Microsoft. La façon exacte de procéder dépasse la portée du présent texte, mais un peu d’exploration devrait vous permettre assez rapidement de réaliser des diagrammes de bonne qualité.