Fiche de révision MERISE pour comprendre la modélisation des données dans un système d'information : MCD → MLD → MPD.
Photographie logique du métier, indépendante de toute technique. Se construit en 4 étapes.
Objet du monde réel dont on garde des infos. Doit être identifiable, autonome, utile — pas une simple caractéristique.
Informations descriptives d'une entité. Un attribut = identifiant (clé primaire conceptuelle) unique par entité.
Lien sémantique entre plusieurs entités — traduit la dynamique du métier.
Bornes (min, max) : combien d'occurrences d'une entité liées à combien d'occurrences de l'autre.
Zéro ou une occurrence. Ex : un employé peut avoir ou pas un véhicule de service.
Obligatoirement une seule occurrence. Ex : chaque facture correspond à exactement une commande.
Aucune ou plusieurs occurrences. Ex : un client peut n'avoir passé aucune commande, ou plusieurs.
Au moins une, éventuellement plusieurs. Ex : une commande contient au moins un produit.
Astuce de lecture : « chaque commande appartient à un seul client » → la cardinalité (1,1) se place du côté COMMANDE, pas du côté client.
Traduit le MCD en tables relationnelles : les associations disparaissent au profit de clés étrangères (ou de tables associatives).
Un côté (1,1) et un côté (1,N) → pas de nouvelle table.
Plusieurs occurrences des deux côtés → création obligatoire d'une nouvelle table.
Cardinalité max de 1 des deux côtés.
| Type d'association | Règle de transformation |
|---|---|
| (1,1) | Migration d'une clé primaire vers l'autre table comme clé étrangère |
| (1,N) | Migration de la clé primaire du côté « 1 » vers le côté « N » |
| (N,N) | Création d'une table associative contenant les deux clés étrangères |
| assoc. avec attributs | Les attributs de l'association sont ajoutés à la table associative |
ETUDIANT(Matricule, Nom, Prénom, DateNaissance, Email, #CodeProgramme)
PROGRAMME(CodeProgramme, Intitulé, Niveau)
MODULE(CodeModule, Intitulé, Crédits)
ENSEIGNANT(CodeEns, Nom, Prénom, Grade)
-- tables associatives issues des associations (N,N)
COMPOSER(#CodeProgramme, #CodeModule)
ENSEIGNER(#CodeEns, #CodeModule)
Traduction technique du MLD dans un SGBD précis (MySQL, PostgreSQL...) : types, contraintes, index.
PRIMARY KEYFOREIGN KEY ... REFERENCESNOT NULL — champ obligatoireUNIQUE — valeur non dupliquéeCHECK — condition à respecter (prix ≥ 0)DEFAULT — valeur par défautON DELETE CASCADE — supprime en chaîneON DELETE RESTRICT — interdit la suppression si liéON UPDATE CASCADE — répercute la mise à jourAccélère les recherches sur une colonne souvent filtrée (ex. clé étrangère).
Types de données courants (mémo rapide) :
CREATE TABLE Client (
id_client INT PRIMARY KEY,
nom VARCHAR(50) NOT NULL,
prenom VARCHAR(50) NOT NULL,
telephone VARCHAR(20)
);
CREATE TABLE Commande (
id_commande INT PRIMARY KEY,
date_commande DATE NOT NULL,
id_client INT NOT NULL,
FOREIGN KEY (id_client) REFERENCES Client(id_client)
);
CREATE TABLE Produit (
id_produit INT PRIMARY KEY,
designation VARCHAR(100) NOT NULL,
prix DECIMAL(10,2) NOT NULL CHECK (prix >= 0)
);
-- table associative : relation N,N entre Commande et Produit
CREATE TABLE Ligne_commande (
id_commande INT,
id_produit INT,
quantite INT NOT NULL CHECK (quantite > 0),
PRIMARY KEY (id_commande, id_produit),
FOREIGN KEY (id_commande) REFERENCES Commande(id_commande),
FOREIGN KEY (id_produit) REFERENCES Produit(id_produit)
);
Méthode pas-à-pas pour traiter un cas pratique le jour de l'examen.
Repérer les noms → entités possibles. Repérer les verbes d'action (passer, contenir, enseigner...) → associations.
Sous chaque entité, noter ses propriétés + choisir l'identifiant (unique, stable, non ambigu, minimal).
Une phrase par sens : « un X peut/doit avoir combien de Y ? » → déduire la cardinalité de ce côté.
Entités = rectangles, association = losange, cardinalités aux deux bouts du trait.
Pour chaque association : (1,N) → clé migre côté N · (N,N) → table associative · (1,1) → migration simple.
CREATE TABLE avec types précis, PRIMARY KEY, FOREIGN KEY, contraintes (NOT NULL, CHECK, UNIQUE).