Le passage du MCD au MLD concentre une part significative des erreurs en modélisation de données avec la méthode Merise. Ces erreurs ne sont pas aléatoires : elles suivent des schémas récurrents, liés à des confusions conceptuelles précises. Identifier ces schémas permet de corriger le tir avant l’examen ou la remise de projet.
MCD et MLD : deux logiques de représentation différentes
Le modèle conceptuel de données (MCD) décrit la réalité métier de façon abstraite : des entités, des associations nommées, des cardinalités. Il ne tient compte d’aucune contrainte technique liée à un système de gestion de base de données.
Le modèle logique de données (MLD) traduit ce schéma en tables relationnelles, avec des clés primaires et des clés étrangères. C’est à cette étape que les choix de conception deviennent concrets et vérifiables.
La confusion entre ces deux niveaux d’abstraction est la première source d’erreurs. Un étudiant qui anticipe la structure SQL dès le MCD brûle une étape et produit un modèle conceptuel pollué par des détails d’implémentation. À l’inverse, un MLD qui conserve des associations non résolues n’est pas exploitable.
Tableau comparatif des erreurs de modélisation les plus fréquentes
| Type d’erreur | Niveau concerné | Conséquence | Correction à appliquer |
|---|---|---|---|
| Cardinalité mal déduite | MCD | Règle de passage incorrecte, table de liaison inutile ou manquante | Vérifier avec des cas limites : valeur minimale à 0 ou 1 ? |
| Association non résolue en MLD | MLD | Schéma relationnel invalide, association laissée en l’état | Appliquer la règle de passage selon la cardinalité max |
| Clé étrangère mal placée | MLD | Relation inversée, intégrité référentielle compromise | La clé étrangère va du côté « plusieurs » vers le côté « un » |
| Attribut dans la mauvaise entité | MCD | Redondance ou dépendance partielle dans la table résultante | Vérifier que l’attribut dépend bien de l’identifiant de l’entité |
| Association porteuse d’attributs oubliée | MCD → MLD | Attribut perdu lors du passage, données non stockées | Créer une table de liaison avec l’attribut porté |
| Confusion MLD et MPD | MLD | Types SQL, index et contraintes SGBD intégrés trop tôt | Réserver ces choix au modèle physique de données |
Ce tableau couvre les erreurs les plus fréquentes observées dans les exercices de modélisation Merise. Chacune mérite une analyse séparée.

Cardinalités et règles de passage : les pièges concrets
Déduire une cardinalité sans vérifier les cas limites
La cardinalité minimale est souvent négligée. Pourtant, la différence entre (0,1) et (1,1) change la sémantique du modèle. Un client peut exister sans avoir passé de commande : la cardinalité minimale est 0. Forcer un minimum à 1 introduit une contrainte métier que le système devra ensuite gérer différemment.
La bonne méthode consiste à tester systématiquement deux questions : est-ce qu’une occurrence de cette entité peut exister sans participer à l’association ? Est-ce qu’elle peut participer plusieurs fois ? Les réponses donnent directement les bornes min et max.
La règle de passage selon la cardinalité maximale
La transformation en MLD obéit à des règles déterministes selon la cardinalité maximale de chaque côté de l’association :
- Association de type 1:n (un côté a une cardinalité max de 1, l’autre de n) : la clé primaire de l’entité côté « 1 » migre comme clé étrangère dans la table côté « n ». Aucune table de liaison n’est créée.
- Association de type n:n (les deux côtés ont une cardinalité max de n) : une table de liaison est créée, avec les clés primaires des deux entités comme clé primaire composée. Les attributs portés par l’association rejoignent cette table.
- Association de type 1:1 : la clé étrangère peut migrer dans l’une ou l’autre table, selon la sémantique métier et la présence de valeurs nulles à éviter.
Une erreur fréquente consiste à créer une table de liaison pour une association 1:n. C’est redondant et génère des jointures inutiles dans les requêtes SQL ultérieures.
Attributs et dépendances fonctionnelles mal analysés
Placer un attribut dans la mauvaise entité
Un attribut doit dépendre fonctionnellement de l’identifiant de l’entité dans laquelle il se trouve. Si un attribut dépend en réalité d’un identifiant d’une autre entité, il est mal placé. Ce type d’erreur produit des redondances dans les tables résultantes, exactement ce que la normalisation cherche à éviter.
Dans une association n:n avec une clé composée, un attribut qui ne dépend que d’une partie de la clé signale un problème de conception. Il appartient à l’entité correspondante, pas à la table de liaison.
Les attributs portés par une association
Une association peut porter ses propres attributs, notamment dans le cas n:n. Ces attributs décrivent la relation elle-même, pas l’une ou l’autre des entités. Lors du passage au MLD, ils rejoignent la table de liaison. Les omettre revient à perdre de l’information sans aucun signal d’erreur visible dans la structure des tables.
Exemple courant : une association entre ETUDIANT et COURS peut porter la note obtenue. Cette note n’appartient ni à l’étudiant seul, ni au cours seul – elle caractérise la participation d’un étudiant à un cours précis.
Frontière entre MLD et modèle physique de données
Le MLD décrit les relations, les identifiants et les liens entre tables. Il ne contient pas de types SQL, d’index ou de contraintes propres à un SGBD particulier. Ces choix appartiennent au modèle physique de données (MPD), qui vient après.
Introduire des types de données (VARCHAR, INT, DATE) dans un MLD est une erreur de niveau : le modèle logique reste indépendant du système cible. Cette confusion est fréquente chez les étudiants qui travaillent directement sous MySQL ou PostgreSQL et remontent à la modélisation a posteriori.
Un MLD bien construit peut être implémenté dans n’importe quel SGBD relationnel sans modification conceptuelle. C’est précisément l’intérêt de distinguer les deux niveaux.
Méthode de relecture avant de rendre un schéma MCD ou MLD
Une relecture structurée réduit les erreurs résiduelles. Avant de valider un schéma, quelques vérifications concrètes :
- Chaque entité possède-t-elle un identifiant clairement désigné, distinct de ses attributs descriptifs ?
- Chaque association a-t-elle une cardinalité min et max renseignée des deux côtés ?
- La règle de passage a-t-elle été appliquée correctement pour chaque type d’association (1:1, 1:n, n:n) ?
- Les attributs portés par les associations n:n figurent-ils dans la table de liaison, pas dans une table d’entité ?
- Le MLD ne contient-il aucun type SQL ni contrainte propre au SGBD ?
La modélisation Merise n’est pas un exercice de créativité : les règles de passage sont déterministes et produisent un résultat attendu. Les erreurs persistantes viennent presque toujours d’une cardinalité mal lue ou d’un attribut mal rattaché, pas d’une méconnaissance globale de la méthode. Travailler sur ces deux points en priorité suffit à sécuriser la majorité des exercices.

