(De-)Sign oder nicht (De-)Sign

Visuelles Datenbankdesign mit DBDesigner 4
Kommentare

Eine ganze Reihe von Faktoren spielt eine Rolle, wenn es darum geht, dass eine Abfrage in Form eines SQL-Statements von einer Datenbank in akzeptabler Zeit beantwortet wird. Die verwendete Hardware, das Betriebssystem des Servers, die Netzwerkanbindung, die verwendete Datenbanksoftware und eine den Anforderungen entsprechende Konfiguration des Datenbankservers können die Performance beeinflussen. Oft vergessen, aber nicht minder bedeutend, ist aber auch ein gutes Design des Datenmodells.

Dabei ist es ganz entscheidend, wozu die Datenbank genutzt werden soll. Dient sie einem operativen System, bei dem viele Anwender viele Datensätze in kurzen Zeitabständen schreiben, oder soll damit ein Informationssystem für das Management mit Daten versorgt werden? Dann werden nur wenige Anwender in diese Datenbank schreiben, aber große Datenmengen müssen gehandhabt und ggf. schnell summiert werden. Eventuell macht es sogar Sinn, bereits aggregierte Daten abzulegen und damit bewusst auch Redundanzen zu schaffen und zu denormalisieren.

Gutes Datenbankdesign kann also für den Erfolg entscheidend sein

Wie bei vielen komplexen Aufgabenstellungen können eine entsprechende Visualisierung und eine grafische Benutzeroberfläche, die die benötigten Werkzeuge zur Verfügung stellt, die Arbeit erleichtern. Im kommerziellen Umfeld gibt es eine Reihe von Datenbankdesignwerkzeugen wie beispielsweise PowerDesigner von Sybase, ERwin Data Modeler von Computer Associates oder Oracle Designer. Für Betreiber von MySQL-Datenbanken der Versionen 3 und 4 gibt es das Open- Source-Werkzeug „DBDesigner 4“, das den Bedingungen der GPL unterliegt. Die Vorzüge eines solchen Datenbankdesigntools liegen wie bereits erwähnt in der Visualisierung des Aufbaus eines Datenmodells und somit auch der anschaulichen Dokumentation der Strukturen. Wie sehen die einzelnen Tabellen aus, welches sind die Schlüsselfelder, wo bestehen Abhängigkeiten zu anderen Tabellen usw. sind Fragen, die mit Hilfe solcher Software leicht beantwortet werden können. Nach Abschluss der Arbeiten kann mit einem solchen Werkzeug automatisch ein Skript erstellt werden, mit dem dann die Tabellen, Indices, Keys usw. in der Datenbank angelegt werden können. Auch ist es möglich, die Strukturen eines bestehenden Datenbankmodells einzulesen und somit Reverse Engineering zu betreiben. Wartungs und Änderungsaufgaben lassen sich somit leichter in die Tat umsetzen, insbesondere wenn bislang vielleicht nur spärliche Dokumentation zur Verfügung stand.

Erste Eindrücke und Schritte

Nach dem Aufruf des Startskripts beziehungsweise Klick auf das Icon im Startmenü präsentiert sich die Oberfläche in einem übersichtlichen und von anderen Tools gewohnten Zustand. Im zentralen mittleren Teil befindet sich die Anzeige für das Datenmodell, die oben von der Menüleiste, am linken Rand von einer Toolbar und auf der rechten Seite von verschiedenen sog. Paletten umrahmt wird. Im unteren Teil gibt eine Statusleiste Auskunft darüber, ob das Datenmodell geändert wurde und ob es noch nicht auf Festplatte oder in der Datenbank gespeichert wurde. Wen das strahlende Weiß des Hintergrunds stört, muss sich leider damit abfinden, dass es sich nicht ändern lässt. Aber in gewisser Weise lässt sich die Arbeitsfläche doch eigenen Vorstellungen anpassen, aber dazu später mehr.

DBDesigner 4

