MySQL-Workbench : créer graphiquement une base MySQL

Tout le monde, enfin un très grand nombre, connait le SGBDR très connu MySQL. Avec phpMyAdmin et Apache (ce qui donne WAMP bien souvent) il devient très simple à utiliser, créer une petite table, une petite relation, etc … Mais cela implique que tout est installé (phpmyadmin est un composant à part de MySQL) et surtout que vous maîtriser le SQL. Ici on va se servir d’un outil graphique pour créer nos tables et les administrer simplement (mais concepts Merise nécessaires) !

Cet article fait partie du thème « Outils de développeur » qui regroupe entre autre les articles sur MySQL Workbench.

Présentation:

MySQL-Workbench (ex-DB Designer) est un logiciel développé par Sun Microsystem (à qui appartient aussi MySQL). Pour information Sun a été mangé par Oracle, et Oracle détient Oracle-DB qui est simplement LA base de données réputée partout dans le monde sauf en Grèce. Alors il y a un débat sur l’avenir de MySQL, calmé ici, mais on passera outre (pas de politique on vous êtes en vacances !).

C’est un outil open-source(GPL) (pour la version Community Edition) disponible sur Windows, Linux, MacOS et surement Solaris (ils le disent pas mais bon …). Il faut noter que l’outil est graphique, ne nécessite pas de serveur Apache ou du language PHP mais juste d’une base de données MySQL. Concernant le panel des fonctionnalités on verra ici juste la création des tables avec l’outil graphique, la génération du SQL et l’ajout dans notre base (pro-ingénierie). Sinon il peut aussi vous montrer le schéma graphique d’une base existante, ou à partir de code SQL (reverse ingénierie), des outils d’analyse des bases (comparaison entre deux bases) un outils de requête et de correction, un outil pour la génération de la documentation (version payante) et une interface d’administration (visualisation du nombre de connections, du trafic, …).

Téléchargement:

Pour le téléchargement / l’installation c’est par ici (toute plateforme).

Man MySQL-Workbench:

L’interface:

Capture-MySQL Workbench

MySQL Workbench : page d’accueil

On distingue les trois parties :

« SQL Developpment » pour entrer des requêtes SQL,
« Data Modeling » pour créer nos bases de manière graphique,
et « Server Administration » pour gérer notre serveur.

Ici on verra juste la modélisation de notre base pour créer le code SQL (2).
La partie d’administration ce sera un autre article.

Bon comme vous le voyez je l’ai en anglais, ça ne me dérange pas, il existe peut être une version française mais ça me dérange de la chercher ! J’essaierais de traduire les termes mais ça peut ne pas correspondre exactement parce que je suis bien meilleur que les traducteurs de chez Sun voyons !

Création d’un nouveau schéma:

Allez pour commencer on clique sur « Create new ERR model » / « Créer un nouveau Modèle ERR » – On clique sur « Add Diagramm » / « Ajouter un Diagramme » et il nous ouvre un nouvel onglet. Sur la gauche en vertical on a les différents bouton et à gauche la visualisation avec le zoom, et la description des éléments (tables) dans le « Catalog« / « Catalogue« . A gauche on va se servir du curseur et de la main, le premier pour séléctionner, le second pour bouger dans le schéma. On utilisera « Place a New Table« / »Inserer une table » ainsi que les 6 derniers boutons pour les relations. Si on fait des fautes on prendra la gomme. (« Delete Object« / »Supprimer l’objet« ).

Création d’une table :

Allez on va créer une table utilisateur avec un id en clé primaire, et un libellé nom. Soit on utilise le bouton sur la gauche, soit le raccourci. Une nouvelle barre apparaît en haut, elle permet de dire notamment le moteur, ici on laissera InnoDB qui permet les relations entre les tables. On voit que le curseur de notre souris change, il positionnera la table à l’endroit où vous cliquerez. Un nouvel espace s’ouvrira en bas de page c’est ici que l’on va tout définir, petites images :

MySQLWB Creation Table

Création d’une table avec le choix du moteur de BD

Si le nouvel espace ne s’ouvre pas, double cliquer sur votre nouvelle table.

Edition d'une table avec MySQLWB

Edition d’une table avec MySQLWB

On a en dessous une dernière barre contenant plusieurs onglets, les plus importants sont :

« Table« / »Table » qui va nous permettre de définir le nom, le moteur (Engine) si on s’est trompé et la « Collation » ou le « charset », celui par défaut est bon, il gère les accents, mais si jamais vous entreposez des données chinoises ou martiennes c’est ici qu’on change.

« Columns« / »Colonne » qui va permettre d’ajouter et éditer les colonnes, la clé primaire etc, …

« Foreign Key« / »Clé étrangère » pour ajouter et éditer les références aux autres tables.

