Création visuelle de base de données avec MySQL Workbench

Dans le tutoriel d'aujourd'hui, vous allez apprendre à utiliser un utilitaire de modélisation de base de données pour dessiner un diagramme de base de données et générer automatiquement du code SQL. Plus précisément, nous verrons comment utiliser MySQL Workbench, un outil de conception de bases de données visuel multiplate-forme..

Qu'est-ce que MySQL Workbench??

MySQL Workbench est un puissant outil développé par MySQL avec trois principaux domaines de fonctionnalités:

  • Développement SQL: Remplace le navigateur de requêtes MySQL. Permet à l'utilisateur de se connecter à une base de données existante et de modifier et exécuter des requêtes SQL.
  • La modélisation des données: Conception et modélisation de bases de données visuelles complètes.
  • Administration des bases de données: Remplace l'administrateur MySQL. Interface graphique pour démarrer / arrêter les serveurs, créer des comptes utilisateurs, éditer des fichiers de configuration, etc..

Dans ce tutoriel, nous allons nous concentrer sur les La modélisation des données aspect pour créer une base de données à partir de zéro, puis jetez un coup d’œil rapide à l’éditeur SQL pour exécuter notre script SQL généré et créer la base de données dans MySQL.

MySQL Workbench est disponible pour Windows, Linux et Mac OSX. Il existe deux éditions différentes: la Community OSS Edition et le commercial édition standard. L'édition de la communauté est Open Source et sous licence GPL, comme vous le souhaitiez. Il est entièrement fonctionnel et est celui que nous utiliserons dans cet article. L'édition commerciale ajoute des fonctionnalités supplémentaires, telles que la validation de schéma et de modèle ou la génération de documentation.

Remarque: ce tutoriel est basé sur Community OSS Edition version 5.2 (5.2.16), actuellement en version bêta au moment de la rédaction (avril 2010)..

Planifier notre base de données

Pour apprendre à utiliser MySQL Workbench, nous allons utiliser une base de données très simple pour les classes en ligne. Supposons qu'un groupe d'enseignants veuille offrir des cours en ligne pour plusieurs matières, en utilisant Skype ou tout autre logiciel de vidéoconférence. Pour notre petit projet, nous avons décidé de stocker les informations suivantes:

En dessinant notre diagramme, nous devrons également connaître les relations entre ces groupes de données; alors nous ferions mieux de penser à cela maintenant!

  • Un enseignant peut enseigner plusieurs matières
  • Une matière peut être enseignée par plusieurs enseignants
  • Chaque classe a un seul enseignant
  • Un enseignant peut enseigner plusieurs cours
  • Un étudiant peut assister à plusieurs cours
  • Une classe a beaucoup d'étudiants
  • Une classe peut avoir plusieurs heures (par semaine)
  • À un jour et à une heure donnés, il peut y avoir plusieurs cours
  • Un cours concerne un sujet
  • Une matière peut être enseignée dans plusieurs cours

À ce stade, nous avons toutes les informations nécessaires pour rencontrer la vedette de ce spectacle…

Envoyer dans MySQL Workbench

Il est temps de lancer Workbench. Dans la partie modélisation de l’écran d’accueil, nous cliquons sur 'Créer un nouveau modèle EER', et l'écran suivant apparaît:

Lorsque nous créons un nouveau modèle de base de données, il contient le schéma mydb par défaut. Nous pouvons le renommer et l'utiliser comme notre schéma de base de données. Un modèle de base de données peut avoir plusieurs schémas différents.

Le catalogue de droite montrera chaque élément de notre schéma et nous permettra de faire glisser et déposer des éléments dans des diagrammes si nécessaire.

Avoir les sections séparées pour les schémas physiques et les diagrammes EER et la possibilité d'inclure plusieurs schémas dans un modèle de base de données peut être source de confusion. La section suivante explique ces concepts et leur relation.

Concepts de clarification

Le schéma physique contient toutes les pièces nécessaires pour définir la base de données: tables, colonnes, types, index, contraintes, etc. C'est ce que nous définissons réellement. Chaque objet ajouté dans le modèle graphique apparaît également dans le schéma physique. C’est en fait un moyen visuel de définir notre schéma.

Nous pouvons avoir plusieurs schémas pour le même modèle de base de données de la même manière que nous pouvons avoir plusieurs bases de données sur un serveur MySQL. Chaque schéma sera une base de données MySQL. Par exemple, dans l'écran suivant, nous avons deux onglets de schéma:

Si nous générons le script SQL, nous aurons deux instructions CREATE DATABASE distinctes. En fait, nous aurons CREATE SCHEMA, qui est simplement un synonyme..

CREATE SCHEMA SI PAS EXISTS 'schema1'; CREATE SCHEMA SI PAS EXISTE 'schema2';