Zum Erstellen einer Tabelle klickt man auf den entsprechenden Button in der Werkzeugleiste und klickt danach auf die Arbeitsfläche. Mit einem Rechtsklick öffnet sich das Kontextmenü und man gelangt in ein Editierfenster, in dem die Eigenschaften der Tabelle angegeben werden können.

Datenbankaufbau

Hier können recht komfortabel, intuitiv und schnell die einzelnen Spalten mit ihren Datentypen und einigen weiteren Optionen angelegt werden. Sollen beispielsweise alle Spaltennamen einen bestimmten Prefix bekommen, können alle Spalten markiert und über ein Kontextmenü ein Prefix in einem weiteren Dialogfenster angegeben werden. Ein wenig gewöhnungsbedürftig erscheint die Art der Angabe der Feldlängen. Lässt sich der Feldtyp noch relativ schnell aus einer Liste möglicher Typen auswählen, ist es nicht unbedingt sofort ersichtlich, dass in diesem Feld direkt die Länge angegeben werden muss. Aber sobald man es herausgefunden hat, hat man sich auch schon daran gewöhnt. Eine weitere Methode zum Anlegen der Tabellenspalten funktioniert über
Drag & Drop aus der Palette „Datatypes“, die auf der rechten Seite des DBDesigner 4 zu finden ist. Über diese Palette ist es im Übrigen sehr leicht möglich, größere Änderungen im gesamten Datenmodell vorzunehmen. Wenn sich beispielsweise die Länge eines Numeric-Feldes für das Jahr in allen betroffenen Tabellen von zwei auf vier Stellen ändern soll, genügt ein rechter Mausklick und die Auswahl der Option „Replace Datatype in tables“, um ein Dialogfenster zu öffnen, das diese Funktion bietet. Nach Anlage aller Tabellen lassen sich ähnlich wie bei den Tabellen mittels eines Relation-Editors die Beziehungen zwischen den Tabellen und die Abhängigkeiten zueinander definieren.

Der Editor für die Relationen

Eine performant arbeitende Datenbank kommt selten ohne Indices aus. Leider arbeitet der dafür zuständige Dialog nicht ganz fehlerfrei. Mittels Drag & Drop wie in der Dokumentation beschrieben wird immer nur der Primary Key bearbeitet, aber nicht der neu angelegte Index. Aber über die rechte Maustaste auf das jeweilige Tabellenfeld und Auswahl des Eintrags „Add column(s) to selected index“ lässt sich auch diese Hürde meistern.

Das Datenmodell inkl. integrierter Grafik

Aufmacherbild: Businessman with arms folded against road turning into arrow von Shutterstock / Urheberrecht:wavebreakmedia

[ header = Seite 2: Installation ]

Installation
Der DBDesigner 4 kann unter [1] heruntergeladen werden. Es werden verschiedene Varianten für Linux (RPM oder Compressed TAR) und Windows angeboten. Die Dateien sind zwischen 5 und 9 MB groß. Erfreulicherweise wird ebenfalls unter [1] auch eine Dokumentation angeboten, die den Einstieg in die Arbeit damit erleichtern dürfte. Mit 400 KB (HTML-Format) oder 550 KB (PDF) sollten auch „dünnere“ Leitungen in das Internet nicht überstrapaziert werden. Kenntnisse über Datenbankdesign sollten aber gegeben sein und werden vorausgesetzt. Die eigentliche Installation läuft beispielsweise unter OpenSuSE 10.0 relativ problemlos, aber nicht ganz reibungslos. Beim Aufruf des RPM-Paketmanagers bemängelt dieser eine fehlende Bibliothek namens libborunwind. so.6.0. Diese findet sich im Paket kylixlibs3-unwind-3.0-rh.4.i386.rpm, das zum Beispiel unter [2] heruntergeladen werden kann. Nach erfolgreicher Installation dieses Pakets steht der Inbetriebnahme des DBDesigner 4 nichts mehr im Weg, der sich im Verzeichnis /opt/DBDesigner4 mit 11,5 MB ausgebreitet und auch gleich mit einem Icon in das Startmenü von KDE unter „Programming“ eingetragen hat.