Concernant notre table utilisateur, on va changer le nom de la table dans « Table » puis dans la gestion des colonnes, un champs idutilisateur sera ajouté avec déjà l’attribut clé primaire. Alors on rajoute un champs nom_utilisateur qu’on met en Varchar. On précise la longueur (le nombre de caractère, ici 25) dans les parenthèses. Pour changer il y a la flèche mais vous pouvez tapez dans la cellule il y a l’auto-complétion bien pratique. On peut constater que notre table se forme avec la description des champs et que notre clé primaire a été répertoriée dans la colonne « Indexes« / »Index« . Pour votre clé primaire vous pouvez cocher la case AI (pour Auto-Incrementation de la valeur) sauf si vous devez les administrer vous même.

MSQLWB Creation des colonnes

Création des colonnes

Pour la colonne il y adonc la clé primaire (PK), le not-null (NN), l’auto-incrémentation (AI) et la valeur par défaut (Défault). Plus à droite dans « Collation » vous pouvez changer le type d’encodage de la colonne.

Maintenant qu’on sait faire, on s’occupe d’une petite relation : une nouvelle table groupe avec un champs id_groupe (clé primaire, not nulle, AI) et un champs nom_groupe textuel de 30 caractères. Si vous savez faire ça, vous êtes des génies bons !

Création d’une relation:

Une fois que notre table est prête, on va créer une relation afin de dire que notre utilisateur appartient à un (et un seul) groupe. Par ailleurs un utilisateur est contraint d’appartenir à un groupe. En Merise on représente ça sous la forme :

|Utilisateur |— 1,1 ——[Appartient]—– 0,n —-| Groupe|

(Non c’est pas un super vaisseau impérial, c’est ma super flemme de rechercher une image sur internet). Ici on va donc cliquer sur le premier bouton 1:1 avec des tirets au dessus- L’autre 1:1 avec le trait continu va dire que la clé étrangère sera une clé primaire. Et comme c’est un utilisateur qui appartient à un groupe, après avoir cliqué sur notre ajout de relation on clique d’abord sur utilisateur et ensuite sur groupe et on obtient :

Création de relations avec MSQLWB

Création/édition d’une relation

Dans notre espace du bas on peut changer le nom de la relation (« Relationship« ) ou la cardinalité (« Foreign key« ).

Et là c’est le drame. « C’est quoi cette notation à trois roubles ? » me demanderez vous. Une fois j’ai réussit à faire un vrai schéma Merise mais c’était peut être avec la version payante.

Si votre schéma ne vous plait pas (ou à votre chef/prof) il y a des petites options dans le menu principal. Dans le Menu « Model » pour les sous menus « Object Notation » et « Relationship Notation » vous pouvez vous amuser avec les cases. Si vous réussissez à reproduire la notation Merise sous Community Edition merci de le poster en commentaire et on vous acclamera dans la rue.

Exportation – Création du SQL :

Maintenant qu’on a un beau graphique on va faire le code SQL allez  » CREATE TABLE … » Non c’était une blague, après avoir bien dessiné travaillé, le logiciel s’occupe du reste. On va allez dans le Menu « Files/Export/Forward Engineer SQL scipt« / »Fichier/Exporter/?Générer le script SQL?« . La on rentre le nom du fichier donc « script_sql.sql » on fait suivant et suivant et voilà, il nous met le résultat que vous pouvez copiez dans votre PHPmyAdmin.

En conclusion, ce logiciel est quand même bien utile pour la création de tables. Il prend en considération les options de MySQL (les moteurs DB, la réplication, les index, …) et ne m’a jamais posé de problème (sauf pour la notation des schémas). Un outil indispensable aussi car la correction des tables sur un schéma est beaucoup plus rapide que sur phpMyAdmin. Donnez vos commentaires et vos avis, la prochaine fois on parlera de liens direct avec la base de données pour mettre une claque a phpMyAdmin et de l’administration du serveur.

Bonne modélisation !

Partie 2 : Visualiser graphiquement une base MySQL existante

3 réflexions sur “MySQL-Workbench : créer graphiquement une base MySQL

  1. manudwarf dit :

    Salux !

    Moi aussi j’utilise cet outil (même pour modéliser mes bases postgres, c’est dire !) je tiens à te remercier pour cet article. J’y redirigerai peut-être ceux qui veulent essayer le Workbench 😉 Étant moi aussi étudiant j’en ai profité pour faire saliver les professeurs coincés avec leur vieux WinDesign 😀

    • Pour PostgreSQL il existe pgDesigner (sous Linux, sous Windows je sais pas). Mais personnellement l’affichage et la création avec pgAdmin3 est sympa. Par contre oui, WinDesign c’est loin pour moi :). Mais faut quand même pas oublier le SQL ! 😀

  2. Mias pourquoi copier de script final dans phpmyadmin ? On peut l’exécuter avec workbench … Quand on utilise workbench on a plus besoin de phpmyadmin.
    Personnellement je ne l’installe même plus sur mes serveurs web, workbench fait tout le bouleau et ça fait un souci de sécurité en moins ^^

Laisser un commentaire