"EER signifie Relation d'entité étendue (ou améliorée). Les diagrammes EER ne sont qu'un moyen de modéliser les données et les relations entre les données à l'aide de symboles standard "

Ils seront listés en tant que bases de données au sein de l'hôte du serveur MySQL lors de l'utilisation de SHOW DATABASES.

Maintenant, qu'est-ce qu'un diagramme EER? EER signifie Relation d'entité étendue (ou améliorée)> Les diagrammes EER ne sont qu'un moyen de modéliser les données et les relations entre les données à l'aide de symboles standard. Les modèles EER peuvent être complexes, mais MySQL Workbench utilise uniquement un sous-ensemble de tous les éléments graphiques possibles, car l'objectif de ce diagramme (dans cet outil) est de mapper chaque élément sur le schéma physique..

Nous pouvons utiliser un diagramme EER pour définir la base de données entière ou seulement de petites pièces. Par exemple, nous pouvons avoir un schéma avec cinq tables définies, puis créer un nouveau diagramme pour définir deux autres tables à l'aide de l'éditeur visuel. Le diagramme ne contiendra que deux tables, mais ces deux tables seront également incluses dans le schéma, avec les cinq précédentes..

Créer nos tables

Revenons à notre exemple initial. nous devons renommer le schéma par défaut en double-cliquant sur le nom. À ce stade, nous avons deux possibilités: nous pouvons commencer à ajouter des tables à notre schéma physique à l’aide de l’icône Ajouter une table, ou nous pouvons créer un diagramme EER et y ajouter toutes les tables..

Je préfère ajouter un nouveau diagramme depuis le début et créer mon schéma de manière visuelle. cependant, afin de montrer comment faire avec les deux méthodes, nous allons créer les deux premières tables dans l'onglet Schéma, puis continuer avec le diagramme EER..

Lorsque vous cliquez sur le Ajouter une table icône, l'éditeur de table s'ouvre comme un onglet ci-dessous:

À l'aide de l'éditeur de table, nous changeons le nom de la table et passons à l'onglet Colonnes (dans les onglets situés sous l'éditeur) pour entrer nos colonnes. Nous pouvons choisir le type de données (il existe une liste déroulante avec tous les types de données MySQL), attribuer une valeur par défaut, si nécessaire, et nous avons sept cases à cocher pour marquer l'une des propriétés suivantes:

  • PK - Clé primaire
  • NN - Non null
  • UQ - Unique
  • BIN - Binaire
  • UN - Non signé
  • ZF - remplissage zéro
  • AI - Autocrement

Go Visual

C'est une façon d'ajouter nos tables, bien que nous puissions aussi les créer en utilisant les diagrammes. Si on clique sur le Ajouter un diagramme icône maintenant, nous allons commencer un nouveau diagramme vide, et ce n'est pas ce que nous voulons. Nous voulons que les deux tables que nous venons de créer soient dans le diagramme.

Si nous allons au menu, sélectionnez Modèle / Créer un diagramme à partir d'objets de catalogue, nous avons maintenant notre diagramme et sommes prêts à continuer.

Sélectionnez l'icône du tableau à gauche. le pointeur se transforme en une main avec une petite table. Ensuite, cliquez n'importe où dans le canevas pour créer un nouveau tableau..

Il suffit maintenant de double-cliquer sur la table et l’onglet Editeur apparaît pour éditer le nom, les colonnes, les types, etc. de la même manière que nous l’avions fait auparavant..

Après avoir entré les détails de la colonne pour les nouvelles tables, nous serons prêts à commencer à dessiner les relations.

Dessiner des relations

Dans la barre d’outils verticale à gauche, nous avons six outils disponibles pour créer des relations.

Ne vous inquiétez pas pour le dernier, nous l'expliquerons plus tard. Pour les relations 1: 1 et 1: n, nous avons deux types de symboles différents: identifiant et non identifiant. Qu'est-ce que ça veut dire?

Une relation est considérée comme identifiant quand une table dépend entièrement de l'autre pour exister.

Une relation est considérée comme identifiant quand une table dépend entièrement de l'autre pour exister. Une ligne dans cette table dépend d'une ligne dans l'autre table. Un exemple courant consiste à créer une table séparée pour stocker les téléphones des utilisateurs. Il peut être nécessaire de le placer dans une autre table, car il peut y avoir plusieurs téléphones pour un utilisateur, mais chaque ligne de cette table dépend entièrement de l'utilisateur. fait parti à l'utilisateur.

