Module 2Préparer l'environnement
Chapitre 4 sur 9
Exploiter un outil de modélisation
Modéliser avec Looping et MySQL Workbench, générer le MLD et le script SQL.
- ≈ 110 min
- 4 leçons
- 1 vidéo
- 2 exercices
Module 2Préparer l'environnement
Chapitre 4 sur 9
Modéliser avec Looping et MySQL Workbench, générer le MLD et le script SQL.
Objectifs
Avec ce chapitre, tu sauras…
Leçon 1
Un MCD dessiné à la main est parfait pour réfléchir. Mais un logiciel permet de le modifier facilement, de le partager proprement et surtout de générer automatiquement le MLD et le script SQL de création des tables, sans erreur de recopie.
| Outil | Type | Points forts | Limites |
|---|---|---|---|
| Looping | logiciel gratuit, en français (Windows) | notation Merise exacte (MCD avec cardinalités), génération du MLD et du script SQL | Windows uniquement (fonctionne avec Wine ailleurs) |
| MySQL Workbench | logiciel gratuit d'Oracle | diagramme physique (EER), création de la base en un clic, reverse engineering d'une base existante | pas de notation Merise : il dessine directement les tables |
| draw.io (diagrams.net) | outil de dessin gratuit, en ligne | rapide, rien à installer | simple dessin : aucune génération de MLD ni de SQL |
| Win'Design, PowerAMC | logiciels professionnels payants | très complets | coût |
Leçon 2
Leçon 3
| Fonction | Menu | Rôle |
|---|---|---|
| nouveau modèle | File, New Model, puis Add Diagram | ouvrir une zone de dessin |
| créer une table | outil Table (ou touche T) | ajouter une table ; double-clic pour définir les colonnes, les types, PK, NN (not null), UQ (unique), AI (auto-incrément) |
| créer une relation | outils de relation 1:N ou N:M | relier deux tables : Workbench ajoute la clé étrangère (et la table d'association pour N:M) |
| forward engineering |
Leçon 4
| Type du dictionnaire | Type MySQL | Exemple |
|---|---|---|
| alphanumérique, taille fixe | CHAR(n) | numCINEtu CHAR(9), un code postal |
| alphanumérique, taille variable | VARCHAR(n) | nomEtu VARCHAR(30) |
| texte long | TEXT | une description |
| numérique entier | INT, SMALLINT, TINYINT |
1Pour dessiner un MCD en notation Merise, on utilise plutôt…
2Le forward engineering consiste à…
3Le diagramme de MySQL Workbench s'appelle…
4Pour un prix, le type adapté est…
5Un numéro CIN de 9 caractères fixes se stocke plutôt en…
6Le reverse engineering sert à…
L'essentiel du chapitre
CHAR, VARCHAR, TEXT, INT, DECIMAL (montants), DATE, DATETIME, ENUM, ainsi que les contraintes (PK, FK, NOT NULL, UNIQUE).| Database, Forward Engineer |
| générer le script SQL et créer la base sur le serveur |
| reverse engineering | Database, Reverse Engineer | reconstruire le diagramme à partir d'une base existante |
dureeForm SMALLINT |
| numérique décimal | DECIMAL(p, s) | prixForm DECIMAL(8,2) : 8 chiffres dont 2 après la virgule |
| date, date et heure | DATE, DATETIME | dateNaissEtu DATE |
| booléen | BOOLEAN (en réalité TINYINT(1)) | actif BOOLEAN |
| liste de valeurs | ENUM('a', 'b') | typeCours ENUM('presentiel', 'distanciel') |
Vidéo · À regarder
ENMySQL Database - Full Course
freeCodeCamp.org · YouTube
Du MCD au script SQL avec Looping
MySQL Workbench travaille directement au niveau physique : on dessine des tables avec leurs colonnes, leurs types et leurs clés. Son diagramme s'appelle un diagramme EER (Enhanced Entity-Relationship).
Le modèle physique précise ce que le MLD laisse ouvert : le type SQL de chaque colonne, sa taille, les contraintes et les index. Le dictionnaire de données (chapitre 2) donne directement ces informations.
Dessine le MCD de la bibliothèque dans Looping et compare le MLD généré avec celui de ton TP 3.4. Ensuite, dessine le même modèle dans MySQL Workbench (diagramme EER), avec les types de chaque colonne, puis exporte le script SQL avec File, Export, Forward Engineer SQL CREATE Script. Garde ce script : il servira au chapitre 6.
Pour chaque donnée du dictionnaire du centre de formation (chapitre 2), propose le type MySQL le plus adapté et dis si la colonne peut être vide (NULL) ou non. Justifie trois de tes choix.
Si le MLD généré par Looping ne correspond pas à ce que tu attendais (une table d'association manquante, une clé étrangère du mauvais côté), c'est presque toujours une cardinalité mal saisie dans le MCD. Le MLD automatique est un excellent outil de vérification.
CREATE TABLE et crée la base ;L'outil « relation N:M » de Workbench crée automatiquement une table d'association nommée table1_has_table2. Renomme-la avec un nom métier (INSCRIPTION) et ajoute-lui ses colonnes propres (typeCours) : sinon, la propriété portée par l'association du MCD est perdue.
FLOAT et DOUBLE stockent des valeurs approchées : 0,1 + 0,2 n'y vaut pas exactement 0,3. Pour les montants (prix, salaires, soldes), utilise toujours DECIMAL, qui stocke des valeurs exactes.
CREATE TABLE SESSION (
codeSess VARCHAR(9) NOT NULL,
nomSess VARCHAR(30) NOT NULL,
dateDebutSess DATE NOT NULL,
dateFinSess DATE NOT NULL,
codeForm VARCHAR(9) NOT NULL,
PRIMARY KEY (codeSess),
FOREIGN KEY (codeForm) REFERENCES FORMATION (codeForm)
);La modélisation des données jusqu'aux tables, avec un outil graphique (en anglais).