Le Modèle Conceptuel de Données (MCD) est une représentation abstraite, formelle et indépendante des choix techniques (comme la base de données utilisée) pour décrire les données pertinentes d’un système d’information et les relations entre elles.
C’est la première étape de la modélisation dans la méthode MERISE, avant le MLD (Modèle Logique de Données) et le MPD (Modèle Physique de Données).
Objectif
- Identifier les entités et leurs attributs ;
Repérer les relations et leur cardinalité ;
Construire un MCD clair et cohérent ;
Comprendre les contraintes sémantiques (cardinalités, identifiants, dépendances).
Table des matières : [Masquer]
- 1 Éléments fondamentaux du MCD
- 1.1 Entité
- 1.2 Attribut
- 1.3 Relation
- 1.4 Modèle Logique de Données (MLD)
- 1.5 Pour un MLD relationnel :
- 1.6 Modèle Physique de Données (MPD)
- 1.7
- 1.8 Modèle Conceptuel des Traitements (MCT)
- 1.9
- 1.10 Modèle Organisationnel (dans MERISE)
- 1.11
- 1.12 Modèle Conceptuel Objet (MCO) (ou UML)
- 1.13 Modèles dans les méthodes agiles / modernes
- 1.14 Outils pour le MCD / MERISE
- 1.15 Outils pour MLD et MPD (SQL)
- 1.16 Outils pour UML / MCO (orienté objet)
- 1.17 Lucidchart / Draw.io
- 1.18 Outils agiles et modernes (NoSQL, JSON, DDD)
- 2
Éléments fondamentaux du MCD
Entité
Une entité est un objet du monde réel ou métier que l’on veut représenter (ex : Étudiant, Livre, Commande).
Elle est représentée par un rectangle.
Elle possède des attributs : informations descriptives.
Exemple :
ENTITÉ : Étudiant
- id_étudiant (identifiant)
- nom
- prénom
- date_naissance
Attribut
Propriété d’une entité ou d’une relation.
L’identifiant est souligné.
Peut être simple ou composé, monovalué ou multivalué
Relation
Une relation est un lien sémantique entre deux (ou plusieurs) entités.
Représentée par un losange.
Exprime une association, avec ses cardinalités.
Exemple :
Relation : Inscrire
- entre Étudiant et Cours
- Cardinalités :
Étudiant (0,n) ← Inscrire → (1,n) Cours
Cardinalités
Indiquent le nombre minimum et maximum de participations d’une entité à une relation.
Exemples :
(0,1), (1,1), (0,n), (1,n)
Exemple complet : Gestion de bibliothèque
Scénario : – Une bibliothèque gère ses livres. Chaque livre peut être emprunté par plusieurs lecteurs. Un lecteur peut emprunter plusieurs livres. On suit la date d’emprunt. Chaque livre a un titre et un code unique. Chaque lecteur a un numéro d’adhérent, un nom et une adresse.
Étapes de modélisation :
1. Identification des entités : Livre (code_livre, titre) – Lecteur (num_adhérent, nom, adresse)
2. Identification de la relation : – Emprunter (relation binaire entre Livre et Lecteur) – Attribut : date_emprunt – Cardinalité : (0,n) pour Lecteur, (0,n) pour Livre
3. Représentation graphique (MCD) :
[Lecteur]⎯⎯(0,n)────┐
| num_adhérent |
| nom |
| adresse |
◇Emprunter
| date_emprunt
| code_livre |
| titre |
[Livre ]⎯⎯(0,n)──────┘
- Toujours chercher les identifiants naturels (ex : numéro, code).
- Ne pas hésiter à normaliser les attributs complexes (ex : adresse → rue, ville, code postal).
- Attention aux relations réflexives ou ternaires, plus rares mais possibles.
- Utilisez des outils de modélisation comme Looping, DB-Main, Lucidchart, Draw.io.
En effet, le Modèle Conceptuel de Données (MCD) n’est qu’un maillon d’une chaîne de modélisation plus large dans les méthodes classiques comme MERISE, ou dans des approches orientées objets ou agiles.
Voici les principaux modèles que l’on utilise autour du MCD :
Modèle Logique de Données (MLD)
➤ Niveau intermédiaire
Le MLD est une traduction du MCD dans un modèle de données logique, dépendant du type de SGBD (relationnel, orienté objets, etc.)
Pour un MLD relationnel :
- Les entités deviennent des tables.
- Les relations deviennent des tables ou des clés étrangères, selon les cardinalités.
- On choisit les types de données (ex : VARCHAR, DATE).
📌 Exemple :
LECTEUR(num_adhérent, nom, adresse)
LIVRE(code_livre, titre)
EMPRUNTER(num_adhérent, code_livre, date_emprunt)
Modèle Physique de Données (MPD)
➤ Niveau technique et implémentation
Le MPD est l’adaptation du MLD pour un SGBD concret (MySQL, PostgreSQL, Oracle, etc.).
Il inclut :
- Les types SQL précis (VARCHAR(100), INT, etc.)
- Les index, contraintes, clés étrangères
- La syntaxe propre au SGBD
Exemple (MySQL) :
CREATE TABLE Lecteur (
num_adhérent INT PRIMARY KEY,
nom VARCHAR(100),
adresse TEXT
);
Modèle Conceptuel des Traitements (MCT)
➤ Complément du MCD pour la logique métier
Il décrit les traitements (processus/metiers) liés aux données :
- Flux d’information
- Règles de gestion
- Enchaînement d’opérations
Exemple :
Lorsqu’un lecteur emprunte un livre, on doit :
- Vérifier qu’il n’a pas atteint la limite d’emprunts.
- Mettre à jour la disponibilité du livre.
Modèle Organisationnel (dans MERISE)
➤ Qui fait quoi ? Où ? Quand ?
Il s’intéresse :
- Aux acteurs du système
- Aux organisations, postes, services
- Aux flux d’informations entre eux
Modèle Conceptuel Objet (MCO) (ou UML)
➤ Approche orientée objet (vs MERISE)
On utilise ici les diagrammes de classes UML :
- Entités = classes
- Relations = associations
- On y ajoute méthodes, visibilité, héritage, etc.
Exemple :
class Lecteur {
+num_adhérent: int
+nom: string
+adresse: string
}
Modèles dans les méthodes agiles / modernes
Exemples : Domain-Driven Design (DDD), ER-modèle enrichi, JSON Schema, NoSQL models.
Dans ces cas, on privilégie souvent des schémas :
- Plus souples
- Iteratifs
- Parfois non relationnels (MongoDB, GraphDB)
Récapitulatif
Modèle | Objectif principal | Niveau d’abstraction |
---|---|---|
MCD | Décrire les entités et relations métier | Conceptuel, indépendant |
MLD | Traduction en tables logiques | Logique, semi-technique |
MPD | Implémentation dans un SGBD | Physique, technique |
MCT | Décrire les traitements métier | Conceptuel (traitement) |
Modèle organisationnel | Décrire les acteurs / flux métier | Organisationnel |
UML (MCO) | Orienté objet, modélisation système | Conceptuel (objet) |
DDD / NoSQL / JSON Schema | Modèles modernes adaptés au contexte agile | Variable |
principaux outils et applications pour créer les modèles de données (MCD, MLD, MPD, UML, etc.), classés par usage :
Outils pour le MCD / MERISE
Looping
- Spécialement conçu pour MERISE.
- Permet de créer : MCD, MLD, MPD + génération SQL.
- Interface pédagogique, très utilisé dans l’enseignement.
- Génération automatique des modèles suivants.
DB-MAIN
- Outil académique puissant (développé à l’Université de Namur).
- Gère plusieurs modèles : conceptuel, logique, physique, transformation, rétro-ingénierie.
- Permet d’importer une base existante et générer des modèles.
- Supporte plusieurs formalismes.
Win’Design (Microconcept)
- Solution professionnelle pour MERISE, UML, BPMN…
- Utilisé dans l’ingénierie des systèmes d’information.
- Modélisation complète (MCD, MLD, traitements, orga…).
Outils pour MLD et MPD (SQL)
MySQL Workbench
- Outil officiel de MySQL.
- Permet de concevoir le modèle physique et de le synchroniser avec la base.
- Génération SQL, reverse engineering.
pgModeler
- Outil de modélisation pour PostgreSQL.
- Très complet, permet la création graphique du schéma.
- Export SQL, gestion des contraintes, etc.
SQL Power Architect
- Multi-SGBD, supporte la modélisation relationnelle.
- Moins visuel, mais efficace pour des projets complexes.
- Utilisable avec plusieurs bases de données (Oracle, SQL Server…).
Outils pour UML / MCO (orienté objet)
StarUML
- Outil professionnel pour UML.
- Supporte les diagrammes de classes, séquence, use case, etc.
- Export en images, code, etc.
Lucidchart / Draw.io
- Outils graphiques en ligne très simples à utiliser.
- Parfaits pour créer diagrammes de classes ou MCD à main levée.
- Collaboratif, intégration avec Google Drive.
https://lucidchart.com
https://draw.io
Enterprise Architect
- Outil complet pour l’architecture logicielle (UML, BPMN, SysML…).
- Très utilisé dans l’industrie et les grandes entreprises.
- Génération de code, modélisation métier, gestion des exigences.
Outils agiles et modernes (NoSQL, JSON, DDD)
MongoDB Compass
- Interface graphique pour MongoDB.
- Visualise les collections et schémas NoSQL.
Hackolade
- Spécialisé dans la modélisation NoSQL (MongoDB, Couchbase, DynamoDB…).
- Génère des schemas JSON, prend en charge les types dynamiques.
DrawSQL
- Outil web pour créer des modèles relationnels (MLD/MPD).
- Intuitif et design moderne.
- Génère les scripts SQL.
Outil | Modèles supportés | Usage principal | Niveau |
---|---|---|---|
Looping | MCD, MLD, MPD | MERISE académique | Facile |
DB-MAIN | MCD, MLD, MPD, reverse | Académique complet | Moyen |
Win’Design | MERISE + UML + traitements | Entreprise / pro | Avancé |
MySQL Workbench | MPD (MySQL) | SGBD physique | Moyen |
StarUML | UML (objets) | Orienté objet / Dev | Moyen |
Draw.io | Tout type de diagramme | Rapide, intuitif | Facile |
Hackolade | Modélisation NoSQL | Bases non relationnelles | Moyen |