Plan du site  
pixel
pixel

Articles - Étudiants SUPINFO

Concevoir une base de données avec MySQL Workbench

Par Christophe QUENTEL Publié le 28/10/2015 à 22:49:50 Noter cet article:
(0 votes)
Avis favorable du comité de lecture

Introduction

Aujourd'hui, la gestion des données est l'un des enjeux majeurs au sein de l'IT. Afin de pouvoir gérer les données d'utilisateurs, d'applications, de crawls, les systèmes de gestion de base de données (SGBD) doivent être les plus performants et optimisés en terme de temps de réponse mais également de sécurité. Les différentes solutions du marché répondent aux différents besoins des administrateurs, développeurs, ou plus généralement des entreprises. Les gros flux de données seront plutôt gérés par des bases de données non-relationnelles dites noSQL tels que MongoDB, Dynamo, CouchDB (qui stockent les données sous formes de paires clés-valeurs par exemple) comparitivement aux bases de données relationnelles tout aussi performantes, voir plus utilisées, qui répondent à d'autres besoins (MySQL, PostGreSQL, Oracle, SQL Server...)

> Le but est ici de présenter deux solutions gratuites, très connues, qui permettront de designer une base de données relationnelle afin de permettre de gérer par exemple les données d'un petit site, d'une petite application ou encore . Ces solutions sont :

MySQL : MySQL est un serveur de base de données Open Source.

MySQL Worbench : GUI permettant de totalement modéliser et de monitorer une base de données MySQL

MySQL Workbench est vraiment pratique puisque son interface user-friendly permet de schématiser à merveille tous les éléments dont on a besoin pour travailler avec une base de données. Nous survolerons donc les possibilités de travail avec Workbench.

Prérequis

• Une bonne maîtrise du langage SQL et de la méthode MERISE

• Avoir téléchargé et installé MySQL : https://www.mysql.fr/downloads/

• Avoir téléchargé et installé MySQL Workbench : http://dev.mysql.com/downloads/workbench/

Concevoir votre base de données avec WorkBench

Pour commencer

Avant toute chose, la première réflexion est de savoir quels types de données notre application/site aura besoin. Comment va-t-on les organiser ? Comment peut-on les classer sous forme d'entités ? Afin de faire cela, une feuille et un stylo suffiront. L'idée est de faire en sorte de schématiser vos données sous forme de tables, en faisant en sorte que les données soient le plus insécables possible (c'est à dire qu'on ne puisse plus subdiviser la donnée en deux - exemple : mettre le nom et le prénom dans un seul champ est une mauvaise idée). Une fois que vous avez une idée assez fixe du nombre de tables, du nombre de champs et de leur type, la conception sous WorkBench peut alors commencer.

Instancier une nouvelle connexion

Une fois Workbench ouvert, il faudra configurer une nouvelle connexion (qui nécessite donc d'avoir MySQL installé). Il faudra ensuite créer un nouveau modèle de données (équivalent d'une schéma de base de données), vous pourrez ensuite ajouter toutes les tables qu'il faut.

Ajouter et remplir les tables

Une fois qu'une table a été ajouté, Workbench permet d'ajouter un à un des champs aux tables, puis de les typer (lINT, VARCHAR, BOOL) en leur donnant une longueur maximale. Il est intéressant de noter que le typage doit être correctement choisi. Inutile de donner une longueur trop importante au champ "âge" de votre table "utilisateurs", un nombre à 2 chiffres suffira (INT(2)). La case AI signifie "Auto Increment", c'est à dire que si votre champ est de type INT, à chaque nouvel enregistrement dans la table, le champs de type INT sera incrémenté de 1 par rapport à la dernière valeur. La case UN permet d'indiquer si vous souhaitez ajouter une contrainte d'unicité à votre champ. Cochez-là et vous ne pourrez pas avoir deux enregistrements dont l'un des champs a une valeur identique à celui d'un autre enregistrement de la table.

Relier les tables entre-elles

Les tables ont maintenant été créées, il ne manque plus qu'à les mettre en relation les unes aux autres. C'est tout l'intérêt des bases de données relationnelles : pouvoir éviter la redondance de données, avoir une structure cohérente, et permettre une liaison logique des données entres les tables. Les contraintes d'intégrité permettent de modéliser ces relations. Il y en a deux grands types (bien qu'il en existe d'autres) : clé primaire et clé étrangère. Il est nécessaire que chaque table ait une clé primaire (qui sera généralement un identifiant unique) et que toute table possédant un champ déjà existant peut pointer vers une autre table avec sa clé étrangère afin de faire cette liaison. Ainsi, si le champ Par défaut, Workbench génère pour chaque table une clé primaire.

Ajouter des triggers

Ils ne sont pas nécessaires et sont défois mal supportés : les triggers MySQL (ou les déclencheurs). Ils permettent d'automatiser une base de données et sont vraiment très pratiques. Un peu comme en PL/SQL, il s'agit d'actions (DELETE, INSERT INTO, UPDATE...) qui seront effectuées au sein de la base de données si le trigger est activé. Par exemple, si vous souhaitez incrémenter un champs de type INT d'une table B lorsqu'un nouvel utilisateur est inséré en table A, vous devrez ainsi utiliser un trigger (ce qui vous épargnera une requête dans le code). Ainsi, à chaque nouvelle enregistrement/suppression/mise à jour d'une table, vous pourrez modifier le comportement de votre base de données ce qui est très pratique. Les triggers fonctionnent pour une table à la fois (on associera un ou plusieurs triggers à une table A, d'autres à une table B pour résumer).

Résultat

Voilà à quel résultat sympathique vous pourriez aboutir une fois que votre base de données a été modélisée. Vous pouvez schématisez différentes zones, déplacer vos tables dans l'espace, voir les différents liens entre les tables, les grouper mais également tester vos différentes requêtes.

Lancer votre base de données

Une fois que votre base de données a été complètement modélisée, vous pouvez alors la lancer directement sous MySQL Workbench, ou alors sur un serveur (Wampp/Mampp/Xampp) avec un MySQL ou encore chez un hébergeur. Vous avez la possibilité d'exporter le script SQL vous permettant de générer votre base de données (grâce à la tool "Forward Engineer Script"). Vous pouvez aussi importer un script SQL pour modéliser la base de données sous WorkBench ("Reverse Engineer SQL Script")

Votre modèle de données est maintenant viable. Vous pourrez ensuite communiquer avec votre base de données afin de pouvoir travailler en toute sérénité. Vous pourrez également visionner le temps d'exécution de vos requêtes et modifier votre structure en cas de besoin.

Conclusion

La base de données correspond à la base de votre application et est l'un des pilliers essentiels au bon fonctionnement de tout projet viable. L'utilisation de MySQL Workbench permet de mieux architecturer une base de données relationnelle et de mieux appréhender la maîtrise du SQL. Cet outil permet idéalement de concevoir de A à Z de manière simple et agréable une base de données.

> Explorer toutes les possibilités de Workbench : http://dev.mysql.com/doc/workbench/en/

A propos de SUPINFO | Contacts & adresses | Enseigner à SUPINFO | Presse | Conditions d'utilisation & Copyright | Respect de la vie privée | Investir
Logo de la société Cisco, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société IBM, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sun-Oracle, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Apple, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sybase, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Novell, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Intel, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Accenture, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société SAP, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Prometric, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Toeic, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo du IT Academy Program par Microsoft, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management

SUPINFO International University
Ecole d'Informatique - IT School
École Supérieure d'Informatique de Paris, leader en France
La Grande Ecole de l'informatique, du numérique et du management
Fondée en 1965, reconnue par l'État. Titre Bac+5 certifié au niveau I.
SUPINFO International University is globally operated by EDUCINVEST Belgium - Avenue Louise, 534 - 1050 Brussels