Symboles du diagramme entité-association
Les diagrammes entité-association utilisent plusieurs familles de symboles. La patte de corbeau (crow’s foot) est celle des outils de base de données. Chen est celle des cours en anglais. UML applique aux données les diagrammes de classes. En France s’ajoute la notation Merise, avec ses cardinalités (0,n). Partout, une table ou une entité est une boîte, et une relation est un trait entre deux boîtes. Ce qui change, c’est la façon d’écrire la cardinalité, c’est-à-dire combien de lignes d’un côté correspondent à une ligne de l’autre. La patte de corbeau la marque aux extrémités du trait. Chaque trait se lit donc deux fois, une fois vers chaque table. Chaque symbole ci-dessous est donné avec sa lecture, dessiné par ErdDocs dans la notation qu’il applique aussi à votre propre schéma, dans l’outil plus bas.
Que signifient les extrémités de la patte de corbeau ?
Avec la patte de corbeau, tout se passe aux extrémités du trait. Chaque extrémité porte jusqu’à deux signes. Le plus proche de la table indique le maximum, l’extérieur le minimum.
| Symbole | Nom | Lecture | Exemple |
|---|---|---|---|
| Exactement un | Barre + barre : au moins un, au plus un – (1,1) en Merise | une commande appartient à exactement un client | |
| Zéro ou un | Cercle + barre : facultatif, au plus un – (0,1) | un client a au plus une carte de fidélité | |
| Un ou plusieurs | Barre + patte : au moins un – (1,n) | une commande a au moins une ligne | |
| Zéro ou plusieurs | Cercle + patte : n’importe quel nombre, même aucun – (0,n) | un client a zéro ou plusieurs commandes |
Lire un trait entier
Un trait de relation se lit deux fois, une fois vers chaque table. L’exemple classique d’une boutique :
Les règles de lecture complètes, y compris le sens des signes quand on ne connaît qu’une partie du schéma, sont sur la page de la notation patte de corbeau. Le choix de la combinaison est une question de cardinalité.
Chen, patte de corbeau, UML et Merise
| Notion | Chen | Patte de corbeau | UML |
|---|---|---|---|
| Entité / table | Rectangle | Boîte avec la liste des colonnes | Boîte de classe |
| Attribut | Ovale relié à l’entité | Une ligne dans la boîte de la table | Un champ dans la boîte de classe |
| Relation | Losange entre les entités | Un trait avec des signes de cardinalité aux deux bouts | Trait d’association |
| Cardinalité | 1, N, M près du losange | Barre, cercle et patte aux extrémités | Multiplicités 1, 0..1, 1..*, * |
| Clé primaire | Attribut souligné | Marque de clé sur la ligne de la colonne | Stéréotype ou propriété |
En Merise, le MCD place les cardinalités (0,1), (1,1), (0,n), (1,n) au bord des associations. Elles se lisent comme les pattes de corbeau, mais côté entité. En pratique, le MCD ou Chen conviennent tant que le modèle n’est qu’une idée. UML convient à côté du code. Dès qu’une base existe, on passe à la patte de corbeau. C’est elle qu’ErdDocs dessine depuis le schéma collé.
Un symbole absent des manuels : le pointillé
Les vrais dumps n’ont souvent pas de clés étrangères. Les applications Rails, Django et Laravel tiennent les relations dans le code, et la base ne déclare rien. Pour ce cas de figure, ErdDocs ajoute son propre symbole. Un trait plein est une relation déclarée par la base. Un pointillé est une relation déduite du nom de colonne, par exemple user_id → users. L’un est une contrainte, l’autre une supposition fondée.
Les symboles sur un vrai schéma
Collez votre SQL dans l’outil ci-dessous. Il repère les clés étrangères et les contraintes d’unicité, puis marque d’après elles le côté « plusieurs » de chaque trait.
Questions fréquentes
Que veulent dire les symboles de la patte de corbeau ?
Chaque extrémité porte jusqu’à deux signes. Le plus proche de la table indique le maximum. Une barre veut dire « au plus un », la patte à trois branches « plusieurs ». Le signe extérieur indique le minimum. Une barre veut dire « au moins un », un cercle « zéro possible ». Cercle + patte se lit donc « zéro ou plusieurs », barre + barre « exactement un ».
Quelle est la correspondance avec les cardinalités Merise ?
Cercle + barre = (0,1), barre + barre = (1,1), cercle + patte = (0,n), barre + patte = (1,n). La différence tient à l’endroit où on les écrit. Merise les note côté entité, sur l’association. La patte de corbeau les dessine au bout du trait, côté table d’arrivée.
Comment représente-t-on une relation plusieurs à plusieurs ?
Par une patte aux deux extrémités. Dans le schéma physique, le plusieurs à plusieurs devient une table d’association, par exemple order_items entre orders et products. Les outils qui dessinent de vraies bases montrent donc deux relations un à plusieurs qui se rejoignent sur cette table.
Pourquoi les outils de base de données ne dessinent-ils pas les losanges et les ovales de Chen ?
Parce que dans une base physique, ce que Chen dessine à part se ramène à des tables et à des colonnes. Un ovale d’attribut est une ligne dans la boîte de la table. Un losange de relation est soit une colonne de clé étrangère, soit une table d’association. Les dessiner comme des formes séparées doublerait la taille du diagramme sans rien montrer de plus. C’est aussi pourquoi ErdDocs montre le MLD et non le MCD.
Pages liées
- Diagramme entité-association : entités, relations, et le moment où un modèle conceptuel devient des tables.
- Notation patte de corbeau : les règles de lecture, avec des exemples détaillés.
- Cardinalités du diagramme entité-association : comment une vraie base détermine les signes que reçoit un trait.
- Exemples de diagrammes : quatorze schémas complets, chacun avec son diagramme et son dictionnaire.