Das fertige Datenmodell kann optisch noch ein wenig verbessert werden, indem beispielsweise ein Firmenlogo hinzugefügt wird. Ein entsprechender Button in der Werkzeugleiste ermöglicht den Import einer Grafikdatei, die dann beliebig positioniert werden kann. Wem die Darstellung der Relationen (1:1, 1:n usw.) nicht verständlich genug erscheint, kann über den Display-Eintrag im Menü unter Notation verschiedene andere Darstellungsarten ausprobieren.

Datenbankdesign

Auf ähnliche Art und Weise lassen sich Kommentare im Datenmodell einbauen, die das Modell erläutern können und einiges verständlicher werden lassen. Je komplexer das Datenmodell wird, umso schwieriger wird es sicherlich, sich darin zurechtzufinden und sich einen Überblick über die Zusammenhänge zu verschaffen. Eventuell ist das gesuchte Objekt nicht mehr auf dem Bildschirm zu sehen und man muss erst scrollen, um zu ihm zu gelangen. Um schnell zu dem interessanten Bildausschnitt zu gelangen, bietet die Navigatorpalette auf der rechten Seite des DBDesigners die Möglichkeit, den Fokus mit der Maus zu verschieben und den jeweils ausgewählten Bildausschnitt zu vergrößern. Sollen Eigenschaften der Objekten des Datenmodells geändert werden, kann über die Palette „DB Model“ das gewünschte Objekt aus der angezeigten Liste mittels Doppelklick direkt angesteuert und der jeweilige Editor geöffnet werden.

Sollten die Paletten nach Meinung des Datenbankdesigners zu viel Platz der Arbeitsfläche verschwenden, lassen sie sich auch über einen Menüeintrag (Wind ows -> Dock Palettes) deaktivieren. Eine weitere Anpassungsmöglichkeit der Datenbankdesign Oberfläche erfolgt ebenfalls über den Menüeintrag Windows. Hinter dem Eintrag Style verbergen sich vier verschiedene Stile, die die Schrift bzw. das Aussehen der Fenster beeinflussen. Unter Options findet sich auch noch ein Eintrag DBDesigner Options, mit dem sich u.a. das Aussehen der Tabellenobjekte manipulieren lässt. Zwischendurch sollte man das Speichern des Datenmodells nicht vergessen. Der DBDesigner 4 speichert seine Daten im XML-Format. Dadurch können die Informationen auch von anderen Programmen verarbeitet und mit einem beliebigen Texteditor bearbeitet werden. Alternativ dazu kann das Datenmodell auch in der Datenbank gespeichert werden. Wenn für mehrere Tabellen die gleichen Typen (MyISAM, InnoDB o.ä.) gelten sollen, können auf der Oberfläche sog. „Regions“ über die Toolbar angelegt werden. Diese Felder werden farblich hinterlegt, um sie von den übrigen Tabellen des angezeigten Modells unterscheiden zu können. Über ein Kontextmenü kann dann der gewünschte Tabellentyp selektiert werden. Allgemein geltende Einstellungen für das gesamte Datenmodell werden im Menü unter Options definiert.

Abb. 6: Dialogfenster zum Einstellen der Erstelloptionen …

[ header = Seite 3: Let´s get physical ]

Let‘s get physical

Wenn die Designarbeiten beendet sind, kann das Datenmodell in der Datenbank über zwei verschiedene Vorgehensweisen
angelegt werden. Zum einen gibt es den klassischen Weg, indem man sich ein Erstellskript generieren lässt und dies
beispielsweise über das Zeilenkommando des Datenbankservers aufruft. Dazu wählt man im Dateimenü den Eintrag Export…aus. Die Option, das Skript in der Zwischenablage zu speichern, arbeitet leider fehlerhaft. Der Export in eine Datei hingegen funktioniert ohne Probleme. Diese Methode bietet auch die Option, nur eine bestimmte Selektion von Tabellen in das Skript aufzunehmen.

Abb. 7: … und das fertige Produkt

