1-X75-LDB

Session 7 — Du MCD au MLD puis du MLD au MPD

Version corrigée — Sans tables associatives au MCD et en snake_case uniquement


1. Introduction

Un bon modèle de données se construit en trois étapes :

  1. MCD (Modèle Conceptuel des Données) → On ne parle que d’idées, d’entités et de relations. Pas de tables. Pas de clés.

  2. MLD (Modèle Logique des Données) → On transforme les relations en tables, on ajoute les clés étrangères, on crée les tables d’association.

  3. MPD (Modèle Physique des Données) → On prépare la version finale adaptée au SGBD (MySQL/MariaDB).

Chaque étape traduit la précédente, sans en sauter une.


2. Étape 1 — Construire le MCD (Conceptuel)

Le MCD décrit le sens du système, sans logique SQL.

2.1 Les entités du projet

Les objets principaux manipulés par le système sont :

Important : aucune table d’association n’apparaît ici. Elles n’existent pas encore.


2.2 Les relations (exprimées conceptuellement)

Relations obligatoires

Relations facultatives

Relations multiples (N,N) — conceptuelles :

Dans le MCD, on ne crée pas les tables d’association. On se contente de dire que la relation est N,N.


graph TD
    OPERATOR["OPERATOR"]
    ITEM["ITEM"]
    TAG["Tag"]
    CATEGORY["Category"]
    THEME["Theme"]
    COLLECTION["COLLECTION"]
    MESSAGE["MESSAGE"]

    POSSEDER(("POSSEDER"))
    ASSIGNER(("ASSIGNER"))
    TAGUER(("TAGUER"))
    CONTENIR(("CONTENIR"))
    CATEGORISER(("CATÉGORISER"))
    THEMATISER(("THÉMATISER"))

    OPERATOR -->|"0,N"| POSSEDER
    POSSEDER -->|"1,1"| COLLECTION

    OPERATOR -->|"0,N"| ASSIGNER
    ASSIGNER -->|"0,1"| MESSAGE

    ITEM     -->|"0,N"| TAGUER
    TAGUER   -->|"0,N"| TAG

    COLLECTION -->|"0,N"| CONTENIR
    CONTENIR   -->|"0,N"| ITEM

    ITEM -->|"1,1"| CATEGORISER
    CATEGORISER -->|"0,N"| CATEGORY

    ITEM -->|"1,1"| THEMATISER
    THEMATISER -->|"0,N"| THEME

3. Étape 2 — MCD → MLD

Le MLD est la traduction logique du MCD.

3.1 Règles essentielles

  1. Entité → Table
  2. Relation 1,N → clé étrangère du côté N
  3. Relation N,N → table d’association (c’est ici qu’apparaissent item_tag et collection_item)
  4. Les noms sont en snake_case

3.2 Application au projet

3.2.1 Tables issues des entités du MCD

3.2.2 Clés étrangères issues des relations 1,N

Relation MCD Transformation MLD
item → theme item.theme_id
item → category item.category_id
item → operator (créateur) item.created_by
message → operator message.operator_id (facultatif)
collection → operator collection.operator_id

3.2.3 Relations N,N → tables d’association

Elles apparaissent uniquement au MLD, jamais au MCD.

Relation MCD Table d’association (MLD)
item ↔ tag item_tag
collection ↔ item collection_item

Chaque table d’association contient deux clés étrangères et interdit les doublons.


4. Étape 3 — MLD → MPD

Le MPD est la version exploitable par MySQL/MariaDB. On y ajoute :

Voici une version textuelle, simple et pédagogique, sans SQL précis.


4.1 Tables principales

🔹 operator


🔹 theme

🔹 category

🔹 tag


🔹 item


🔹 item_tag (table d’association)


🔹 collection


🔹 collection_item


🔹 message


5. Synthèse pédagogique

Niveau Ce qu’on y met Ce qu’on ne met pas
MCD les entités, les relations ❌ clés étrangères ❌ types ❌ tables d’association
MLD les tables, les clés étrangères, les tables d’association ❌ SQL spécifique
MPD la version finale adaptée au SGBD

6. Conclusion pour les étudiants

Comprendre ces étapes, c’est la base d’un bon développeur backend.