Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

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.

NiveauQuestionModèle des donnéesCe qu'il contientQui le lit
ConceptuelQuelles données, quelles règles ?MCD, modèle conceptuel de donnéesEntités, associations, cardinalitésLes utilisateurs, le chef de projet
LogiqueComment les ranger dans des tables ?MLD, modèle logique de données (ou schéma relationnel)Tables, clés primaires, clés étrangèresLe concepteur, le développeur
PhysiqueComment les créer dans tel SGBD ?MPD, modèle physique de donnéesScript SQL : types, contraintes, indexLe 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.

MCD (conceptuel)MLD (logique)MPD (physique)EXEMPLAIREcode_barreetatRATTACHERSITEcode_sitenom_site1,10,nexemplairecode_barreetat#code_sitesitecode_sitenom_siteCREATE TABLEexemplaire (code_barre CHAR(13)PRIMARY KEY,etat VARCHAR(10),code_site CHAR(3)NOT NULL,FOREIGN KEY(code_site)REFERENCES site(code_site));règles de passagechoix du SGBD
Une même règle de gestion vue aux trois niveaux : MCD, MLD, MPD

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.

NotationOrigineOù tu la vois
MCD de MeriseFrance, années 1980Cours et sujets français, logiciels Looping et Mocodo
Modèle entité-association (Entity-Relationship), notation « pattes de corbeau »Chen (1976), puis variantes anglo-saxonnesMySQL Workbench, DBeaver, documentation en anglais
Diagramme de classes UMLNorme de l'OMG, 1997Programmation 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.

ÉtapeCe que tu produisChapitre
1. Recueillir le besoinLes règles de gestion, numérotées2
2. Inventorier les donnéesLe dictionnaire des données2
3. Relier les donnéesLes dépendances fonctionnelles3
4. ConcevoirLe MCD4 à 7
5. Traduire en tablesLe MLD8
6. Créer la baseLe script SQL (MPD)9
7. VérifierLes tables en troisième forme normale10

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.

ÉpreuveCe qu'on te demandePour 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 contrainteChapitres 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).

  1. « La colonne email est de type VARCHAR(100). »
  2. « Un adhérent peut réserver plusieurs documents. »
  3. « La table emprunt contient la clé étrangère num_adherent. »
  4. « La table exemplaire utilise le moteur InnoDB. »
  5. « Un document appartient à un seul genre. »
  6. « La table contribuer a une clé primaire composée de deux colonnes. »
  7. « Un index accélère la recherche par titre. »
Voir la réponseMasquer la réponse de l'exercice 1
  1. Physique : un type de données est propre à un SGBD.
  2. Conceptuel : c'est une règle de gestion, exprimée en français, qui deviendra une association et ses cardinalités.
  3. Logique : on parle de tables et de clés, mais pas encore de SGBD.
  4. Physique : le moteur de stockage est un choix propre à MySQL.
  5. Conceptuel : encore une règle de gestion, qui deviendra une cardinalité 1,1 du côté du document.
  6. Logique : une clé primaire composée est une notion du modèle relationnel.
  7. 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 :

DateHeureCourtSurface du courtMembreTéléphone du membre
03/1118 h2Terre battueLéa Martin06 12 34 56 78
03/1119 h1RésineLéa Martin06 12 34 56 78
04/1118 h2Terre battueHugo Petit06 98 76 54 32
  1. Que faut-il faire si le court 2 est refait en résine ?
  2. Comment enregistrer un nouveau membre qui n'a encore rien réservé ?
  3. Que perd-on en supprimant la réservation de Hugo Petit ?
  4. Quelles « choses » mériteraient d'être décrites séparément ?
Voir la réponseMasquer la réponse de l'exercice 2
  1. Modifier toutes les lignes du court 2. Une ligne oubliée, et le court a deux surfaces : c'est une anomalie de mise à jour.
  2. On ne peut pas, sauf à créer une fausse réservation : c'est une anomalie d'insertion.
  3. Le seul endroit où figure le téléphone de Hugo Petit : c'est une anomalie de suppression.
  4. 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é ?

Chapitre terminé !

Fais les 3 exercices avant de passer à la suite : c'est en t'entraînant que tout se fixe.

chapitres
–
de série
–
du cours
–
Chapitre suivant : Règles de gestion et dictionnaire des donnéesRevoir le sommaire du cours