Le traitement de texte du modèle
On peut écrire une lettre à la main, mais avec un traitement de texte on corrige sans tout recopier. Un outil de modélisation fait la même chose pour un MCD.
Installer et utiliser un outil de modélisation (Looping, Mocodo, MySQL Workbench) pour dessiner le MCD, générer le MLD et le script SQL.
Dessiner le MCD de Souk Atlas sur une feuille, c'est bien pour réfléchir. Mais quand la présidente demande d'ajouter une entité, il faut tout redessiner. Un outil de modélisation garde le modèle, vérifie les cardinalités et peut écrire tout seul le MLD et le script CREATE TABLE.
On saisit le MCD dans l'outil (à la souris dans Looping, en texte dans Mocodo).
Trois outils courants, tous gratuits :
| Outil | Ce qu’il fait | Pour qui |
|---|---|---|
| Looping | MCD Merise à la souris, MLD et script SQL | Débuter avec Merise (Windows) |
| Mocodo | MCD à partir d’un texte, dans le navigateur | Aller vite, partager un modèle |
| MySQL Workbench | Diagramme de tables (EER), génération et rétro-ingénierie | Travailler avec un vrai serveur MySQL |
souk_atlas_mcd.On peut écrire une lettre à la main, mais avec un traitement de texte on corrige sans tout recopier. Un outil de modélisation fait la même chose pour un MCD.
Mocodo dessine le MCD à partir d'un texte très court : une ligne par entité ou association. Les cardinalités sont écrites devant le nom de l'entité.
CLIENT: id_client, nom, prenom, email PASSER, 0N CLIENT, 11 COMMANDE COMMANDE: id_commande, date_commande, statut
Écrivez en syntaxe Mocodo le MCD : PRODUIT (id_produit, nom, prix) appartient à une seule CATEGORIE (id_categorie, nom) ; une catégorie a 0 ou plusieurs produits.
CATEGORIE: id_categorie, nom APPARTENIR, 0N CATEGORIE, 11 PRODUIT PRODUIT: id_produit, nom, prix
Dans quel ordre fait-on ces actions dans MySQL Workbench : Forward Engineer, créer les tables dans le diagramme, File > New Model, relier les tables, ouvrir Add Diagram ?
1. File > New Model 2. Add Diagram 3. Créer les tables (colonnes, types, clé primaire) 4. Relier les tables (outil relation 1:n ou n:m) 5. Database > Forward Engineer : génère et exécute le script
L'outil a généré `id_ville INT NULL` dans la table client. D'après le MCD (CLIENT 0,1 — HABITER), est-ce juste ?
Oui : 0,1 veut dire « une ville au plus, et ce n'est pas obligatoire ». La clé étrangère peut donc être NULL. Avec 1,1, il faudrait NOT NULL.