Visuelle Datenbankerstellung mit MySQL Workbench

Im heutigen Tutorial erfahren Sie, wie Sie mit einem visuellen Datenbankmodellierungsdienstprogramm ein Datenbankdiagramm zeichnen und SQL automatisch generieren. Wir werden insbesondere die Verwendung von MySQL Workbench, einem plattformübergreifenden visuellen Datenbankentwurfstool, untersuchen.

Was ist MySQL Workbench??

MySQL Workbench ist ein leistungsfähiges Werkzeug, das von MySQL mit drei Hauptfunktionsbereichen entwickelt wurde:

  • SQL-Entwicklung: Ersetzt den MySQL-Abfragebrowser. Ermöglicht dem Benutzer, eine Verbindung zu einer vorhandenen Datenbank herzustellen und SQL-Abfragen zu bearbeiten und auszuführen.
  • Datenmodellierung: Vollständiges visuelles Datenbankdesign und Modellierung.
  • Datenbankverwaltung: Ersetzt den MySQL-Administrator. Grafische Oberfläche zum Starten / Stoppen von Servern, Erstellen von Benutzerkonten, Bearbeiten von Konfigurationsdateien usw.

In diesem Tutorial konzentrieren wir uns auf die Datenmodellierung Sie können eine Datenbank von Grund auf erstellen, und dann einen kurzen Blick auf den SQL-Editor werfen, um unser generiertes SQL-Skript auszuführen und die Datenbank in MySQL zu erstellen.

MySQL Workbench ist für Windows, Linux und Mac OSX verfügbar. Es gibt zwei verschiedene Ausgaben: die Community OSS Edition und die Werbung Standard Edition. Die Community Edition ist Open Source und GPL, wie Sie es erwarten. Es ist voll funktionsfähig und wird in diesem Artikel verwendet. Die kommerzielle Edition fügt einige zusätzliche Funktionen hinzu, wie beispielsweise die Validierung von Schemas und Modellen oder die Generierung von Dokumentation.

Hinweis: Dieses Tutorial basiert auf der Community OSS Edition Version 5.2 (5.2.16), die sich zum Zeitpunkt der Veröffentlichung (April 2010) in der Beta-Version befindet..

Planen unserer Datenbank

Um zu lernen, wie MySQL Workbench verwendet wird, verwenden wir als Beispiel eine sehr einfache Datenbank für Online-Klassen. Angenommen, eine Gruppe von Lehrern möchte Online-Kurse für mehrere Themen anbieten, die Skype oder eine andere Videokonferenzsoftware verwenden. Für unser kleines Projekt haben wir beschlossen, folgende Informationen zu speichern:

Beim Zeichnen unseres Diagramms müssen wir auch die Beziehungen zwischen diesen Datengruppen kennen. also denken wir jetzt besser darüber nach!

  • Ein Lehrer kann viele Fächer unterrichten
  • Ein Fach kann von vielen Lehrern unterrichtet werden
  • Jede Klasse hat nur einen Lehrer
  • Ein Lehrer kann viele Klassen unterrichten
  • Ein Schüler kann an vielen Kursen teilnehmen
  • Eine Klasse hat viele Schüler
  • Eine Klasse kann mehrere Stunden haben (in einer Woche)
  • An einem bestimmten Tag und zu einer Stunde kann es mehrere Klassen geben
  • In einer Klasse geht es um ein Thema
  • Ein Fach kann in vielen Klassen unterrichtet werden

An diesem Punkt haben wir alle Informationen, die wir benötigen, um den Star dieser Show zu treffen…

Senden Sie in MySQL Workbench

Es ist Zeit, Workbench zu starten. Im Datenmodellierungsteil des Startbildschirms klicken wir auf 'Neues EER-Modell erstellen', und der folgende Bildschirm erscheint:

Wenn wir ein neues Datenbankmodell erstellen, enthält es das Standardschema mydb. Wir können es umbenennen und als unser DB-Schema verwenden. Ein Datenbankmodell kann mehrere verschiedene Schemas haben.

Der Katalog auf der rechten Seite zeigt jedes Element in unserem Schema und ermöglicht es uns, Elemente bei Bedarf per Drag & Drop in Diagramme zu ziehen.

