Dans la séquence précédente, tu as appris à identifier les entités d'un système et à les représenter sous forme de boîtes. Tu as aussi tracé des traits pour indiquer quelles entités sont liées. Mais ces traits ne disaient pas grand-chose : ils montraient qu'un lien existe, sans préciser sa nature ni son étendue. C'est exactement ce que cette séquence va creuser. On va donner un nom à ces liens, les représenter correctement, et surtout répondre à une question essentielle : dans ce lien, combien d'éléments peuvent être concernés de chaque côté ?
À la fin de cette séquence, tu seras capable de :
Dans la séquence 2, on avait ce schéma :
┌──────────────────┐ ┌──────────────────┐
│ CLIENT │ │ ÉVÉNEMENT │
└────────┬─────────┘ └────────┬─────────┘
│ │
└──────────────┬─────────────────┘
│
┌────┴─────────────┐
│ TICKET │
└──────────────────┘
Les traits disaient juste : ces entités ont un lien. Mais quel lien, exactement ? Que se passe-t-il concrètement entre un client et un ticket ? Entre un événement et un ticket ?
La réponse, c'est la relation — ou plus précisément, l'association en Mérise.
Une relation, c'est le verbe qui unit deux entités. Elle décrit ce qui se passe entre elles dans la réalité du système :
Ce n'est pas anodin : nommer la relation oblige à comprendre ce que le système fait vraiment.
Mérise est une méthode de modélisation de bases de données développée en France dans les années 80. Elle est encore très utilisée dans l'enseignement et dans de nombreuses entreprises. Elle propose une façon standardisée de dessiner des modèles de données, avec des symboles précis.
Le schéma qu'on produit en Mérise s'appelle le MCD : Modèle Conceptuel de Données.
En Mérise, trois éléments ont chacun leur forme :
| Élément | Forme | Rôle |
|---|---|---|
| Entité | Rectangle | Un objet du système |
| Relation | Losange (ou hexagone) | Le lien entre deux entités |
| Attribut | Ellipse ou texte listé | Une information d'une entité |
En appliquant ces conventions à notre système de billetterie, on obtient :
┌──────────────────┐ ┌─────────────┐ ┌──────────────────┐
│ CLIENT │ │ achète │ │ TICKET │
│──────────────────│───────│ ◇ │───────│──────────────────│
│ nom │ └─────────────┘ │ prix │
│ prénom │ │ statut │
│ email │ │ date_achat │
│ téléphone │ └────────┬─────────┘
└──────────────────┘ │
┌────────┴─────────┐
│ concerne │
│ ◇ │
└────────┬─────────┘
│
┌─────────────┴────────┐
│ ÉVÉNEMENT │
│──────────────────────│
│ titre │
│ date │
│ lieu │
│ prix_base │
└──────────────────────┘
Le losange ◇ représente la relation. Il porte un verbe qui décrit le lien. C'est ce verbe qui donne du sens au trait.
💡 Choisir un bon verbe n'est pas un détail : "achète", "réserve", "possède" ne décrivent pas la même chose. Avant de nommer une relation, demande-toi ce qui se passe réellement dans le système.
On sait maintenant qu'un client achète un ticket, et qu'un ticket concerne un événement. Mais ces liens ne disent encore pas tout. Dans la réalité du système :
Les réponses à ces questions s'appellent les cardinalités. Une cardinalité indique, pour chaque entité participant à une relation, combien d'occurrences peuvent être impliquées.
On écrit la cardinalité sous la forme minimum, maximum de chaque côté du losange.
Les valeurs utilisées sont :
0 : aucune occurrence n'est obligatoire1 : exactement une occurrencen : plusieurs occurrences possibles (sans limite fixée)Les paires les plus courantes :
| Notation | Signification |
|---|---|
1,1 |
Exactement un — ni plus, ni moins |
0,1 |
Zéro ou un — facultatif mais pas multiple |
1,n |
Au moins un, potentiellement plusieurs |
0,n |
Zéro ou plusieurs — aucune contrainte |
La cardinalité se lit du côté de l'entité vers la relation, en se posant la question :
Pour une occurrence de cette entité, combien d'occurrences de la relation peut-elle avoir ?
Exemple avec CLIENT — achète — TICKET :
CLIENT : un client peut acheter zéro ou plusieurs tickets → 0,nTICKET : un ticket est acheté par exactement un client → 1,1┌──────────────────┐ 0,n ┌─────────────┐ 1,1 ┌──────────────────┐
│ CLIENT │───────│ achète │───────│ TICKET │
│──────────────────│ │ ◇ │ │──────────────────│
│ nom │ └─────────────┘ │ prix │
│ prénom │ │ statut │
│ email │ │ date_achat │
│ téléphone │ └────────┬─────────┘
└──────────────────┘ 1,1│
┌────────┴─────────┐
│ concerne │
│ ◇ │
└────────┬─────────┘
0,n│
┌─────────────┴────────┐
│ ÉVÉNEMENT │
│──────────────────────│
│ titre │
│ date │
│ lieu │
│ prix_base │
└──────────────────────┘
En observant le schéma ci-dessus, réponds aux questions suivantes :
Pour construire un MCD, on suit toujours le même ordre :
Avant de dessiner quoi que ce soit, réponds d'abord à ces questions pour le système de billetterie :
Entités :
Relations :
CLIENT et TICKET ?TICKET et ÉVÉNEMENT ?Cardinalités :
Complète le tableau :
| Relation | Côté gauche | Cardinalité gauche | Cardinalité droite | Côté droit |
|---|---|---|---|---|
| achète | CLIENT | … | … | TICKET |
| concerne | TICKET | … | … | ÉVÉNEMENT |
À partir de tes réponses à l'exercice 2, dessine le MCD complet sur papier.
Tu dois faire apparaître :
Reprends le système que tu avais choisi en séquence 2 (garage, centre de formation ou serveur Discord) et construis son MCD complet.
Étapes :
⚠️ Avant de dessiner, remplis toujours le tableau d'analyse (comme dans l'exercice 2). Un MCD dessiné sans réflexion préalable contient presque toujours des erreurs de cardinalité.
Une relation est le lien nommé entre deux entités. En Mérise, elle est représentée par un losange portant un verbe.
Les cardinalités expriment le "combien" de chaque côté d'une relation. On les note sous la forme minimum,maximum.
| Paire | Sens |
|---|---|
1,1 |
Exactement un |
0,1 |
Zéro ou un |
1,n |
Au moins un |
0,n |
Zéro ou plusieurs |
La règle pour lire une cardinalité : on se place du côté de l'entité, et on se demande combien d'occurrences de la relation cette entité peut avoir.
Dans la prochaine séquence, tu apprendras à transformer ce MCD en modèle logique : les entités deviennent des tables, les relations se traduisent en colonnes spéciales appelées clés étrangères, et les cardinalités dictent comment ces colonnes s'organisent.