Diagrammes entité-association
Une image des choses qu'un système stocke et de la façon dont elles se rapportent les unes aux autres. Ancien, petit, et toujours le moyen le plus rapide de découvrir que deux personnes n'entendent pas la même chose par le mot "commande".
9 min de lectureER - crow's foot1 sur 3
La réponse courte
- Le conceptuel ne nomme qu'entités et relations ; le logique ajoute attributs, clés et plusieurs-à-plusieurs résolus ; le physique ajoute types et index pour un moteur.
- Une clé primaire identifie une ligne dans sa propre table ; une clé étrangère porte la clé primaire d'une autre et met réellement la relation en oeuvre.
- Un diagramme ER n'a pas d'opérations et ses relations se traduisent en clés étrangères. Un diagramme de classes modélise le comportement et exprime ce qu'un schéma ne peut pas.
- Le pied de corbeau est le standard de fait et ce que dessine presque tout outil moderne. La notation de Chen dit la même chose en prenant plus de place.
01Ce qu'il montre#
Un diagramme entité-association décrit les choses qu'un système stocke et les liens entre elles. Trois ingrédients, pas davantage :
| Élément | Notation | Ce que cela signifie |
|---|---|---|
| Entité | une boîte nommée | Une sorte de chose qui mérite d'être stockée. Nom au singulier - Customer, pas Customers - parce que la boîte représente le type et que chaque ligne en est une occurrence. |
| Attribut | une ligne dans la boîte | Un fait à propos de l'entité. En notation pied-de-corbeau ils vivent dans la boîte ; dans l'ancienne notation de Chen ils y pendent dans des ovales. |
| Relation | Un lien, avec sa cardinalité tracée à chaque extrémité. Les symboles disent combien d'occurrences de l'entité de ce côté peuvent participer. |
La valeur tient presque entièrement dans le troisième. Tout le monde sait énumérer les entités de son domaine ; la discussion commence à « une commande peut-elle exister sans client ? », et un diagramme entité-association force cette question à être répondue par un symbole plutôt que laissée confortablement vague dans un document.
02Les clés sont la partie qui compte#
Les attributs sont faciles. C'est avec les clés qu'un modèle entité-association gagne sa place, car une clé est une affirmation sur l'identité - et c'est dans l'identité que se cachent les malentendus métier.
| Élément | Notation | Ce que cela signifie |
|---|---|---|
| Clé primaire (PK) | marquée PK, listée en premier | L'attribut, ou l'ensemble d'attributs, qui identifie une ligne. Chaque entité en a exactement une. |
| Clé étrangère (FK) | marquée FK | Un attribut qui contient la clé d'une autre entité. À chaque trait de relation correspond une clé étrangère quelque part, du côté « plusieurs ». |
| Clé naturelle | un attribut du monde réel | Un ISBN, un IBAN, une adresse e-mail. Porteuse de sens, et otage du monde extérieur qui change d'avis. |
| Clé de substitution | identifiant généré | Un nombre ou un UUID sans signification. Stable par construction, et pour cette raison exactement le choix par défaut dans la plupart des systèmes. |
| Clé composite | deux attributs ou plus | Une identité qui demande plus d'une colonne. Fréquente sur les entités de jonction, où la paire de clés étrangères est l'identité. |
03La cardinalité, en bref#
Chaque extrémité d'une relation porte deux symboles : celui de l'extérieur dit combien et celui de l'intérieur dit si c'est optionnel. Une barre vaut un, un pied-de-corbeau vaut plusieurs, un cercle vaut zéro.
| Élément | Notation | Ce que cela signifie |
|---|---|---|
| Exactement un | Barre, barre. Obligatoire et unique aux deux bouts. | |
| Zéro ou un | Cercle puis barre. Optionnel et unique. | |
| Un ou plusieurs | Barre puis pied-de-corbeau. Obligatoire et multiple. | |
| Zéro ou plusieurs | Cercle puis pied-de-corbeau. L'extrémité la plus fréquente en pratique. |
Le symbole se lit à l'extrémité la plus proche de l'entité qu'il contraint, ce qui est l'inverse de ce que la plupart des gens devinent.
Ce dernier point attrape presque tout le monde et a son propre article - la notation pied-de-corbeau - sur quelle extrémité est laquelle, les relations identifiantes ou non, et la résolution d'un plusieurs-à-plusieurs.
04Conceptuel, logique, physique#
La plupart des diagrammes entité-association confus sont deux niveaux sous un même manteau. Décider lequel vous tracez règle une douzaine de petites disputes avant qu'elles ne commencent.
| Élément | Notation | Ce que cela signifie |
|---|---|---|
| Conceptuel | boîtes et traits seulement | Entités et relations dans les mots du métier. Pas de clés, pas de types, souvent pas d'attributs. Tient sur une page, et c'est celui qu'un décideur relit. |
| Logique | attributs et clés, sans types | Normalisé, doté de clés, et indépendant de toute base de données particulière. Relations plusieurs-à-plusieurs résolues. C'est la conception. |
| Physique | tables, colonnes, types | Nommé comme la base nomme les choses, avec types, index et la dénormalisation que la charge justifie réellement. |
Vous n'avez pas toujours besoin des trois. Un petit service peut aller droit au logique. Ce qui ne marche jamais, c'est de montrer un diagramme conceptuel à un développeur qui a besoin du physique, ou un physique à un décideur métier qui voulait vérifier si un client peut avoir deux adresses.
05Diagramme entité-association ou de classes ?#
Ils se ressemblent et disent des choses différentes. Un diagramme de classes décrit des types dans un programme : comportement, héritage, visibilité, navigabilité. Un diagramme entité-association décrit les données au repos : clés, cardinalité, intégrité référentielle. Le recouvrement est réel, la divergence aussi.
| Élément | Notation | Ce que cela signifie |
|---|---|---|
| Opérations | diagramme de classes seulement | Les entités n'ont pas de méthodes. Les lignes ne font rien. |
| Clés | entité-association seulement | Un diagramme de classes a l'identité d'objet gratuitement ; à une base de données, il faut dire ce qu'est l'identité. |
| Héritage | nativement en classes | L'entité-association le modélise en structure surtype-sous-type, et le modèle physique doit choisir l'une des trois dispositions de tables pour l'implémenter. |
| Plusieurs-à-plusieurs | traçable dans les deux | Un diagramme de classes peut le laisser en un seul trait pour toujours. Un modèle entité-association logique doit le résoudre en entité de jonction, car une base ne sait pas le stocker autrement. |
À utiliser quand
- Le sujet est ce qui est stocké, et le public inclut un DBA
- Il faut trancher précisément l'optionalité et la cardinalité
- La sortie est un schéma, une migration ou un ensemble de contraintes
- Un référent métier doit confirmer le vocabulaire du domaine
Préférer autre chose quand
- Le sujet est le comportement ou une hiérarchie de types - prenez un diagramme de classes
- Vous documentez les charges utiles d'une API plutôt que le stockage
- Le stockage n'a pas de schéma et la forme varie réellement d'un document à l'autre
- Ce sont trois tables et le DDL est plus court que le diagramme
06Erreurs courantes#
- Des noms d'entités au pluriel.
Customerest l'entité ;customersest la table. Les mélanger rend les phrases de relation illisibles. - Un plusieurs-à-plusieurs non résolu dans un modèle logique. Aucune base ne sait le stocker. Résolvez-le et nommez l'entité de jonction d'après ce qu'elle signifie -
Enrolment, pasStudentCourse. - Toutes les relations optionnelles. Un modèle où rien n'est obligatoire n'encode aucune règle, et les contraintes finissent éparpillées dans le code applicatif.
- Des attributs qui sont en fait des entités. Si « adresse » a besoin de cinq sous-champs et peut apparaître deux fois, c'est une entité.
- Modéliser les tables de reporting. Un modèle de lecture dénormalisé appartient au modèle physique avec une note expliquant pourquoi, pas au logique où on le prendra pour le domaine.
En une ligne chacun
- 01Entités, attributs, relations - et la valeur est dans les relations.
- 02Une clé est une affirmation sur l'identité ; préférez les clés de substitution et contraignez la naturelle.
- 03La cardinalité se lit à l'extrémité la plus proche de l'entité qu'elle contraint.
- 04Conceptuel, logique et physique répondent à des questions différentes pour des gens différents.
- 05Un diagramme de classes décrit des types dans un programme ; un ER décrit les données au repos.
- 06Lisez chaque trait à voix haute dans les deux sens - la relecture la moins chère qui existe.
07Questions fréquentes#
Qu'est-ce qu'un diagramme entité-association ?
Une image des choses qu'un système stocke et de leurs rapports : les entités en boîtes, leurs attributs dedans, et des lignes entre elles portant la cardinalité. C'est la façon standard de s'accorder sur un modèle de données avant qu'aucune table n'existe.
Quelle différence entre modèles conceptuel, logique et physique ?
Un modèle conceptuel nomme les entités et les relations et rien d'autre : c'est un vocabulaire partagé. Un modèle logique ajoute attributs, clés et relations plusieurs-à-plusieurs résolues, tout en restant indépendant de toute base. Un modèle physique ajoute les types, les index et ce qu'exige un moteur précis.
Quelle différence entre une clé primaire et une clé étrangère ?
Une clé primaire identifie une ligne de façon unique dans sa propre table. Une clé étrangère est une colonne contenant une valeur de clé primaire d'une autre table, et c'est elle qui met réellement en oeuvre une relation dans une base relationnelle.
En quoi un diagramme ER diffère-t-il d'un diagramme de classes UML ?
Un diagramme ER modélise des données stockées : il n'a pas d'opérations et ses relations se traduisent en clés étrangères. Un diagramme de classes modélise des types dotés de comportement et peut exprimer ce qu'un schéma relationnel ne peut pas, comme les interfaces et le polymorphisme. Les deux décrivent souvent le même domaine sans correspondance élément pour élément.
Quelle notation utiliser pour les diagrammes ER ?
Le pied de corbeau est le standard de fait, et c'est ce que dessine presque tout outil moderne. La notation de Chen, qui met les relations dans des losanges, reste courante dans les manuels. Ce que l'on peut exprimer est pour l'essentiel le même, et le pied de corbeau est plus compact.
Dans cette série
- 01Diagrammes ER
- 02Notation pied de corbeau
- 03Conception de schéma
À lire aussi
Référence de notation
Pratique de la modélisation
Diagrammes de structure
Diagrammes de structure
Diagrammes de structure
Pratique de la modélisation