Die separaten Abschnitte für physische Schemata und EER-Diagramme sowie die Möglichkeit, mehrere Schemas in ein Datenbankmodell aufzunehmen, können verwirrend sein. Im nächsten Abschnitt werden diese Konzepte und ihre Zusammenhänge erläutert.

Konzepte erläutern

Das physische Schema enthält alle zum Definieren der Datenbank erforderlichen Teile: Tabellen, Spalten, Typen, Indizes, Einschränkungen usw. Dies ist, was wir wirklich definieren. Jedes im grafischen Modell hinzugefügte Objekt wird auch im physischen Schema angezeigt. Es ist tatsächlich ein visueller Weg, um unser Schema zu definieren.

Wir können mehrere Schemas für dasselbe Datenbankmodell verwenden, genauso wie wir mehrere Datenbanken in einem MySQL-Server haben können. Jedes Schema wird eine MySQL-Datenbank sein. Im nächsten Bildschirm haben wir beispielsweise zwei Schema-Registerkarten:

Wenn wir das SQL-Skript generieren, werden wir zwei separate CREATE DATABASE-Anweisungen haben - tatsächlich haben wir CREATE SCHEMA, was nur ein Synonym ist.

ERSTELLEN SIE SCHEMA, WENN NICHT 'schema1' vorhanden ist; ERSTELLEN SIE SCHEMA, WENN NICHT 'schema2' vorhanden ist;

"EER steht für Erweiterte (oder erweiterte) Entity-Beziehung. EER-Diagramme sind nur eine Möglichkeit, die Daten und die Beziehungen zwischen Daten mithilfe von Standardsymbolen zu modellieren. "

Sie werden als Datenbanken innerhalb des MySQL-Serverhosts aufgeführt, wenn Sie SHOW DATABASES verwenden.

Was ist nun ein EER-Diagramm? EER steht für Erweiterte (oder erweiterte) Entity-Beziehung>. EER-Diagramme sind nur eine Möglichkeit, die Daten und die Beziehungen zwischen Daten mithilfe von Standardsymbolen zu modellieren. EER-Modelle können komplex sein, MySQL Workbench verwendet jedoch nur eine Teilmenge aller möglichen grafischen Elemente, da der Zweck dieses Diagramms (in diesem Werkzeug) darin besteht, jedes Element dem physischen Schema zuzuordnen.

Wir können ein EER-Diagramm verwenden, um die gesamte Datenbank oder nur kleine Teile zu definieren. Wir können beispielsweise ein Schema mit fünf definierten Tabellen erstellen und dann ein neues Diagramm erstellen, um zwei weitere Tabellen mit dem visuellen Editor zu definieren. Das Diagramm enthält nur zwei Tabellen, aber diese beiden Tabellen werden zusammen mit den vorherigen fünf ebenfalls in das Schema aufgenommen.

Erstellen Sie unsere Tabellen

Zurück zu unserem ersten Beispiel; Wir müssen das Standardschema umbenennen, indem Sie auf den Namen doppelklicken. An diesem Punkt haben wir zwei Möglichkeiten: Wir können mit dem Symbol 'Tabelle hinzufügen' beginnen, Tabellen zu unserem physischen Schema hinzuzufügen, oder wir können ein EER-Diagramm starten und alle Tabellen dort hinzufügen.

Ich ziehe es vor, ein neues Diagramm von Anfang an hinzuzufügen und mein Schema visuell zu erstellen. Um jedoch zu zeigen, wie mit beiden Methoden vorgegangen wird, erstellen wir die ersten beiden Tabellen auf der Registerkarte "Schema" und fahren dann mit dem EER-Diagramm fort.

Wenn Sie auf klicken Tabelle hinzufügen Symbol, öffnet sich der Tabelleneditor als Registerkarte:

Mit dem Tabelleneditor ändern wir den Tabellennamen und wechseln zur Spaltenregisterkarte (in den Registerkarten unter dem Editor), um unsere Spalten einzugeben. Wir können den Datentyp auswählen (es gibt eine Dropdown-Liste mit allen MySQL-Datentypen), bei Bedarf einen Standardwert zuweisen und wir haben sieben Kontrollkästchen, um eine der folgenden Eigenschaften zu markieren:

  • PK - Primärschlüssel
  • NN - Nicht null
  • UQ - einzigartig
  • BIN - Binär
  • UNO - unsigniert
  • ZF - Nullfüllung
  • AI - Autoincrement

