Chapitre 113 minIntermédiaire
C'est quoi la méthode Merise ? MCD, MLD et MPD
Par Josselyn C., prof de BTS SIO. Mis à jour le .
À la fin de ce chapitre, tu sauras
- expliquer à quoi sert une modélisation avant de coder ;
- distinguer le MCD, le MLD et le MPD ;
- situer le MCT et le MOT parmi les modèles de Merise ;
- dire où la modélisation tombe aux épreuves du BTS SIO.
3 exercices corrigés1 schéma
Merise est une méthode française d'analyse et de conception des systèmes d'information, née à la fin des années 1970. Elle décrit séparément les données et les traitements, et chacun à plusieurs niveaux : du plus abstrait, le MCD (modèle conceptuel de données), au plus concret, le MPD (modèle physique de données), c'est-à-dire le script SQL. Ce chapitre explique à quoi elle sert, comment s'articulent ses modèles et la démarche que suit ce cours.
Pourquoi modéliser avant de coder
Une médiathèque gère ses prêts dans un tableur. Une ligne par prêt : le nom de l'adhérent, son téléphone, le titre du document, son auteur, la date du prêt. Au bout d'un an, le fichier compte 30 000 lignes et les ennuis s'accumulent.
- Redondance. Le téléphone d'un adhérent est recopié sur chacun de ses prêts : 140 fois pour un gros lecteur.
- Incohérence. L'adhérent change de numéro ; quelqu'un corrige trois lignes et oublie les autres. Laquelle croire ?
- Doublons invisibles. « Hugo », « V. Hugo » et « Victor Hugo » deviennent trois auteurs différents : impossible de compter les prêts de ses livres.
- Informations impossibles à saisir. Un adhérent qui vient de s'inscrire n'a encore rien emprunté : pas de ligne de prêt, donc nulle part où noter son adresse.
- Pertes. Supprimer le dernier prêt d'un document efface la seule trace de son auteur.
Ces problèmes ne viennent pas du tableur mais de l'absence de conception. Une base de données mal pensée les reproduit à l'identique. Modéliser, c'est décider avant de coder quelles informations on garde, où on range chacune et comment elles se relient. C'est le rôle d'un architecte qui dessine le plan avant de couler les fondations : corriger un plan coûte un coup de gomme, corriger une base déjà remplie et le code qui l'utilise coûte des jours.
Le modèle sert aussi à communiquer. Un MCD se lit en français (« un adhérent emprunte des exemplaires ; un exemplaire appartient à un seul site ») : tu peux le montrer au responsable des médiathèques, qui ne connaît rien au SQL, et lui demander si c'est juste. C'est le moment le moins cher pour découvrir une erreur.
D'où vient Merise
Merise est issue de travaux menés dans les années 1970 par une équipe d'ingénieurs et de chercheurs d'Aix-en-Provence, parmi lesquels Hubert Tardieu, Arnold Rochfeld et René Colletti. Elle a été diffusée au début des années 1980, à la demande du ministère de l'Industrie, pour harmoniser la conception des systèmes d'information dans les grands projets publics et privés. L'ouvrage de référence, La méthode Merise, paraît en 1983. Le nom renvoie au merisier, un cerisier sauvage qui ne donne de bons fruits qu'une fois greffé : la méthode se « greffe » sur l'organisation qu'elle informatise.
Merise s'appuie sur le modèle relationnel d'Edgar F. Codd (1970) et sur le modèle entité-association de Peter Chen (1976). Une version enrichie, Merise/2, a ajouté dans les années 1990 l'héritage, les contraintes entre associations et l'historisation, que tu verras au chapitre 7.
La méthode a été pensée pour de gros projets menés sur des mois. Ce qui en reste aujourd'hui, partout en France, c'est sa partie données : le MCD et ses règles de passage aux tables. Elle est enseignée en BTS SIO, en BUT informatique et en licence, et utilisée en entreprise et dans les administrations pour concevoir des bases relationnelles. Pour le reste (les traitements, l'organisation du projet), UML et les méthodes agiles ont pris le relais.
Les trois niveaux : conceptuel, logique, physique
Merise découpe la conception en niveaux. Chacun répond à une question et ajoute des décisions techniques au précédent.
| Niveau | Question | Modèle des données | Ce qu'il contient | Qui le lit |
|---|---|---|---|---|
| Conceptuel | Quelles données, quelles règles ? | MCD, modèle conceptuel de données | Entités, associations, cardinalités | Les utilisateurs, le chef de projet |
| Logique | Comment les ranger dans des tables ? | MLD, modèle logique de données (ou schéma relationnel) | Tables, clés primaires, clés étrangères | Le concepteur, le développeur |
| Physique | Comment les créer dans tel SGBD ? | MPD, modèle physique de données | Script SQL : types, contraintes, index | Le développeur, l'administrateur, le SGBD |
Le MCD est indépendant de toute technique : il serait le même si la base était stockée dans MySQL, PostgreSQL ou dans des fiches cartonnées. Le MLD suppose une base relationnelle (des tables), sans dire laquelle. Le MPD est écrit pour un SGBD précis : MySQL 8.4 dans ce cours.
Prends la règle « un exemplaire est rattaché à un seul site ; un site possède zéro, un ou plusieurs exemplaires ». Au niveau conceptuel, c'est une association entre deux entités, avec ses cardinalités. Au niveau logique, la table exemplaire reçoit une clé étrangère code_site. Au niveau physique, cette colonne prend un type, la contrainte NOT NULL (un exemplaire a toujours un site) et une contrainte FOREIGN KEY. Une seule décision de conception, trois façons de l'écrire.
Données et traitements : MCT et MOT
Merise modélise aussi ce que fait le système, avec des modèles de traitements qui vont par paire avec les modèles de données.
- Le MCT (modèle conceptuel des traitements) décrit les opérations déclenchées par des événements, sans dire qui les fait ni comment. « Demande de prêt reçue » (événement) déclenche « Enregistrer le prêt » (opération), qui produit « Prêt accordé » ou « Prêt refusé » (résultats) selon une règle d'émission (l'adhérent a-t-il moins de dix documents ?). Quand une opération attend plusieurs événements, une synchronisation (ET, OU) les combine.
- Le MOT (modèle organisationnel des traitements) précise qui fait quoi, où et quand : au guichet ou en ligne, par un bibliothécaire ou par l'adhérent sur une borne, en temps réel ou en traitement de nuit.
Ces modèles sont aujourd'hui peu utilisés : pour décrire les traitements, on préfère le diagramme de cas d'utilisation, le diagramme d'activité ou le diagramme de séquence d'UML (cours UML), ou la notation BPMN. Ils ne tombent pas à l'examen du BTS SIO. Retiens leur nom et leur idée ; ce cours se concentre sur les données.
Merise, entité-association et UML
Tu croiseras trois façons de dessiner des données. Ce sont des cousines.
| Notation | Origine | Où tu la vois |
|---|---|---|
| MCD de Merise | France, années 1980 | Cours et sujets français, logiciels Looping et Mocodo |
| Modèle entité-association (Entity-Relationship), notation « pattes de corbeau » | Chen (1976), puis variantes anglo-saxonnes | MySQL Workbench, DBeaver, documentation en anglais |
| Diagramme de classes UML | Norme de l'OMG, 1997 | Programmation objet, sujets d'E7 pour les questions de code |
Le MCD est une variante du modèle entité-association. Le diagramme de classes UML décrit des classes de programme plutôt que des données à stocker, mais il s'en traduit presque terme à terme : le chapitre 12 détaille les correspondances, et le piège des cardinalités inversées.
La démarche de ce cours
Ce cours suit l'ordre d'un vrai projet de base de données. Chaque étape produit un document qui sert à la suivante.
| Étape | Ce que tu produis | Chapitre |
|---|---|---|
| 1. Recueillir le besoin | Les règles de gestion, numérotées | 2 |
| 2. Inventorier les données | Le dictionnaire des données | 2 |
| 3. Relier les données | Les dépendances fonctionnelles | 3 |
| 4. Concevoir | Le MCD | 4 à 7 |
| 5. Traduire en tables | Le MLD | 8 |
| 6. Créer la base | Le script SQL (MPD) | 9 |
| 7. Vérifier | Les tables en troisième forme normale | 10 |
Dans la pratique, on fait des allers-retours : le MCD révèle une règle oubliée, on retourne voir l'utilisateur, on corrige le dictionnaire. C'est normal. Ce qui ne l'est pas, c'est de commencer par écrire des CREATE TABLE.
Merise au BTS SIO
Le référentiel du BTS SIO place la modélisation des données dans le bloc 2 de l'option SLAM. Deux compétences la mobilisent directement : « Modéliser une solution applicative », dont les indicateurs portent sur une modélisation conforme au besoin, et « Concevoir ou adapter une base de données », qui attend des données modélisées selon le besoin. Le détail des compétences et de leurs preuves est dans le cours Épreuve E6 SLAM.
| Épreuve | Ce qu'on te demande | Pour t'y préparer |
|---|---|---|
| E6 SLAM, oral (bloc 2) | Présenter le MCD ou le MLD de tes réalisations, puis faire évoluer ta base en une heure : ajouter une table, une association, une contrainte | Chapitres 8, 9 et 13 |
| E7 SLAM, écrit de 4 heures (bloc 3) | Lire un schéma relationnel fourni, écrire les requêtes qui vont avec, et faire évoluer le schéma « dans le formalisme de votre choix » | Chapitres 5, 7, 8 et 13 |
L'option SISR ne fait pas concevoir de base, mais un administrateur lit des schémas de données : la base d'un outil comme GLPI, celle d'une application à sauvegarder ou à migrer. Les chapitres 1, 4, 5 et 8 suffisent pour cela.
Le fil rouge : le réseau de médiathèques Rivelire
Rivelire est le réseau de lecture publique d'une communauté de communes fictive. Il compte quatre médiathèques, qu'on appellera des sites, et environ 6 000 adhérents. Ses bibliothécaires prêtent des livres, des films et des jeux vidéo. Aujourd'hui, tout est suivi dans des tableurs et sur des fiches papier, avec les problèmes décrits au début de ce chapitre.
Le réseau confie à ton équipe la conception de sa nouvelle base de données. Au fil des chapitres 2 à 9, tu vas recueillir ses règles de gestion, dresser son dictionnaire des données, construire son MCD, le traduire en MLD et écrire le script MySQL qui crée la base. Les autres chapitres utilisent aussi d'autres cas, pour que tu voies chaque notion dans plusieurs contextes.
Exercices
Exercice 1 sur 3 Quel niveau ? Réussi À revoir
Pour chaque phrase, dis si elle relève du niveau conceptuel (MCD), logique (MLD) ou physique (MPD).
- « La colonne
emailest de typeVARCHAR(100). » - « Un adhérent peut réserver plusieurs documents. »
- « La table
empruntcontient la clé étrangèrenum_adherent. » - « La table
exemplaireutilise le moteur InnoDB. » - « Un document appartient à un seul genre. »
- « La table
contribuera une clé primaire composée de deux colonnes. » - « Un index accélère la recherche par titre. »
Voir la réponseMasquer la réponse de l'exercice 1
- Physique : un type de données est propre à un SGBD.
- Conceptuel : c'est une règle de gestion, exprimée en français, qui deviendra une association et ses cardinalités.
- Logique : on parle de tables et de clés, mais pas encore de SGBD.
- Physique : le moteur de stockage est un choix propre à MySQL.
- Conceptuel : encore une règle de gestion, qui deviendra une cardinalité 1,1 du côté du document.
- Logique : une clé primaire composée est une notion du modèle relationnel.
- Physique : un index est un choix de performance, il ne change pas le sens des données.
Tu avais trouvé ?
Exercice 2 sur 3 Les défauts d'un tableur Réussi À revoir
Un club de tennis suit ses réservations de courts dans ce tableau :
| Date | Heure | Court | Surface du court | Membre | Téléphone du membre |
|---|---|---|---|---|---|
| 03/11 | 18 h | 2 | Terre battue | Léa Martin | 06 12 34 56 78 |
| 03/11 | 19 h | 1 | Résine | Léa Martin | 06 12 34 56 78 |
| 04/11 | 18 h | 2 | Terre battue | Hugo Petit | 06 98 76 54 32 |
- Que faut-il faire si le court 2 est refait en résine ?
- Comment enregistrer un nouveau membre qui n'a encore rien réservé ?
- Que perd-on en supprimant la réservation de Hugo Petit ?
- Quelles « choses » mériteraient d'être décrites séparément ?
Voir la réponseMasquer la réponse de l'exercice 2
- Modifier toutes les lignes du court 2. Une ligne oubliée, et le court a deux surfaces : c'est une anomalie de mise à jour.
- On ne peut pas, sauf à créer une fausse réservation : c'est une anomalie d'insertion.
- Le seul endroit où figure le téléphone de Hugo Petit : c'est une anomalie de suppression.
- Les membres (nom, téléphone), les courts (numéro, surface) et les réservations (date, heure), qui relient un membre à un court. Ce seront les entités du MCD. Le chapitre 10 donne la méthode pour traiter ce genre de tableau.
Tu avais trouvé ?
Exercice 3 sur 3 Événements et opérations Réussi À revoir
Voici le fonctionnement d'une réservation à Rivelire, raconté par une bibliothécaire : « Quand un adhérent demande un document qui est déjà prêté, on vérifie qu'il n'a pas déjà cinq réservations en cours. Si c'est le cas, on refuse ; sinon, on enregistre la réservation. Quand le document revient, on prévient l'adhérent qu'il peut venir le chercher. »
Dans le vocabulaire du MCT, retrouve deux événements déclencheurs, deux opérations et trois résultats.
Voir la réponseMasquer la réponse de l'exercice 3
- Événements déclencheurs : « demande de réservation reçue » et « document rendu ».
- Opérations : « enregistrer la réservation » (avec la règle d'émission « moins de cinq réservations en cours ») et « traiter le retour » (qui prévient l'adhérent).
- Résultats : « réservation enregistrée », « réservation refusée » et « adhérent prévenu ».
Le MCT décrit ce qui se passe, pas qui le fait : savoir si l'adhérent est prévenu par un SMS automatique ou par un appel du bibliothécaire relève du MOT. Aujourd'hui, ce scénario se décrirait plutôt avec un diagramme d'activité UML.
Tu avais trouvé ?