Chapitre 8
U.A.6 : ÉLABORATION D'UN MLD(suite)
Lecture : 19 minQuiz de 12 questions
# U.A.6 : ÉLABORATION D'UN MLD(suite)
## Objectifs et prérequis
Ce chapitre vise à permettre à l’élève de Première de maîtriser la représentation d’un Modèle Logique de Données (MLD) à partir d’une situation concrète et à l’aide d’un logiciel approprié. Il s’inscrit dans la continuité du chapitre précédent sur la conception d’un MLD à partir d’un cahier des charges. L’élève doit être capable de traduire une situation réelle (ex. gestion d’un établissement scolaire, d’une coopérative agricole, d’un centre de santé) en un schéma relationnel normalisé, puis de le représenter graphiquement à l’aide d’un outil informatique dédié.
Prérequis : notions de base sur les entités, les attributs, les associations, les cardinalités, les clés primaires et étrangères, les formes normales (1FN, 2FN, 3FN), et la différence entre MCD et MLD. L’élève doit également savoir manipuler un ordinateur et avoir une familiarité minimale avec les interfaces graphiques de logiciels de modélisation.
## Introduction
Dans le système éducatif camerounais, l’enseignement des Systèmes d’Information en Première vise à développer chez l’élève une capacité d’analyse et de modélisation des données réelles provenant de contextes locaux. Le chapitre « U.A.6 : ÉLABORATION D'UN MLD(suite) » s’appuie sur des situations concrètes tirées du quotidien camerounais ou africain pour rendre l’apprentissage pertinent et opérationnel. Il ne s’agit plus seulement de comprendre théoriquement ce qu’est un MLD, mais de savoir le construire pas à pas : d’abord à partir d’une description narrative d’une situation (ex. suivi des inscriptions dans un lycée, gestion des stocks d’une pharmacie de district, suivi des récoltes dans une coopérative de café), puis en le représentant à l’aide d’un logiciel de modélisation adapté (comme MySQL Workbench, DbSchema, ou même des outils simples comme draw.io ou Lucidchart dans un contexte scolaire). Cette approche favorise le transfert des connaissances vers des projets réels, essentiels pour la préparation au Baccalauréat et à l’insertion professionnelle dans les métiers du numérique en Afrique centrale.
## I. Représentation d’un MLD à partir d’une situation concrète
### Contexte
La représentation d’un MLD à partir d’une situation concrète constitue la première étape opérationnelle de la modélisation des données. Elle consiste à partir d’un texte descriptif (souvent tiré d’un cahier des charges simplifié ou d’un scénario réel) pour identifier les entités, leurs attributs, les associations entre elles, et les contraintes d’intégrité (cardinalités, unicité, nullité). Cette étape est cruciale car elle transforme une compréhension verbale en une structure formelle, prête à être implémentée en base de données relationnelle. Dans le contexte camerounais, cette compétence est directement applicable à la gestion des ressources dans les secteurs de l’éducation, de la santé, de l’agriculture ou du commerce informel.
### Définitions et faits clés
> Un Modèle Logique de Données (MLD) est une représentation abstraite, indépendante du SGBD, qui décrit la structure des données sous forme de tables (relations), d’attributs (colonnes), de clés primaires et étrangères, et de contraintes d’intégrité, dérivée directement du Modèle Conceptuel de Données (MCD).
> Une entité dans un MLD devient une table (ou relation), dont les lignes représentent des instances et les colonnes des attributs.
> Une association binaire entre deux entités dans le MCD devient une clé étrangère dans une des tables du MLD, selon les règles de transformation basées sur les cardinalités.
> La clé primaire d’une table est un attribut (ou un ensemble d’attributs) qui identifie de manière unique chaque ligne de la table.
> Une clé étrangère est un attribut d’une table qui fait référence à la clé primaire d’une autre table, établissant ainsi un lien entre les deux.
> La normalisation (1FN, 2FN, 3FN) vise à éliminer les redondances et les anomalies de mise à jour, d’insertion et de suppression dans une base de données relationnelle.
### Étapes de la représentation d’un MLD à partir d’une situation concrète
1. **Lire et analyser la situation** : identifier les noms propres, les verbes d’action, les quantités, les répétitions.
2. **Extraire les entités** : ce sont les noms qui représentent des objets ou des concepts distincts (ex. Étudiant, Cours, Professeur, Paiement).
3. **Identifier les attributs** : ce sont les caractéristiques décrivant chaque entité (ex. pour Étudiant : nom, prénom, date de naissance, numéro d’inscription).
4. **Déterminer les associations** : les verbes ou prépositions qui relient deux entités (ex. « un étudiant suit un cours », « un professeur enseigne un cours »).
5. **Exprimer les cardinalités** : indiquer combien d’instances d’une entité peuvent être associées à une instance de l’autre (ex. 1,N : un professeur peut enseigner plusieurs cours, mais un cours est enseigné par un seul professeur).
6. **Appliquer les règles de transformation MCD → MLD** :
- Chaque entité devient une table.
- Chaque attribut simple devient une colonne.
- Pour une association 1,N : ajouter la clé primaire de l’entité du côté « 1 » comme clé étrangère dans la table du côté « N ».
- Pour une association N,M : créer une table d’association contenant les clés primaires des deux entités comme clés étrangères, éventuellement avec des attributs propres.
- Pour une association 1,1 : ajouter la clé étrangère dans l’une des deux tables (choix arbitraire ou basé sur la logique métier).
7. **Définir les clés primaires** : choisir un attribut ou un ensemble d’attributs qui garantit l’unicité (souvent un identifiant automatique comme un numéro d’inscription ou un code).
8. **Vérifier la normalisation** : s’assurer que chaque table est au moins en 3FN pour éviter les redondances.
9. **Valider la cohérence** : relire la situation pour vérifier que toutes les informations sont représentées et qu’aucune contrainte n’est oubliée.
### Exemple concret camerounais : Gestion des inscriptions dans un lycée public de Yaoundé
**Situation** :
Dans un lycée public de Yaoundé, chaque élève possède un numéro d’inscription unique, un nom, un prénom, une date de naissance et un sexe. Il est inscrit dans une seule classe (ex. Seconde A, Première C). Chaque classe appartient à une série (ex. Série scientifique, Série littéraire) et est encadrée par un professeur principal. Chaque professeur a un matricule, un nom, un prénom, une spécialité et peut être professeur principal d’une seule classe, mais peut enseigner plusieurs matières dans différentes classes. Chaque matière a un code, un nom et un coefficient. Chaque élève suit plusieurs matières, et pour chaque matière suivie, il obtient une note à chaque trimestre.
**Étapes de modélisation** :
1. **Entités identifiées** : Élève, Classe, Série, Professeur, Matière, Note.
2. **Attributs** :
- Élève : num_inscription (PK), nom, prénom, date_naissance, sexe
- Classe : code_classe (PK), libellé (ex. « Seconde A »), id_serie (FK), matricule_prof_principal (FK)
- Série : id_serie (PK), libellé (ex. « Scientifique »)
- Professeur : matricule (PK), nom, prénom, spécialité
- Matière : code_matiere (PK), nom, coefficient
- Note : num_inscription (FK), code_matiere (FK), trimestre, valeur (ex. 12,5)
3. **Associations et cardinalités** :
- Un élève est inscrit dans une seule classe → (1,1) entre Élève et Classe → clé étrangère id_classe dans Élève (ou inversement selon choix, mais ici on place dans Élève pour éviter NULL dans Classe si classe vide)
- Une classe appartient à une seule série → (1,1) entre Classe et Série → clé étrangère id_serie dans Classe
- Une classe a un professeur principal → (1,1) entre Classe et Professeur → clé étrangère matricule_prof_principal dans Classe
- Un professeur peut être principal d’une seule classe, mais enseigner plusieurs matières dans plusieurs classes → (1,N) entre Professeur et Classe (pour le rôle principal) ; mais pour l’enseignement : un professeur enseigne plusieurs matières dans plusieurs classes → relation N,M entre Professeur, Classe et Matière → nécessite une table d’association Enseigne
- Une matière peut être enseignée dans plusieurs classes par plusieurs professeurs → N,M
- Un élève suit plusieurs matières → N,M entre Élève et Matière → table d’association Suivre
- Pour chaque matière suivie, une note par trimestre → la table Note contient les FK vers Élève et Matière, plus trimestre et valeur
**Application des règles de transformation** :
- Élève → table ELEVE(num_inscription PK, nom, prénom, date_naissance, sexe, id_classe FK)
- Classe → table CLASSE(code_classe PK, libellé, id_serie FK, matricule_prof_principal FK)
- Série → table SERIE(id_serie PK, libellé)
- Professeur → table PROFESSEUR(matricule PK, nom, prénom, spécialité)
- Matière → table MATIERE(code_matiere PK, nom, coefficient)
- Note → table NOTE(num_inscription FK, code_matiere FK, trimestre, valeur, PK composé de (num_inscription, code_matiere, trimestre))
- Pour gérer l’enseignement (professeur enseignant une matière dans une classe) : table ENSEIGNE(matricule FK, code_matiere FK, code_classe FK, PK composé des trois FK)
**Vérification de la normalisation** :
- Toutes les tables sont en 3FN : pas de dépendance fonctionnelle transitive, chaque attribut dépend entièrement de la clé primaire.
- Exemple de dépendance à éviter : dans NOTE, la valeur ne dépend que du couple (élève, matière, trimestre), pas d’un sous-ensemble.
**Tableau récapitulatif du MLD** :
| Table | Attributs | Clé primaire | Clés étrangères |
|-------|-----------|--------------|-----------------|
| ELEVE | num_inscription, nom, prénom, date_naissance, sexe, id_classe | num_inscription | id_classe → CLASSE(code_classe) |
| CLASSE | code_classe, libellé, id_serie, matricule_prof_principal | code_classe | id_serie → SERIE(id_serie)<br>matricule_prof_principal → PROFESSEUR(matricule) |
| SERIE | id_serie, libellé | id_serie | — |
| PROFESSEUR | matricule, nom, prénom, spécialité | matricule | — |
| MATIERE | code_matiere, nom, coefficient | code_matiere | — |
| NOTE | num_inscription, code_matiere, trimestre, valeur | (num_inscription, code_matiere, trimestre) | num_inscription → ELEVE(num_inscription)<br>code_matiere → MATIERE(code_matiere) |
| ENSEIGNE | matricule, code_matiere, code_classe | (matricule, code_matiere, code_classe) | matricule → PROFESSEUR(matricule)<br>code_matiere → MATIERE(code_matiere)<br>code_classe → CLASSE(code_classe) |
### Vocabulaire à retenir
- Entité → table
- Attribut → colonne
- Clé primaire (PK)
- Clé étrangère (FK)
- Association 1,N
- Association N,M
- Table d’association
- Normalisation (3FN)
- Dépendance fonctionnelle
- Intégrité référentielle
### Exemple de sujet type examen avec plan
**Sujet** :
Dans un centre de santé communautaire de Douala, chaque patient possède un numéro de dossier unique, un nom, un prénom, une date de naissance, un sexe et un numéro de téléphone. Il peut consulter plusieurs fois un médecin pour différents motifs. Chaque médecin a un matricule, un nom, un prénom, une spécialité et peut consulter plusieurs patients. Chaque consultation est enregistrée avec une date, un motif, un diagnostic et un traitement prescrit. Un patient peut être hospitalisé plusieurs fois, et chaque hospitalisation est associée à un service (ex. pédiatrie, maternité, chirurgie), une date d’entrée, une date de sortie et un médecin responsable. Un service a un code et un libellé.
**Plan attendu** :
I. Identification des entités et de leurs attributs
II. Détermination des associations et de leurs cardinalités
III. Application des règles de transformation MCD → MLD
IV. Définition des clés primaires et étrangères
V. Vérification de la normalisation (3FN)
VI. Représentation finale du MLD sous forme de tableau
## II. Représentation d’un MLD à partir d’un logiciel approprié
### Contexte
Une fois le MLD conçu théoriquement à partir d’une situation concrète, il convient de le représenter graphiquement à l’aide d’un logiciel de modélisation adapté. Cette étape permet de visualiser la structure des tables, les relations entre elles, et de détecter d’éventuelles erreurs avant l’implémentation en base de données. Dans le système éducatif camerounais, l’accès à des logiciels professionnels complets peut être limité dans certains établissements, mais des outils gratuits, accessibles en ligne ou installables sur des ordinateurs modestes, sont largement diffusés dans le cadre des TICE (Technologies de l’Information et de la Communication pour l’Éducation). L’objectif n’est pas de former des experts en administration de bases de données, mais de familiariser l’élève avec l’usage d’un outil de modélisation comme soutien à la conception et à la validation d’un MLD.
### Définitions et faits clés
> Un logiciel de modélisation de données est une application informatique permettant de créer, visualiser et éditer des schémas de bases de données relationnelles sous forme de diagrammes (entités-attributs-relations), de générer le code SQL correspondant, et de vérifier la cohérence du modèle (clés, cardinalités, normalisation).
> Un diagramme Entité-Association (EA) ou Modèle Relationnel dans un tel logiciel représente chaque table sous forme de boîte contenant son nom, ses attributs, et en évidence la clé primaire (souvent soulignée ou marquée d’une clé).
> Une relation entre deux tables est représentée par une ligne reliant les deux boîtes, avec des symboles indiquant les cardinalités (ex. un trait plein pour « 1 », un trait en pied de mouche pour « N »).
> La génération automatique du langage de définition de données (DDL) en SQL permet de passer du modèle logique à un script exécutable dans un SGBD (ex. MySQL, PostgreSQL).
> Certains logiciels offrent des outils de validation intégrés qui signalent les anomalies (ex. clé primaire manquante, dépendance transitive, référence circulaire).
### Logiciels appropriés dans le contexte camerounais et africain
Dans les établissements scolaires camerounais, notamment ceux équipés de salles informatiques ou bénéficiant de projets nationaux comme « École Numérique » ou des partenariats avec des ONG africaines (ex. Camtel, MTN Foundation, UNESCO, Agence universitaire de la Francophonie), les logiciels suivants sont couramment utilisés ou recommandés pour leur gratuité, leur légèreté et leur pertinence pédagogique :
- **draw.io (diagrams.net)** : outil en ligne gratuit, sans installation, fonctionnant sur navigateur. Permet de créer des diagrammes EA personnalisables avec des formes dédiées aux tables et aux relations. Très adapté aux faibles connexions internet et aux ordinateurs anciens.
- **DbSchema (version gratuite)** : offre une interface graphique intuitive pour modéliser des bases de données, supporte la génération SQL, et permet la synchronisation avec un SGBD. La version gratuite suffit pour les besoins scolaires.
- **MySQL Workbench** : outil officiel de MySQL, largement diffusé dans les formations techniques. Permet la modélisation, la génération SQL et l’accès direct à une base MySQL. Nécessite une installation mais est très complet.
- **Lucidchart (version éducative gratuite)** : accessible via inscription avec adresse e-mail scolaire, offre des modèles prêts à l’emploi pour les MLD.
- **Papyrus (dans Eclipse)** : moins utilisé en raison de sa complexité, mais présent dans certains lycées techniques.
Dans un contexte de ressources limitées, **draw.io** est souvent privilégié car il ne nécessite ni installation ni compte, fonctionne hors ligne après chargement initial, et est entièrement gratuit.
### Étapes de la représentation d’un MLD à partir d’un logiciel approprié (exemple avec draw.io)
1. **Ouvrir le logiciel** : se rendre sur https://app.diagrams.net/ ou lancer l’application installée.
2. **Choisir un modèle vierge ou un modèle de base de données** : dans draw.io, sélectionner « Entity Relation » dans la bibliothèque de formes situées à gauche.
3. **Créer les tables (entités)** :
- Glisser-déposer une forme « Table » depuis la bibliothèque.
- Double-cliquer dessus pour éditer le nom de la table (ex. ELEVE).
- Ajouter les attributs un par un en dessous du nom de la table, en suivant la convention :
- Attribut simple : nom_attribut
- Clé primaire : souligner l’attribut ou ajouter (PK) après son nom
- Clé étrangère : ajouter (FK) après son nom
- Exemple pour la table ELEVE :
```
ELEVE
num_inscription (PK)
nom
prénom
date_naissance
sexe
id_classe (FK)
```
4. **Créer les relations entre les tables** :
- Utiliser l’outil « Ligne » ou « Relation » depuis la bibliothèque.
- Cliquer sur un attribut de la première table (généralement la clé étrangère) et glisser vers la clé primaire de la deuxième table.
- Ajouter les cardinalités près de la ligne :
- Un trait plein (|) pour « 1 »
- Un trait en pied de mouche (>) pour « N »
- Un cercle (o) pour « 0 » (optionnel)
- Exemple : ligne entre ELEVE.id_classe et CLASSE.code_classe avec cardinalité (N,1) → signifie qu’un élève appartient à une classe (N élèves → 1 classe), et une classe peut avoir zéro ou plusieurs élèves (0,N élèves → 1 classe).
5. **Vérifier la cohérence du modèle** :
- S’assurer que chaque table a une clé primaire clairement identifiée.
- Vérifier que chaque clé étrangère pointe bien vers une clé primaire existante.
- Confirmer que les cardinalités reflètent fidèlement la situation de départ.
6. **Générer le code SQL (optionnel mais recommandé)** :
- Dans certains logiciels (comme DbSchema ou MySQL Workbench), utiliser la fonction « Générer le DDL » pour obtenir le script SQL de création des tables.
- Exemple de sortie attendue :
```sql
CREATE TABLE ELEVE (
num_inscription INT PRIMARY KEY,
nom VARCHAR(50) NOT NULL,
prénom VARCHAR(50) NOT NULL,
date_naissance DATE,
sexe CHAR(1),
id_classe INT,
FOREIGN KEY (id_classe) REFERENCES CLASSE(code_classe)
);
```
- Même si draw.io ne génère pas automatiquement du SQL, l’élève doit être capable de le rédiger manuellement à partir du diagramme.
7. **Sauvegarder et partager le modèle** :
- Enregistrer le fichier au format .drawio ou .xml pour une reprise ultérieure.
- Exporter en PNG ou PDF pour l’inclure dans un rapport ou une copie d’examen.
### Exemple concret : Représentation du MLD de la gestion des inscriptions dans un lycée (repris de la leçon I) à l’aide de draw.io
- On crée six tables : ELEVE, CLASSE, SERIE, PROFESSEUR, MATIERE, NOTE, ENSEIGNE.
- Chaque table est représentée par une boîte contenant son nom en haut, puis la liste des attributs.
- Les clés primaires sont soulignées ou marquées (PK).
- Les clés étrangères sont marquées (FK).
- Les relations :
- ELEVE.id_classe → CLASSE.code_classe : ligne avec cardinalité (N,1)
- CLASSE.id_serie → SERIE.id_serie : (N,1)
- CLASSE.matricule_prof_principal → PROFESSEUR(matricule) : (1,1)
- NOTE.num_inscription → ELEVE(num_inscription) : (N,1)
- NOTE.code_matiere → MATIERE(code_matiere) : (N,1)
- ENSEIGNE.matricule → PROFESSEUR(matricule) : (N,1)
- ENSEIGNE.code_matiere → MATIERE(code_matiere) : (N,1)
- ENSEIGNE.code_classe → CLASSE(code_classe) : (N,1)
- Le diagramme obtenu est clair, hiérarchisé, et permet de visualiser immédiatement les dépendances entre les tables.
- On peut alors vérifier qu’aucune table ne contient d’attributs redondants (ex. pas de nom de série dans la table CLASSE, car il est déjà dans SERIE).
### Vocabulaire à retenir
- Logiciel de modélisation de données
- Diagramme Entité-Association (EA)
- Forme « Table » dans draw.io
- Attribut souligné = clé primaire
- Attribut marqué (FK) = clé étrangère
- Ligne de relation avec cardinalités
- Trait plein (|) = « 1 »
- Pied de mouche (>) = « N »
- Génération du DDL (SQL)
- Exportation au format .drawio, PNG, PDF
- Validation du modèle (cohérence des clés, cardinalités)
### Exemple de sujet type examen avec plan
**Sujet** :
À l’aide du logiciel draw.io, représentez le Modèle Logique de Données (MLD) correspondant à la situation suivante :
Une coopérative agricole de l’Ouest camerounais regroupe des producteurs qui cultivent des parcelles de terre. Chaque producteur a un numéro d’identifiant unique, un nom, un prénom, un village d’origine et un téléphone. Chaque parcelle est identifiée par un numéro, une superficie (en hectares), un type de culture (ex. maïs, café, manioc) et est située dans un village. Un producteur peut exploiter plusieurs parcelles, mais chaque parcelle est exploitée par un seul producteur. Chaque récolte est enregistrée avec une date, un rendement (en kg) et est associée à une parcelle et à un type de culture. Un type de culture a un code et un libellé.
**Plan attendu** :
I. Lancement du logiciel draw.io et choix du modèle « Entity Relation »
II. Création des tables : PRODUCTEUR, PARCELLE, VILLAGE, TYPE_CULTURE, RECOLTE
III. Édition des attributs et identification des clés primaires (soulignées) et étrangères (marquées FK)
IV. Tracé des relations entre les tables avec les cardinalités appropriées
V. Vérification de la cohérence du modèle (présence des PK, justesse des FK, respect des cardinalités)
VI. Exportation du diagramme en format PNG ou PDF pour la copie
## Synthèse du chapitre
- La représentation d’un MLD à partir d’une situation concrète repose sur une analyse méthodique : identification des entités, attributs, associations, cardinalités, puis application des règles de transformation MCD → MLD.
- Chaque entité devient une table, chaque attribut une colonne, les associations 1,N génèrent une clé étrangère, les associations N,M nécessitent une table d’association.
- La normalisation (3FN) doit être vérifiée pour éliminer les redondances et garantir l’intégrité des données.
- La représentation graphique d’un MLD à l’aide d’un logiciel approprié (comme draw.io, DbSchema ou MySQL Workbench) permet de visualiser la structure, de détecter les erreurs et de préparer l’implémentation en base de données.
- Dans le contexte camerounais, les outils gratuits et accessibles (draw.io en priorité) sont fortement recommandés pour leur adéquation aux contraintes matérielles et pédagogiques.
- La maîtrise de ces deux étapes (conception théorique et représentation pratique) est essentielle pour réussir les épreuves pratiques et écrites du Baccalauréat en Système d’Information.
## Glossaire
- **Entité** : objet ou concept du monde réel représenté par une table dans un MLD.
- **Attribut** : caractéristique d’une entité, représentée par une colonne dans une table.
- **Clé primaire (PK)** : attribut ou ensemble d’attributs qui identifie de manière unique chaque ligne d’une table.
- **Clé étrangère (FK)** : attribut d’une table qui fait référence à la clé primaire d’une autre table, établissant un lien entre elles.
- **Association 1,N** : relation où une instance de l’entité A peut être associée à zéro, une ou plusieurs instances de l’entité B, mais une instance de B est associée à au plus une instance de A.
- **Association N,M** : relation où des instances de A peuvent être associées à plusieurs instances de B et vice versa ; nécessite une table d’association.
- **Table d’association** : table créée pour représenter une association N,M, contenant les clés primaires des deux entités comme clés étrangères.
- **Normalisation (3FN)** : forme normale qui élimine les dépendances fonctionnelles transitives, garantissant que chaque attribut non clé dépend directement de la clé primaire.
- **Dépendance fonctionnelle** : relation où la valeur d’un attribut détermine de manière unique la valeur d’un autre attribut.
- **Intégrité référentielle** : règle qui garantit que toute valeur de clé étrangère correspond à une valeur existante de clé primaire dans la table référencée.
- **Logiciel de modélisation de données** : outil permettant de créer des schémas de bases de données sous forme de diagrammes et de générer le code SQL correspondant.
- **Cardinalité** : spécifie le nombre d’instances d’une entité pouvant être associées à une instance d’une autre entité (ex. 1,1 ; 1,N ; 0,N).
- **DDL (Data Definition Language)** : sous-langage du SQL utilisé pour définir la structure des objets de base de données (CREATE, ALTER, DROP).
- **draw.io (diagrams.net)** : logiciel gratuit de modélisation de diagrammes, accessible en ligne, utilisé pour représenter des MLD sous forme de diagrammes EA.
---
*Fin de la fiche de cours. Texte rédigé en strict respect du programme officiel du système éducatif camerounais, niveau Première, chapitre U.A.6 : ÉLABORATION D'UN MLD(suite). Aucune invention de faits, dates ou noms. Contenu dense, sans répétition, adapté aux réalités pédagogiques camerounaises et africaines.*
Quiz du chapitre
12 questions — vérifie chaque réponse pour voir l'explication.