BOSSModeler - Tutorial Datenbank-Modellierungstool für PostgreSQL Autor: Serdar Nurgün Datum: 16.01.2015 Version: 1.0
Inhaltsverzeichnis Inhaltsverzeichnis 1 Einleitung 1 2 Tutorial 2 2.1 Projekt erstellen................................... 2 2.2 Projekt umbennen.................................. 3 2.3 Projekt speichern................................... 3 2.4 Tabelle erstellen.................................... 4 2.5 Spalten zu den Tabellen hinzufügen......................... 4 2.6 Primary Key, NOT NULL oder Unique auswählen................. 5 2.7 CHECK-Constraint hinzufügen........................... 7 2.8 Relationen hinzufügen................................ 10 2.9 Tabellen automatisch anordnen........................... 14 2.10 Rekursiv binäre Relation hinzufügen........................ 14 2.11 Primärschlüssel-Kombination hinzufügen...................... 17 2.12 Unique-Kombination hinzufügen........................... 19 2.13 Datenmodell als Bild speichern........................... 21 2.14 Datenmodell als SQL-Skript speichern....................... 22 2.15 Datenmodell in Datenbank schreiben........................ 23 3 Abschluss 26 Seite II
Einleitung 1 Einleitung Dieses Tutorial dient als Einführung zur Handhabung des Datenbank-Modellierungstools BOSS- Modeler. Als Beispiel werden Sie das unten angegebene ER-Modell mit dem BOSSModeler nachbauen und dieses in eine Datenbank übertragen. Zu dem ER-Modell sind folgende SQL- Statements gegeben (aus der Datenbank-Übung von Prof. Dr. rer. nat. Katrin Brabender, Hochschule Bochum): - Mitarbeiter(MitNr,Name,Vorname,AbtNr,ChefNr,FktNr) mit Name, Vorname, FktNr NOT NULL - Funktion(FktNr, Name) mit Name NOT NULL, eindeutig - Abteilung(AbtNr, Name) mit Name NOT NULL, eindeutig - FunktionSchulung(FktNr,SNr) - Schulung(SNr, Titel, Dauer, Beschreibung) mit Titel, Dauer NOT NULL, Dauer>0 - Schulungstermin(STNr, SNr, Ort, DatumBeginn) mit SNr, Ort, DatumBeginn NOT NULL, (SNr, Ort, DatumBeginn) eindeutig Seite 1
2 Tutorial 2.1 Projekt erstellen Zunächst öffnen Sie den BOSSModeler. Als Erstes legen Sie ein neues Projekt an, um dort ein Datenbankmodell zu erstellen. Dies können Sie entweder wie unten im Bild mit Hilfe des ersten Icons machen oder unter dem Menüpunkt [Datei - Neu]. Nun haben Sie ein leeres Projekt vor sich. Sie haben die Möglichkeit, an verschiedenen Projekten gleichzeitig zu arbeiten und diese abzuspeichern, um in Zukunft nochmal die Datenmodelle bearbeiten zu können. Seite 2
2.2 Projekt umbennen Mit einem Rechtsklick auf den Tab des geöffneten Projekts haben Sie verschiedene Möglichkeiten zur Auswahl. Ich nutze die Funktion [Umbennen] um das Projekt Tutorial zu benennen. Ihnen ist frei überlassen, wie Sie ihr Projekt nennen möchten. 2.3 Projekt speichern Bevor es losgeht, zeige ich Ihnen noch wie man ein Projekt speichert. In der Menüleiste unter dem Punkt [Datei - Speichern] können Sie ihr Projekt speichern. Nun erscheint ein Fenster, in dem Sie einen Speicherort auswählen können. Außerdem können Sie ihr Projekt auch unter einem anderen Namen abspeichern. Seite 3
Nach dem Sie ihr Projekt gespeichert haben, erscheint ein Fenster mit der Meldung, dass ihr Projekt erfolgreich abgespeichert wurde. 2.4 Tabelle erstellen Klicken Sie auf das erste Icon in der linken Leiste um eine Tabelle zu erstellen und geben ihr den Namen Funktion. Eine Tabelle mit dem Namen Funktion wurde erstellt. 2.5 Spalten zu den Tabellen hinzufügen Damit Sie der Tabelle Funktion Spalten hinzufügen können, müssen Sie diese vorher mit einem Linksklick auf die Tabelle markieren. Ob eine Tabelle markiert ist, erkennen Sie an den gestrichelten Linien am Rand. Seite 4
Nun fügen Sie der Tabelle Funktion die gegebenen Spalten hinzu. Dazu klicken Sie in der linken Leiste auf das zweite Icon mit dem Zahnrad. Es erscheint ein Fenster, in dem Sie die Möglichkeiten haben, der Tabelle Spalten hinzuzufügen, Spalten zu löschen oder Unique-Kombinationen hinzuzufügen. Da zu Anfang keine Spalten vorhanden sind, sind die zwei anderen Funktionen erstmal nicht freigeschaltet. Fügen Sie die Spalten FktNr und Name hinzu. Wie Sie sehen können, hat die Tabelle Funktion nun zwei Spalten mit den Namen Fkt- Nr und Name. 2.6 Primary Key, NOT NULL oder Unique auswählen Um die Spalte FktNr als Primärschlüssel auszuwählen, wählen Sie das Kontrollkästchen mit der Bezeichnung PK (Primary Key in engl. Primärschlüssel) aus. Da ein Primärschlüssel immer NOT NULL und Unique(in engl. eindeutig) ist, wird dies automatisch ausgewählt. Seite 5
Nun sollten Sie den Datentyp der Spalte Name zum Datentyp text (Zeichenfolge mit variabler Länge) ändern, da ein Name normalerweise kein int (ganzzahliger Wert) ist. Außerdem sollten Sie das Kontrollkästchen NN(NOT NULL) anwählen, da es so in den SQL- Statements gefordert ist. Mit OK schließen Sie ihr Fenster und sehen nun, dass die Spalten FktNr und Name auch auf ihrer Arbeitsfläche in ihrer Tabelle Funktion zu sehen sind. Seite 6
Sie sollten nun in der Lage sein, die Tabelle Abteilung selber zu erstellen mit der Vorlage der Erstellung der Tabelle Funktion. Deswegen überspringe ich diesen Schritt und erstelle nun die Tabelle Schulung. Sie sollten zum jetzigen Zeitpunkt das Gleiche wie ich vor Ihnen haben. 2.7 CHECK-Constraint hinzufügen Nun erstellen Sie eine Tabelle mit dem Namen Schulung. Seite 7
Die Tabelle Schulung wurde erstellt. Jetzt fügen Sie der Tabelle, wie in den SQL-Statements gewünscht, die Spalten SNr, Titel, Dauer und Beschreibung hinzu. Als nächstes fügen Sie den Primärschlüssel SNr hinzu. Außerdem fügen Sie bitte die Spalten Titel, Dauer und Beschreibung hinzu, die NOT NULL sein sollen. Die Spalten Titel und Beschreibung haben den Datentyp text und die Spalte Dauer den Datentyp integer. Zusätzlich soll die Spalte Dauer eine Check-Bedingung haben. Der Wert der Dauer soll Seite 8
größer 0 sein. Dies tragen Sie in die Spalte Check wie folgt ein. Sie sind nun fertig mit der Tabelle Schulung und bestätigen dies mit OK. Seite 9
Sie haben nun alle Tabellen erstellt, die keine Fremdschlüssel haben. 2.8 Relationen hinzufügen Sie erstellen jetzt die Tabelle Mitarbeiter und fügen die Spalten MitNr, Name und Vorname hinzu. Außerdem fügen Sie die Fremdschlüssel AbtNr, ChefNr und FktNr mit Relationen ein. Jetzt fügen Sie eine Relation hinzu. Dazu klicken Sie links an der Leiste auf das dritte Icon. Seite 10
Es öffnet sich folgendes Fenster. Nun wählen Sie zunächst die Tabelle Mitarbeiter und die Tabelle Abteilung aus. Anhand des ER-Modells können Sie ablesen, dass ein Mitarbeiter eine Funktion haben MUSS und dass eine Funktion mehrere Mitarbeiter haben kann. Sie wählen also aus, dass ein Mitarbeiter eine Funktion haben muss. Seite 11
Außerdem wählen Sie aus, dass eine Funktion mehrere (der Buchstabe N) Mitarbeiter haben kann. Um zu überprüfen, ob alles korrekt angewählt wurde, können Sie rechts oben auf das Kästchen mit dem i klicken und es erscheint ein Fenster mit Information zur Relation. Wie man sehen kann, wird genau das angegeben, was Sie haben wollten. Seite 12
Klicken Sie auf Relation hinzufügen um die Relation ihrem Datenmodell hinzuzufügen. Sie erhalten eine Nachricht, dass die Relation erfolgreich hinzugefügt wurde. Sie sollten nun ein ähnliches Bild vor Ihnen haben. Seite 13
2.9 Tabellen automatisch anordnen Falls Relationen oder Tabellen sich gegenseitig überlappen, können Sie diese automatisch anordnen lassen. Unter dem Menüpunkt [Optionen] finden Sie die Funktion [Tabellen automatisch ausrichten]. 2.10 Rekursiv binäre Relation hinzufügen Nun fügen Sie eine rekursiv binäre Relation ein, da die ChefNr als Fremdschlüssel auf den Primärschlüssel MitNr abgebildet ist, da der Chef selbst auch ein Mitarbeiter ist. Wie Sie von unserem ER-Modell ablesen können, kann ein Mitarbeiter mehrere Mitarbeiter haben und ein Mitarbeiter kann nur einen Mitarbeiter haben. Fügen Sie dies mit Hilfe des [Relationen hinzufügen Fensters] ein. Seite 14
Sie werden gefragt, ob eine Transformation erwünscht ist. Wählen Sie Nein aus. Sie haben nun erfolgreich eine rekursiv binäre Relation zu der Tabelle Mitarbeiter hinzugefügt. Dadurch ist es möglich, dass zum Beispiel ein Abteilungsleiter mehrere Mitarbeiter haben kann oder einen Chef haben kann. Nun fügen Sie die Relation zwischen den Tabellen Mitarbeiter und Abteilung ein. Wie Sie vom ER-Modell ablesen können, muss ein Mitarbeiter zu einer Abteilung gehören. Eine Seite 15
Abteilung muss mindestens einen Mitarbeiter haben, da Sie ansonsten nicht bestehen kann. Nun werden Sie gefragt, ob Sie den Fremdschlüssel in die Tabelle Mitarbeiter hinzufügen wollen. Dies bestätigen Sie mit Ja. Als Hinweis bekommen Sie angezeigt, dass Sie für die Umsetzung der 1:1 Muss-Muss Relation ein Trigger erzeugen müssen. Sie haben nun alle Relationen zwischen der Tabelle Mitarbeiter und den Tabellen zu den zugehörigen Fremdschlüsseln hinzugefügt. Seite 16
2.11 Primärschlüssel-Kombination hinzufügen Nun erstellen Sie die Tabelle FunktionSchulung, die als Primärschlüssel eine Kombination aus zwei Fremdschlüsseln besitzt. Dazu müssen wir zwei Relationen erstellen. Eine Relation zwischen der Tabelle FunktionSchulung und der Tabelle Funktion. Eine Funktion kann mehrere FunktionSchulung haben und eine FunktionSchulung muss eine Funktion haben um zu bestehen. Und noch eine Relation zwischen der Tabelle FunktionSchulung der Tabelle Schulung mit denselben Bedingungen, sprich dass eine Schulung mehrere FunktionSchulung haben kann und eine FunktionSchulung eine Schulung haben muss. Da die Tabelle FunktionSchulung ohne die anderen beiden Tabellen nicht bestehen kann, wählen Sie sie als schwache Entität aus. Seite 17
Nun müssen Sie die Fremdschlüssel FktNr und SNr noch als Primärschlüsselkombination anwählen. Dazu wählen Sie die Tabelle FunktionSchulung aus und bearbeiten Sie. Wählen Sie bei beiden Spalten die Kontrollkästchen PK aus und bestätigen Sie dies mit Ok. Zuletzt müssen Sie noch die Tabelle Schulungstermin erstellen. Seite 18
2.12 Unique-Kombination hinzufügen Das Anlegen der Tabelle und der Attribute überspringe ich und gehe sofort zum Anlegen der Unique-Kombinationen. Wenn Sie die Relation zwischen Schulung und Schulungstermin angelegt haben und die Spalten hinzugefügt haben, sollte ihre Tabelle Schulungstermin wie folgt aussehen. Nun fügen Sie eine Unique-Kombination hinzu. Laut SQL-Statements soll die Kombination aus SNr, Ort und DatumBeginn eindeutig sein. Dazu klicken Sie auf Unique-Kombination. Seite 19
Es erscheint ein Fenster, in dem alle Unique-Kombinationen zu der aktuellen Tabelle angezeigt werden. Klicken Sie auf [Neue Unique-Kombination] um eine hinzuzufügen. Geben Sie dieser Unique-Kombination den Namen UC1 und bestätigen den Namen. Es wird die Unique-Kombination UC1 hinzugefügt. Nun wählen Sie die Kontrollkästchen der Spalten aus, die Sie als Kombination eindeutig haben wollen. In unserem Fall wählen Sie STNr, Ort und DatumBeginn aus. Sie haben es geschafft! Sie haben das vorgegebene ER-Modell mit den angegebenen SQL- Statements erstellt. Seite 20
2.13 Datenmodell als Bild speichern Der BOSSModeler bietet Ihnen die Möglichkeit, das von Ihnen erstellte Datenmodell als Bild abzuspeichern. Die Funktion dazu finden Sie unter dem Menüpunkt [Export - Als Bild speichern]. Es erscheint ein Fenster, in dem Ihnen die Möglichkeit gegeben wird, die Bilddatei unter einem anderen Datentyp und einem anderen Namen abzuspeichern. Seite 21
2.14 Datenmodell als SQL-Skript speichern Unter dem Menüpunkt [Export - Als SQL-Skript speichern] haben Sie die Möglichkeit, das von Ihnen erstellte Datenmodell als SQL-Skript abspeichern zu lassen. Zum Erstellen des SQL-Skripts müssen Sie dem Schema einen Namen geben. Ich wähle das Standard-Schema public. Daraufhin werden Sie gefragt, ob Sie die Groß- und Kleinschreibung der Tabellen- und Spaltennamen in der Datenbank beibehalten möchten. Dies bestätigen Sie mit Ja, falls gewünscht. Nachdem Sie den Speicherort ausgewählt und das SQL-Skript gespeichert haben, bekommen Seite 22
Sie eine Meldung, dass das SQL-Skript erfolgreich erstellt wurde. 2.15 Datenmodell in Datenbank schreiben Ich zeige Ihnen nun wie Sie ihr frisch erstelltes Datenmodell in ihre Datenbank übertragen. Dazu klicken Sie auf den Menüpunkt [Export - Projekt in die Datenbank schreiben]. Seite 23
Es erscheint ein Fenster, in das Sie ihre Daten eingeben müssen, um sich zunächst mit der Datenbank zu verbinden. Nach Eingabe bestätigen Sie dies mit einem Klick auf Verbinden. Nun können Sie entscheiden ob Sie in eine vorhandene oder neue Datenbank und in ein vorhandenes leeres oder ein neues Schema schreiben möchten oder nicht. Ich habe die vorhandene Datenbank postgres mittels Checkbox ausgewählt und bestätige dies mit einem Klick auf den Button In Datenbank schreiben. Falls das Schema leer gelassen wird, wird in das Standard-Schema public geschrieben. Sie werden gefragt, ob Sie die Groß- und Kleinschreibung der Tabellen- und Spaltennamen in der Datenbank beibehalten möchten. Dies bestätigen Sie mit Ja, falls gewünscht. Seite 24
Sie können der Informationsleiste ganz unten entnehmen, ob ihr Datenmodell erfolgreich in ihre Datenbank geschrieben wurde. Seite 25
Abschluss 3 Abschluss Ich hoffe ich konnte Ihnen mit diesem Tutorial helfen, sich besser mit dem Programm zurechtzufinden. Bei Fragen und Anregungen können Sie uns per E-Mail kontaktieren: BOSSModeler@hsbochum.de Seite 26