Vous devez savoir que les relations ont des implications. Si nous voulons créer les tables physiques dans MySQL, les relations doivent être mappées d'une manière ou d'une autre. Il existe quelques règles pour mapper les relations dans des tables:

  • 1: 1 relations. La clé primaire de l'une des tables est incluse en tant que clé étrangère dans l'autre table.
  • 1: n relations. La clé primaire de la table du côté '1' est ajoutée en tant que clé étrangère de la table du côté 'n'.
  • n: m relations. Une nouvelle table (join table) est créée. La clé primaire est composée des clés primaires des deux tables d'origine.

Les relations d'identification sont généralement utilisées pour les tables de jointure créées à partir d'une relation plusieurs à plusieurs. Ces nouvelles tables dépendent entièrement des deux tables originales.

De même, dans le cas des relations d'identification 1: 1 et 1: n, la clé étrangère introduite fera partie de la clé primaire de cette table, formant une clé primaire composite..

La bonne nouvelle est que MySQL Workbench connaît ces règles mieux que la plupart d'entre nous. Nous ne faisons que tracer nos lignes et les clés étrangères ou les tables de jointure sont automatiquement créées. Nous pouvons également choisir de le faire manuellement, comme nous le verrons bientôt.

Pour établir une relation, cliquez sur l'icône, puis sur les deux tables à associer. Pour les relations un-à-plusieurs, cliquez d'abord sur le tableau "Plusieurs", puis sur le tableau "un". Voyons comment le faire pour la relation n: m enseignants-matières et pour la classe d’enseignants 1: n.

Le nom par défaut attribué aux clés étrangères et aux tables de jointure peut être modifié globalement dans Onglet Edition / Préférences / Modèle, ou seulement pour le projet actuel Modèle / Options de modèle.

Si nous ne voulons pas que les tables et les clés étrangères soient générées de cette manière, nous pouvons utiliser le mystérieux "sixième symbole".

Le "sixième symbole" crée une relation à l'aide de colonnes existantes, ce qui signifie que vous avez déjà inclus les clés étrangères nécessaires dans vos tables et créé les tables de jointure nécessaires (tables de mappage n: m). Puisque nous avons déjà créé ces tables de jointure, nous n’avons pas besoin de relations n: m; seulement 1: n est disponible.

Lorsque toutes nos relations sont définies, notre diagramme devrait ressembler à ceci:

Sachez que nous utilisons la notation MySQL Workbench par défaut pour les diagrammes, mais vous pouvez la modifier dans Notation Modèle / Objet et notation de modèle / relation. Voici un exemple de notre modèle en notation classique:

À ce stade, notre modèle est prêt et nous pouvons générer le code SQL pour créer la base de données MySQL..

Générer du SQL

Sélectionner Fichier / Export / Forward Engineer SQL CREATE Script. Il ne reste que trois écrans d’assistant pour générer notre fichier.!


Nous avons même la possibilité de réviser et d'éditer le SQL généré avant de l'enregistrer:

Et c'est tout. En cliquant sur Terminer, le script SQL sera généré et enregistré. Maintenant, nous pouvons l'utiliser comme bon nous semble. Nous pouvons le charger en utilisant le client mysql en ligne de commande:

mysql> SOURCE scriptName.sql

Ou bien, nous pouvons utiliser MySQL Workbench pour terminer le travail, en vous connectant à notre serveur MySQL et en exécutant le script..

Se connecter à un serveur MySQL

Sélectionner Base de données / Gérer les connexions dans le menu, puis cliquez sur NOUVEAU.

Si vous ne souhaitez pas définir le mot de passe ici, vous serez invité à le saisir en cas de besoin. Cliquez sur "Tester la connexion" pour vérifier si vos paramètres sont corrects, puis cliquez sur fermer..

Maintenant, pour charger le script, nous allons utiliser l'éditeur SQL. Dans le menu principal, sélectionnez Base de données / base de données de requêtes; une fenêtre vous invite à sélectionner une connexion, puis l'onglet Editeur SQL s'ouvre.

Maintenant, cliquez sur l'icône Lightning pour exécuter le script SQL et votre base de données sera générée.!

Nous aurions également pu générer la base de données MySQL directement à partir du modèle, sans référencer le fichier réel, en utilisant Ingénieur base de données / Forward du menu; cependant, je trouve utile de générer le script et de l'utiliser ensuite comme je le souhaite.

Conclusion

MySQL Workbench est un outil impressionnant. Nous n’avons vu que quelques possibilités de base dans la partie modélisation de données et nous n’avons jeté un coup d’œil à l’éditeur SQL que dans la seconde moitié de ce didacticiel. Nous avons appris à créer visuellement une base de données et à dessiner des diagrammes pouvant être conservés à titre de documentation. Vous pouvez exporter les diagrammes sous forme de fichier PNG, SVg, PDF ou PostScript. Merci de m'avoir lu et dites-moi ce que vous en pensez!