Les relations

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é ?

    4ttr
  • niveau

Les relations

Objectifs

À la fin de cette séquence, tu seras capable de :

  1. Définir ce qu'est une relation dans un modèle de données
  2. Représenter une relation par une ligne reliant deux entités
  3. Lire et écrire des cardinalités
  4. Construire un schéma entité-association complet

Partie 1 — Qu'est-ce qu'une relation ?

De l'observation à la formalisation

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.

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 :

  • Un client achète un ticket.
  • Un ticket concerne un événement.

Ce n'est pas anodin : nommer la relation oblige à comprendre ce que le système fait vraiment.


Partie 2 — La notation

Le schéma entité-association

Pour modéliser une base de données, on dessine un schéma entité-association : les entités, les liens entre elles, et — on le verra plus loin — les cardinalités. Le schéma qu'on produit s'appelle le MCD : Modèle Conceptuel de Données.

La représentation est volontairement simple :

Élément Forme Rôle
Entité Rectangle Un objet du système
Relation Une ligne entre deux entités, étiquetée par un verbe Le lien entre deux entités
Attribut Texte listé dans le rectangle Une information d'une entité

Le schéma avec les relations nommées

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            │
                                       └──────────────────────┘

Chaque relation est une simple ligne reliant deux entités, portant 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.


Partie 3 — Les cardinalités

Le problème du "combien"

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 :

  • Un client peut-il acheter plusieurs tickets, ou un seul ?
  • Un ticket peut-il être acheté par plusieurs clients, ou un seul ?
  • Un événement peut-il avoir plusieurs tickets, ou un seul ?

Les réponses à ces questions s'appellent les cardinalités. Une cardinalité indique combien d'occurrences d'une entité peuvent être impliquées dans la relation.

La notation

On écrit la cardinalité sous la forme minimum, maximum de chaque côté de la ligne.

Les valeurs utilisées sont :

  • 0 : aucune occurrence n'est obligatoire
  • 1 : exactement une occurrence
  • n : 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

Comment lire une cardinalité

La cardinalité se lit du côté opposé : le nombre écrit à côté d'une entité indique combien d'occurrences de cette entité correspondent à une seule occurrence de l'entité d'en face.

🧠 L'image de la corde

Imagine que tu attrapes une occurrence d'une entité et que tu tires sur la corde : combien d'occurrences de l'autre entité viennent avec ? Ce nombre s'écrit du côté de l'autre entité.

Exemple avec CLIENT — achète — TICKET :

  • Côté CLIENT, on écrit 1,1 : pour un ticket, il y a exactement un client.
  • Côté TICKET, on écrit 0,n : pour un client, il y a zéro ou plusieurs tickets.

Le schéma avec les cardinalités

┌──────────────────┐ 1,1              0,n ┌──────────────────┐
│     CLIENT       │──────── achète ──────│      TICKET      │
│──────────────────│                      │──────────────────│
│ nom              │                      │ prix             │
│ prénom           │                      │ statut           │
│ email            │                      │ date_achat       │
│ téléphone        │                      └─────────┬────────┘
└──────────────────┘                            0,n │
                                              concerne
                                                1,1 │
                                       ┌────────────┴─────────┐
                                       │      ÉVÉNEMENT       │
                                       │──────────────────────│
                                       │ titre                │
                                       │ date                 │
                                       │ lieu                 │
                                       │ prix_base            │
                                       └──────────────────────┘

💡 Lis la billetterie à voix haute : « 1,1 côté CLIENT → un ticket appartient à un seul client ; 0,n côté TICKET → un client peut avoir zéro ou plusieurs tickets. » Les nombres sont toujours du côté de l'entité que l'on compte.

Exercice 1 — Lire les cardinalités

En observant le schéma ci-dessus, réponds aux questions suivantes :

  1. Un client peut-il n'avoir acheté aucun ticket ? Justifie.
  2. Un ticket peut-il avoir été acheté par deux clients différents ? Justifie.
  3. Un événement peut-il n'avoir aucun ticket associé ? Justifie.
  4. Un ticket peut-il concerner deux événements différents ? Justifie.

Partie 4 — Construire un MCD complet

Démarche

Pour construire un MCD, on suit toujours le même ordre :

  1. Identifier les entités — quels sont les objets du système ?
  2. Lister les attributs de chaque entité
  3. Repérer les relations — quels verbes lient les entités ?
  4. Fixer les cardinalités — en se posant la question "combien ?" pour chaque côté

Exercice 2 — Analyser avant de dessiner

Avant de dessiner quoi que ce soit, réponds d'abord à ces questions pour le système de billetterie :

Entités :

  • Quels sont les trois objets principaux ? (tu les connais déjà)

Relations :

  • Quel verbe décrit le lien entre CLIENT et TICKET ?
  • Quel verbe décrit le lien entre 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

Exercice 3 — Dessiner le MCD

À partir de tes réponses à l'exercice 2, dessine le MCD complet sur papier.

Tu dois faire apparaître :

  • Les trois entités avec leurs attributs
  • Les deux relations avec leur verbe écrit sur la ligne
  • Les cardinalités de chaque côté de chaque relation

Partie 5 — Application

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 :

  1. Reprends tes trois entités et leurs attributs
  2. Nomme les relations qui les lient (un verbe pour chaque)
  3. Détermine les cardinalités en te posant la question "combien ?" pour chaque côté
  4. Dessine le MCD final

⚠️ 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é.


À retenir

Une relation est le lien nommé entre deux entités. On la représente par une ligne reliant les deux entités, étiquetée par 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 la lit du côté opposé. Le nombre écrit à côté d'une entité dit, pour une occurrence de l'entité d'en face, combien de fois cette entité-ci intervient.


Suite

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.

Pour aller plus loin