Le Modèle Conceptuel de Données (MCD) est une représentation graphique des données permettant de structurer l’information avant sa mise en place dans un système informatique. Il est utilisé pour formaliser la structure des bases de données de manière indépendante de toute technologie de stockage. LaTeX, un langage de composition de documents, permet de réaliser des MCD clairs et précis grâce aux packages spécialisés.
Cet article vous guidera dans la création d’un MCD avec LaTeX en utilisant le package tikz-er2. Nous verrons également comment structurer le modèle et générer un diagramme.
Avantages :
✅ Génération de schémas professionnels et reproductibles
✅ Séparation claire entre le contenu et la mise en forme
✅ Compatibilité avec d’autres modèles de documentation technique
✅ Possibilité de modifications et d’évolution du modèle sans perte de qualité
Avant de commencer, assurez-vous d’avoir une distribution LaTeX installée (MikTeX, TeX Live, Overleaf). Nous utiliserons le package TikZ et plus précisément tikz-er2, conçu pour les diagrammes Entité-Relation.
Ajoutez ce package à votre document LaTeX :
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{er, positioning}
Un MCD repose sur les éléments suivants :
Nous allons illustrer cela avec un exemple de MCD « Gestion des commandes ».
Nous allons créer un MCD basé sur un système simple où :
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{er, positioning}
\begin{document}
\begin{center}
\begin{tikzpicture}[
entity/.style={draw, rectangle, rounded corners, minimum width=3cm, minimum height=1cm, align=center},
relation/.style={draw, diamond, aspect=2, minimum width=2.5cm, minimum height=1cm, align=center},
attribute/.style={draw, ellipse, minimum width=2cm, minimum height=0.8cm, align=center},
line/.style={draw, thick}
]
% Entités
\node[entity] (client) {Client};
\node[entity, right=4cm of client] (commande) {Commande};
\node[entity, right=4cm of commande] (produit) {Produit};
% Relations
\node[relation, above=1.5cm of commande] (passe) {Passe};
\node[relation, below=1.5cm of commande] (contient) {Contient};
% Liens entité-relation
\draw[line] (client) -- node[above] {1,N} (passe);
\draw[line] (passe) -- node[above] {1,1} (commande);
\draw[line] (commande) -- node[right] {1,N} (contient);
\draw[line] (contient) -- node[right] {1,N} (produit);
% Attributs
\node[attribute, left=2cm of client] (nomClient) {Nom};
\draw[line] (client) -- (nomClient);
\node[attribute, below=1cm of client] (idClient) {ID Client (PK)};
\draw[line] (client) -- (idClient);
\node[attribute, below=1cm of commande] (dateCommande) {Date};
\draw[line] (commande) -- (dateCommande);
\node[attribute, below=1cm of produit] (prix) {Prix};
\draw[line] (produit) -- (prix);
\node[attribute, below=2cm of produit] (idProduit) {ID Produit (PK)};
\draw[line] (produit) -- (idProduit);
\node[attribute, below=2cm of commande] (idCommande) {ID Commande (PK)};
\draw[line] (commande) -- (idCommande);
\end{tikzpicture}
\end{center}
\end{document}
🔹 Définition des styles
entity pour les entités (rectangles)relation pour les relations (losanges)attribute pour les attributs (ellipses)line pour relier les éléments🔹 Création des entités
🔹 Définition des relations
Passe relie Client et CommandeContient relie Commande et Produit🔹 Ajout des attributs
🔹 Ajout des cardinalités
(1,N) entre Client et Passe(1,1) entre Passe et Commande(1,N) entre Commande et Contient(1,N) entre Contient et ProduitEn compilant ce code avec un éditeur LaTeX compatible (TeXworks, Overleaf, TeXmaker), on obtient un MCD clair et structuré, avec les entités, relations, attributs et cardinalités correctement affichés.
📌 Client (1,N) → (1,1) Passe → (1,1) Commande
📌 Commande (1,N) → (1,N) Contient → (1,N) Produit
Créer un Modèle Conceptuel de Données (MCD) avec LaTeX permet d’obtenir des schémas professionnels et évolutifs. Grâce au package TikZ, il est possible de structurer un diagramme clair et de l’intégrer directement dans un rapport technique.
✔️ Définir les entités, relations et attributs
✔️ Utiliser TikZ pour dessiner le MCD
✔️ Ajouter les cardinalités et contraintes
✔️ Générer le diagramme pour une documentation complète
Ce modèle peut être utilisé pour documenter une base de données, présenter un projet informatique ou structurer un système d’information de manière rigoureuse.
1. Contexte du Projet
Une bibliothèque municipale souhaite mettre en place un système de gestion des prêts de livres. Ce système devra permettre de :
Avant l’implémentation d’une base de données, il est nécessaire de réaliser un Modèle Conceptuel de Données (MCD) afin de structurer les informations.
Nous identifions les principales entités, leurs relations et leurs attributs.
Les entités principales :
Nous allons maintenant créer le MCD en LaTeX en utilisant le package TikZ.
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{er, positioning}
\begin{document}
\begin{center}
\begin{tikzpicture}[
entity/.style={draw, rectangle, rounded corners, minimum width=3cm, minimum height=1cm, align=center},
relation/.style={draw, diamond, aspect=2, minimum width=2.5cm, minimum height=1cm, align=center},
attribute/.style={draw, ellipse, minimum width=2cm, minimum height=0.8cm, align=center},
line/.style={draw, thick}
]
% Entités
\node[entity] (lecteur) {Lecteur};
\node[entity, right=4cm of lecteur] (emprunt) {Emprunt};
\node[entity, right=4cm of emprunt] (livre) {Livre};
\node[entity, right=4cm of livre] (auteur) {Auteur};
% Relations
\node[relation, above=1.5cm of emprunt] (effectue) {Effectue};
\node[relation, above=1.5cm of livre] (ecrit) {Écrit};
% Liens entité-relation
\draw[line] (lecteur) -- node[above] {1,N} (effectue);
\draw[line] (effectue) -- node[above] {1,N} (emprunt);
\draw[line] (emprunt) -- node[above] {1,1} (livre);
\draw[line] (livre) -- node[above] {N,N} (ecrit);
\draw[line] (ecrit) -- node[above] {1,N} (auteur);
% Attributs
\node[attribute, left=2cm of lecteur] (idLecteur) {ID Lecteur (PK)};
\node[attribute, below=1cm of lecteur] (nomLecteur) {Nom};
\draw[line] (lecteur) -- (idLecteur);
\draw[line] (lecteur) -- (nomLecteur);
\node[attribute, below=1cm of emprunt] (dateEmprunt) {Date Emprunt};
\node[attribute, below=2cm of emprunt] (dateRetour) {Date Retour};
\draw[line] (emprunt) -- (dateEmprunt);
\draw[line] (emprunt) -- (dateRetour);
\node[attribute, below=1cm of livre] (titre) {Titre};
\node[attribute, below=2cm of livre] (anneePub) {Année Publication};
\draw[line] (livre) -- (titre);
\draw[line] (livre) -- (anneePub);
\node[attribute, below=1cm of auteur] (nomAuteur) {Nom};
\draw[line] (auteur) -- (nomAuteur);
\end{tikzpicture}
\end{center}
\end{document}
Structure du modèle :
Le MCD est ensuite transformé en MLD pour une implémentation en base de données.
CREATE TABLE Lecteur (
ID_Lecteur INT PRIMARY KEY,
Nom VARCHAR(255),
Email VARCHAR(255),
Téléphone VARCHAR(20),
Adresse TEXT
);
CREATE TABLE Auteur (
ID_Auteur INT PRIMARY KEY,
Nom VARCHAR(255),
Prénom VARCHAR(255),
Nationalité VARCHAR(255)
);
CREATE TABLE Livre (
ID_Livre INT PRIMARY KEY,
Titre VARCHAR(255),
Annee_Publication INT
);
CREATE TABLE Emprunt (
ID_Emprunt INT PRIMARY KEY,
ID_Lecteur INT,
ID_Livre INT,
Date_Emprunt DATE,
Date_Retour DATE,
FOREIGN KEY (ID_Lecteur) REFERENCES Lecteur(ID_Lecteur),
FOREIGN KEY (ID_Livre) REFERENCES Livre(ID_Livre)
);
CREATE TABLE Ecrit (
ID_Auteur INT,
ID_Livre INT,
PRIMARY KEY (ID_Auteur, ID_Livre),
FOREIGN KEY (ID_Auteur) REFERENCES Auteur(ID_Auteur),
FOREIGN KEY (ID_Livre) REFERENCES Livre(ID_Livre)
);
En compilant le code LaTeX, on obtient un diagramme clair illustrant la structure du système de gestion de la bibliothèque.
✔ Ajouter un nouveau lecteur
✔ Enregistrer un emprunt
✔ Lister tous les livres empruntés par un lecteur
✔ Afficher tous les livres écrits par un auteur
Exemple de requête SQL pour afficher les livres empruntés par un lecteur spécifique :
SELECT Livre.Titre, Emprunt.Date_Emprunt, Emprunt.Date_Retour
FROM Emprunt
JOIN Livre ON Emprunt.ID_Livre = Livre.ID_Livre
WHERE Emprunt.ID_Lecteur = 1;
Deux outils concrets pour piloter la qualité sans alourdir vos équipes Un système qualité n’avance…
Un chantier se gagne souvent avant même l’arrivée des équipes. Quand tout est clair dès…
Le mariage a du sens quand il repose sur une décision libre, mûrie et partagée.…
Une étude de cas réussie commence par une structure sûre. Ce modèle Word vous guide…
Les soft skills se repèrent vite sur une fiche, mais elles ne pèsent vraiment que…
Outil de comparaison et repérage des offres étudiantes Choisir des verres progressifs ressemble rarement à…
This website uses cookies.