Gehe visuell

Dies ist eine Möglichkeit, unsere Tabellen hinzuzufügen, obwohl wir sie auch mithilfe der Diagramme erstellen können. Wenn wir auf klicken Diagramm hinzufügen icon jetzt, beginnen wir ein neues leeres Diagramm, und das wollen wir nicht. Wir möchten, dass die beiden Tabellen, die wir gerade erstellt haben, im Diagramm enthalten sind.

Wenn wir zum Menü gehen, wählen Sie Modell aus Katalogobjekten erstellen / erstellen, Jetzt haben wir unser Diagramm und können fortfahren.

Wähle das Tabellensymbol links aus. Der Zeiger ändert sich in eine Hand mit einer kleinen Tabelle. Klicken Sie anschließend auf eine beliebige Stelle in der Leinwand, um eine neue Tabelle zu erstellen.

Jetzt müssen Sie nur noch doppelt auf die Tabelle klicken und die Editor-Registerkarte erscheint, um Namen, Spalten, Typen usw. wie zuvor zu bearbeiten.

Nachdem Sie die Spaltendetails für die neuen Tabellen eingegeben haben, können Sie mit dem Zeichnen der Beziehungen beginnen.

Beziehungen zeichnen

In der vertikalen Symbolleiste links stehen sechs Werkzeuge zum Erstellen von Beziehungen zur Verfügung.

Mach dir keine Sorgen über den letzten, wir erklären es später. Für die 1: 1 und 1: n-Beziehungen gibt es zwei verschiedene Arten von Symbolen: Identifizieren und Nichtidentifizieren. Was bedeutet das?

Eine Beziehung wird als Identifikation angesehen, wenn eine Tabelle vollständig von der anderen abhängig ist, um zu existieren.

Eine Beziehung wird als Identifikation angesehen, wenn eine Tabelle vollständig von der anderen abhängig ist, um zu existieren. Eine Zeile in dieser Tabelle hängt von einer Zeile in der anderen Tabelle ab. Ein allgemeines Beispiel ist eine separate Tabelle zum Speichern von Telefonen für Benutzer. Es kann notwendig sein, es in einer anderen Tabelle zu haben, da es für einen Benutzer mehrere Telefone geben kann, aber jede Zeile in dieser Tabelle vollständig vom Benutzer abhängt gehört an den Benutzer.

Sie sollten wissen, dass Beziehungen einige Auswirkungen haben. Wenn Sie die physischen Tabellen in MySQL erstellen möchten, müssen die Beziehungen auf irgendeine Weise zugeordnet werden. Es gibt ein paar Regeln, um Beziehungen in Tabellen abzubilden:

  • 1: 1 Beziehungen. Der Primärschlüssel für eine der Tabellen ist als Fremdschlüssel in der anderen Tabelle enthalten.
  • 1: n Beziehungen. Der Primärschlüssel der Tabelle auf der "1" -Seite wird als Fremdschlüssel in der Tabelle auf der "N" -Seite hinzugefügt.
  • n: m Beziehungen. Eine neue Tabelle (Join-Tabelle) wird erstellt. Der Primärschlüssel setzt sich aus den Primärschlüsseln der beiden Originaltabellen zusammen.

Identifizierende Beziehungen werden normalerweise für die Join-Tabellen verwendet, die aus einer Many-to-Many-Beziehung erstellt werden. Diese neuen Tabellen sind vollständig von den beiden Originaltabellen abhängig.

Im Falle von 1: 1 und 1: n, die Beziehungen identifizieren, ist der eingeführte Fremdschlüssel Teil des Primärschlüssels für diese Tabelle und bildet einen zusammengesetzten Primärschlüssel.

Die gute Nachricht ist, dass MySQL Workbench diese Regeln besser kennt als die meisten von uns. Wir zeichnen einfach unsere Zeilen und die Fremdschlüssel oder Join-Tabellen werden automatisch erstellt. Wir können es auch manuell auswählen, wie wir gleich sehen werden.

Um eine Beziehung zu zeichnen, klicken Sie auf das Symbol und dann auf die beiden zu beziehenden Tabellen. Klicken Sie für Eins-zu-Viele-Beziehungen zuerst auf die "Viele" -Seitentabelle und dann auf die "Eins" -Seitentabelle. Mal sehen, wie es für die n: m Lehrer-Fächer-Beziehung und für die 1: n Lehrer-Klassen geht.

Der Standardname, der den Fremdschlüsseln und den Join-Tabellen zugewiesen wurde, kann global geändert werden Bearbeiten / Voreinstellungen / Registerkarte "Modell", oder nur für das vorliegende Projekt in Modell- / Modelloptionen.

Wenn wir nicht möchten, dass Tabellen und Fremdschlüssel auf diese Weise generiert werden, können wir das geheimnisvolle "sechste Symbol" verwenden.

Das "sechste Symbol" erstellt eine Beziehung mit vorhandenen Spalten. Dies bedeutet, dass Sie bereits die erforderlichen Fremdschlüssel in Ihre Tabellen aufgenommen und die erforderlichen Verknüpfungstabellen erstellt haben (n: m Mapping-Tabellen). Da wir diese Join-Tabellen bereits erstellt haben, benötigen wir keine n: m-Beziehungen. nur 1: n ist verfügbar.

Wenn wir alle unsere Beziehungen definiert haben, sollte unser Diagramm so aussehen:

Beachten Sie, dass wir für die Diagramme die standardmäßige MySQL Workbench-Notation verwendet haben. Sie können dies jedoch ändern Modell / Objektnotation und Modell- / Beziehungsnotation. Dies ist ein Beispiel unseres Modells in klassischer Notation:

An diesem Punkt ist unser Modell fertig und wir können die SQL generieren, um die MySQL-Datenbank zu erstellen.

SQL generieren

Wählen SQL-CREATE-Skript für Datei / Export / Forward Engineer. Wir sind nur drei Assistentenbildschirme vom Generieren unserer Datei entfernt!


Wir haben sogar die Möglichkeit, die generierte SQL vor dem Speichern zu überprüfen und zu bearbeiten:

Und das ist es. Wenn Sie auf Fertig stellen klicken, wird das SQL-Skript generiert und gespeichert. Nun können wir es beliebig nutzen. Wir können es mit dem Befehlszeilen-MySQL-Client laden:

mysql> SOURCE scriptName.sql

Oder Sie können MySQL Workbench verwenden, um die Arbeit abzuschließen, eine Verbindung zu unserem MySQL-Server herzustellen und das Skript auszuführen.

Verbindung zu einem MySQL Server

Wählen Datenbank / Verbindungen verwalten aus dem Menü und klicken Sie auf NEU.

Wenn Sie das Kennwort hier nicht festlegen möchten, werden Sie bei Bedarf dazu aufgefordert. Klicken Sie auf "Verbindung testen", um zu überprüfen, ob Ihre Parameter korrekt sind, und klicken Sie dann auf Schließen.

Um das Skript zu laden, verwenden wir den SQL-Editor. Im Hauptmenü wählen Sie Datenbank / Abfragedatenbank; In einem Fenster werden Sie aufgefordert, eine Verbindung auszuwählen. Die Registerkarte SQL-Editor wird geöffnet.

Klicken Sie nun auf das Blitzsymbol, um das SQL-Skript auszuführen, und Ihre Datenbank wird generiert!

Wir hätten die MySQL-Datenbank auch direkt aus dem Modell generieren können, ohne auf die eigentliche Datei zu verweisen Datenbank / Forward Engineer aus dem menü; Ich finde es jedoch nützlich, das Skript zu generieren und es dann wie gewünscht zu verwenden.

Fazit

MySQL Workbench ist ein beeindruckendes Werkzeug. Wir haben nur wenige grundlegende Möglichkeiten im Bereich der Datenmodellierung gesehen und nur den SQL-Editor in der zweiten Hälfte dieses Tutorials betrachtet. Wir haben gelernt, wie man eine Datenbank visuell erstellt und Diagramme erstellt, die als Dokumentation aufbewahrt werden können. Sie können die Diagramme als PNG-, SVg-, PDF- oder PostScript-Datei exportieren. Danke fürs Lesen und lass mich wissen, was du denkst!