Falls die Tabellen in der Datenbank bereits existieren und sie zunächst gelöscht werden sollen, kann man über diesen Weg auch ein Drop-Table-Skript generieren lassen. Alternativ bietet der DBDesigner 4 auch die Möglichkeit der Datenbanksynchronisation. Dazu muss über einen Dialog zunächst eine Verbindung mit der Datenbank hergestellt werden. Leider funktionierte auch dieser Dialog im Test nicht einwandfrei, weil laut einer Fehlermeldung eine Bibliotheksdatei nicht geladen werden konnte, obwohl sie im entsprechenden Verzeichnis des DBDesigners zu finden war. Hier besteht für die Entwickler also noch Raum für Verbesserung in einem ansonsten erfreulich stabilen Tool. Über diesen Weg ist es zu einem späteren Zeitpunkt auch möglich, die Datenbankobjekte zu aktualisieren. Die Funktion vergleicht bereits existierende Objekte mit den anzulegenden und erstellt sie bzw. ändert die bestehenden. Zum bequemen Synchronisieren wurde auch ein Button in der Toolbar angelegt, der ebenfalls zu dem Dialog führt. Zuweilen begegnen einem Datenbankdesigner Datenbanken, die ohne ein grafisches Werkzeug erstellt wurden, weil sie vielleicht zunächst nur zu Testzwecken benötigt wurden, dann immer umfangreicher wurden und schlimmstenfalls am Ende eines Projekts sogar produktiv geschaltet wurden. Der DBDesigner 4 erleichtert ndie nachträgliche einfache Bearbeitung und Dokumentation durch eine Reverse-Engineering-Funktion. Diese liest die Strukturen eines bestehenden Datenbankmodells ein und erstellt eine entsprechende grafische Darstellung, die sich dann auch wieder bearbeiten und separat speichern lässt. Der Aufruf dieser Funktion erfolgt über einen Eintrag im Menü des Tools.

Abb. 8: Die Verbindung zur Datenbank wird über einen Dialog hergestellt

Abfragen

Nachdem die Modellierung abgeschlossen und die Tabellen mit Daten gefüllt wurden, können mit dem DBDesigner auch einfache SQL-Statements per Mausklick generiert werden. Darüber werden wahrscheinlich eingefleischte SQL-Experten nur verächtlich die Nase rümpfen, denn die angebotenen Funktionen sind nur rudimentärer Art und anspruchsvollere Abfragen lassen sich damit nicht unbedingt generieren. Insofern ist diese Funktionalität mehr als „nice to have“ zu betrachten. Die Stärken des Tools liegen aber eindeutig im Design von Datenbanken. Für Queries bietet beispielsweise der MySQL Query Browser wesentlich mehr Möglichkeiten.

Abb. 9: Auch einfache Queries lassen sich per Mausklick mit dem DBDesigner 4 erstellen
Fazit

Bis zum Erscheinen des offiziellen Design-Tools von MySQL, der sog. „MySQL Workbench“, von dem es zum jetzigen Zeitpunkt nur eine Alphaversion für Windows und Mac OS X gibt und eine Linux-Portierung noch nicht erfolgt ist, ist der DBDesigner 4 die erste Wahl für das Design von MySQL-Datenbanken auf Linux-Desktops. Leider wurden scheinbar die Webseiten des Projekts des Öfteren gehackt, was den Entwicklern ein wenig die Stimmung verhagelt hat und daher keine helfenden Einträge mehr im Forum [3] zu finden sind. Der Funktionsumfang des Tools kann sich durchaus mit dem kommerzieller Tools messen. In relativ kurzer Zeit lassen sich ansprechende Ergebnisse aufgrund der einfachen und intuitiven Bedienung erzielen. Entsprechende Kenntnisse über Datenbanken und Modelldesign allerdings vorausgesetzt. Die Installation gestaltet sich für Linux-Verhältnisse relativ einfach und unproblematisch. Für die wenigen Fehler, die bei der Arbeit mit dem Tool auftreten, gibt es fast immer Workarounds. Somit bleibt ein überwiegend positiver Eindruck zurück. Es ist davon auszugehen, dass viele der Funktionen auch in dem mit Spannung erwarteten Tool von MySQL AB zu finden sein werden.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -