Berufliche Schulen Alle Schularten Modellierung von Datenbanken Landesinstitut für Schulentwicklung MySQL Workbench Ein einfaches Werkzeug zur grafischen Modellierung von Datenbanken www.ls-bw.de best@ls.kv.bwl.de Qualitätsentwicklung und Evaluation Schulentwicklung und empirische Bildungsforschung Bildungspläne Stuttgart 2011
Redaktionelle Bearbeitung Autor: Ulrich Stark, LS Stuttgart Stand: Juni 2011 Impressum Herausgeber: Druck und Vertrieb: Urheberrecht: Landesinstitut für Schulentwicklung (LS) Heilbronner Str. 172, 70191 Stuttgart Fon: 0711 6642-0 Internet: www.ls-bw.de E-Mail: best@ls.kv.bwl.de Landesinstitut für Schulentwicklung (LS) Heilbronner Str. 172, 70191 Stuttgart Fax 0711 6642-1099 Fon: 0711 66 42-1203 oder -1204 E-Mail: best@ls.kv.bwl.de Inhalte dieses Heftes dürfen für unterrichtliche Zwecke in den Schulen und Hochschulen des Landes Baden-Württemberg vervielfältigt werden. Jede darüber hinausgehende fotomechanische oder anderweitig technisch mögliche Reproduktion ist nur mit Genehmigung des Herausgebers möglich. Soweit die vorliegende Publikation Nachdrucke enthält, wurden dafür nach bestem Wissen und Gewissen Lizenzen eingeholt. Die Urheberrechte der Copyrightinhaber werden ausdrücklich anerkannt. Sollten dennoch in einzelnen Fällen Urheberrechte nicht berücksichtigt worden sein, wenden Sie sich bitte an den Herausgeber. Bei weiteren Vervielfältigungen müssen die Rechte der Urheber beachtet bzw. deren Genehmigung eingeholt werden. Landesinstitut für Schulentwicklung, Stuttgart 2011
Landesinstitut für Schulentwicklung Datenbankmodellierung mit der MySQL Workbench Modellierung des Projekts Fahrrad Nachdem die Struktur der Datenbank erstellt wurde, kann diese in ein Datenbankmanagementsystem übertragen werden. Nach Abschluss der Modellierung liegen das ER-Diagramm und das Relationenmodell vor. Darin sind die Entitätstypen, also die Strukturen der Tabellen mit den Attributen, deren Datentypen und die Beziehungen festgelegt. Das ER-Diagramm und das Relationenmodell wurden der LS - Handreichung Relationale Datenbanken entnommen. Relationenmodell Kunden Wohnorte Fahrraeder Vermietungen Hersteller (Kundennr, Name, Vorname, Strasse, Ortnr) (Ortnr, PLZ, Ort) (Fahrradnr, Bezeichnung, Rahmennummer, Tagesmietpreis, Wert, Kaufdatum, Herstellernr) (Vermietnr, von, bis, Fahrradnr, Kundennr) (Herstellernr, Herstellername, Email) 3
Datenbankmodellierung Datenbank erzeugen Die Anleitung beschreibt das Vorgehen mit der MySQL Workbench. Für die Modellierung der Datenbank muss keine Verbindung zum Datenbankserver bestehen. Das Programm erzeugt ein SQL-Skript, welches in der Zwischenablage oder als Skriptdatei *.sql auf dem Datenträger abgespeichert wird. Die Skriptdatei wird später im MySQL Query Browser aus der Zwischenablage eingefügt oder als gespeicherte Datei geöffnet und anschließend auf den Datenbankserver übertragen. Die Abfragen der Datenbank werden ebenfalls mit dem MySQL Query Browser durchgeführt. Nach dem Starten des Programms erscheint folgendes Fenster: 4
Landesinstitut für Schulentwicklung Die Workbench enthält die drei Bereiche SQL Development, Data Modeling und Server Administration. Wir verwenden nur den Bereich Data Modeling zur grafischen Modellierung einer Datenbank. Um eine neue Datenbank zu modellieren, wählen wir: Create New EER Model Es entsteht bei den Physical Schemata eine neue Datenbank mit dem Namen mydb, ein MySQL-Schema. Im Kontextmenu (rechte Maustaste) ruft man nun Edit Schema auf und kann unten für die Datenbank einen Namen vergeben. Die Datenbank (das Schema) bekommt den Namen fahrrad. Die hier eventuell auftretende Frage (Rename all schema occurrences?) nach der Umbenennung beantwortet man mit Ja. 5
Datenbankmodellierung Das Modell wird mit File -> Save Model gespeichert. Es erhält ebenfalls den Namen fahrrad. Tabellen definieren Nun kann man zwei Wege einschlagen: Man modelliert die Datenbank direkt im grafischen Modus. Man modelliert die Datenbank über die Menübefehle und kontrolliert das Ergebnis im grafischen Modus. Wir gehen hier den ersten Weg. Mit Add Diagram öffnet sich das Fenster EER-Diagram. Hier kann nochmals die Frage nach der Umbenennung auftreten, die man mit Ja beantwortet. 6
Landesinstitut für Schulentwicklung Links in der Werkzeugleiste wählt man Place a New Table und platziert die Tabelle im Diagrammfenster Mit dem Kontextmenü Edit Table öffnet sich unten ein Register mit den Tabelleneigenschaften. Dieses Fenster erreicht man auch, wenn man nicht über den grafischen Modus geht und mit Add Table direkt aus dem Register MySQL-Model im Fenster Model overview eine neue Tabelle anlegt. 7
Datenbankmodellierung Die Tabelle bekommt den Namen Kunden Mit ENTER Ü gelangt man direkt in das Register Columns. Hier werden die Attribute der Tabelle festgelegt. Der vom Programm vorgegebene Primärschlüssel idkunden vom Typ INT wird entsprechend der Vorgaben in der Handreichung Relationale Datenbanken in Kundennr mit dem Datentyp VARCHAR(5) umbenannt, dazu in das Feld klicken. Entsprechend werden nach dem Relationenmodell die weiteren Attribute festgelegt. Wichtig ist hier, dass das Häkchen bei Pk (Belongs to primary key) für den Primärschlüssel und NN (not Null) gesetzt ist. Fehlt das Häkchen bei Pk, so können später keine Beziehungen definiert werden. 8
Landesinstitut für Schulentwicklung Ebenso wird die Tabelle Wohnorte definiert. Nach dem Relationenmodell werden die weiteren Tabellen definiert. Beim Eintragen der Attribute springt man mit der Tabulatortaste T von Feld zu Feld. Bei Mausbedienung in das Feld klicken, bis der blaue Hintergrund verschwindet, dann kann man in die Felder schreiben. 9
Datenbankmodellierung Beziehungen definieren Zwischen Kunden und Wohnort besteht eine Beziehung N zu 1. In der Tabelle Kunden ist der Primärschlüssel die Kundennr und die Ortnr ein Fremdschlüssel. Die Ortnr ist Primärschlüssel in der Tabelle Wohnorte. Man wählt mit die Tabelle Kunden aus, wählt das Kontextmenü Edit Table und dort das Register Foreign Keys. Dort trägt man den Fremdschlüssel Foreign Key Name Ortnr ein und wählt als Referenced Table fahrrad. Wohnorte. Als Column wird Ortnr markiert. Referenced Column 10
Landesinstitut für Schulentwicklung Die Beziehung wird im EER-Diagramm angezeigt. Die Definition einer Beziehung auf diesem Weg funktioniert nur, wenn die Schlüssel richtig angelegt sind und die Datentypen der Schlüssel genau übereinstimmen. Hier muss zum Beispiel die Ortnr in der Tabelle Wohnorte Primärschlüssel und vom Typ INT sein. In der Tabelle Kunden muss es schon ein passendes Attribut (möglichst mit dem Namen Ortnr) vom selben Typ INT geben. Auch der Typ CHAR und VARCHAR passt nicht zusammen. (Diese Fehler erkennt man oft nicht auf den ersten Blick.) Entsprechend werden die weiteren Beziehungen festgelegt. Die über die Beziehungen verknüpften Attribute werden hervorgehoben, wenn man mit der Maus auf die Tabellen oder Beziehungen zeigt. 11
Datenbankmodellierung Beziehungen grafisch im Diagramm definieren Die Beziehungen können auch grafisch direkt im Diagramm festgelegt werden. Allerdings dürfen dazu in den Tabellen die Attribute der Fremdschlüssel noch nicht vorhanden sein, da das Programm diese neu anlegt. Man lässt diese Attribute bei der Definition der Tabellen zunächst weg. In Kunden fehlt dann die Ortnr, in Vermietungen die Kundennr und die Fahrradnr und in Fahrraeder die Herstellernr. Die Tabelle Kunden hat dann folgende Struktur: 12
Landesinstitut für Schulentwicklung Die Tabelle Wohnorte bleibt unverändert. Zwischen Kunden und Wohnort besteht eine Beziehung N zu 1. In der Tabelle Kunden ist der Primärschlüssel die Kundennr. Die Ortnr ist Primärschlüssel in der Tabelle Wohnort. Die Tabelle Kunden erhält einen Fremdschlüssel, der auf Ortnr in der Tabelle Wohnort verweist. Dazu wählt man in der Werkzeugleiste links die 1 : n Verbindung. Dann klickt man mit der Maus zuerst in die Tabelle Kunden, also die N Seite. Danach klickt man in der Tabelle Wohnort direkt auf den Primärschlüssel Ortnr. 13
Datenbankmodellierung Die Beziehung ist hergestellt und in der Tabelle Kunden ist ein Fremdschlüssel Wohnort_Ortnr entstanden. 14
Landesinstitut für Schulentwicklung Das fertige ER-Diagramm mit den Beziehungen: Im Unterschied zum ersten Weg werden hier die Namen der Fremdschlüssel vom Programm vergeben. 15
Datenbankmodellierung Das Ergebnis der Modellierung in ein SQL-Skript umwandeln und an den Datenbankserver übertragen (Forward Engineering) Mit dem Menü Database -> Forward Engineering Erzeugt man das SQL Skript. Beim nächsten Dialogfenster klickt man Next und noch einmal Next. 16
Landesinstitut für Schulentwicklung Und erhält das fertige SQL Skript. Dieses Skript kann man nun in einer Datei speichern. (Dateiname z. B.: fahrrad.sql) Oder in die Zwischenablage kopieren und direkt in den Query Browser übernehmen. 17
Datenbankmodellierung Wir wählen den Weg über den My SQL Query Browser und öffnen dort das gespeicherte Skript fahrrad.sql. Server Host: localhost Nutzername: root kein Passwort 18
Landesinstitut für Schulentwicklung Skript ausführen. Die Datenbank erscheint im Fenster der Schemata. Mit den schwarzen Pfeilen kann man jeweils die nächste Ebene aufklappen. Die weitere Bearbeitung (SQL - Abfragen) erfolgt ebenso mit dem MySQL Query Browser. 19