Automatisierung spart häufig nicht nur dröge Handarbeit, sondern bewahrt auch vor Flüchtigkeitsfehlern, wie sie nur Menschen machen. Beim Entwurf komplexer Datenbanken zahlt sich das aus.
Tabellen als Kästen, Verweise als verschiedene Pfeile – so genannte Entity-Relationship-Diagramme (ERD) haben sich für die Darstellung der Tabellenstruktur einer Datenbank etabliert. Zeichnen kann sie fast jede Grafiksoftware und manche – etwa Dia unter Linux – kommt dem Anwender sogar mit entsprechenden Paletten entgegen.
Allerdings: Eine reine Diagrammsoftware weiß nicht, welche Datentypen für welche Datenbank verwendbar sind oder welche Tabelle welche Schlüssel definiert. Entwurfsfehler wie falsche Bezüge oder unpassend typisierte Felder fallen ihr nicht auf. Vom Papier in den Rechner gelangt ein solches Modell auch nur per Hand, und das ist zeitaufwändig und fehlerträchtig. In einem iterativen Entwurfsprozess müsste der Entwickler die Datenbank zudem mehrfach händisch aktualisieren.
Das alles spart eine spezialisierte ERD-Software, jedenfalls im günstigsten Fall. Sie klopft die Diagramme schon beim Zeichnen auf Plausibilität ab, übersetzt sie automatisch in Statements der passenden DDL (Data Description Language), führt sie auf dem Datenbankserver aus, hält die so erzeugte Datenbank von da an synchron mit dem Modell und archiviert den Entwurf in einem neutralen Format.
Solche Software gibt es bei den Datenbankherstellern selbst oder aus deren Umfeld, etwa den Sybase Power Designer von Toolpark [1] oder den Oracle Designer [2] von Oracle oder ERwin von CA [3]. Das ist aber meist Windows-Software und außerdem nur selten ein Schnäppchen. Auch auf Open-Source-Seite finden sich Versuche, solche Projekte zu stemmen, aber völlig überzeugen kann davon noch keines. Am vielversprechendsten scheint Power Architect, ein Produkt des Google Summer of Code [4]. Zwar schwächelt das Tool in den grafischen Fächern, den Tabellenentwurf und Abgleich mit der Datenbank löst es aber gut.
Zudem gibt es auch für GPL-Datenbanken kommerzielle Modellierungssoftware wie die MySQL Workbench [5] und schließlich bieten sich datenbankneutrale Kaufprodukte zu moderaten Preisen an. Dazu gehören Data Architect von The Kompany [6] oder Dbwrench [7], der Protagonist dieses Artikels.
Rückwärts oder vorwärts
ERD-Tools kennen prinzipiell zwei Modi: Das Reverse Engineering, das eine bestehende Datenbank ausliest und in einem Diagramm abbildet, und das Forward Engineering, bei dem der Datenarchitekt zuerst das Diagramm entwirft und dann daraus die zugehörigen Strukturen in der Datenbank erzeugt. Dbwrench kann in beiden Modi mit vier Datenbank-Produkten kommunizieren – MS Access, MS SQL Server, MySQL und PostgreSQL. Das ist nicht gerade viel, aber immerhin ist so auch die Migration von Datenbanken möglich: Man generiert per Reverse Engineering das Strukturmodell aus der Quelldatenbank und implementiert es anschließend via Forward Engineering in der Zieldatenbank.
Wer stattdessen mit einem weißen Blatt beginnt, muss zunächst die Tabellen anlegen. Aus dem Kontextmenü einer leeren Tabelle lassen sich ihr weitere Spalten hinzufügen. Für häufig gebrauchte Muster, etwa eine obligatorische ID-Spalte mit Foreign Key, kann der Anwender Templates hinterlegen, die den Prozess um ein paar Klicks verkürzen. Schriftgröße, Farben sowie Art und Umfang der im Diagramm abzubildenden Daten sind ebenfalls justierbar. Was aber fehlt, ist ein Grid oder ein Ausrichten-Werkzeug für die Diagrammelemente.
|
Dbwrench |
|---|
|
Version: 1.5.1 Hersteller: Nizana Systems, Port Alberni, Kanada Lizenz: proprietär Preis: 150 US-Dollar (Download-Version), Trial-Version auf Delug-DVD |
Dokumentar integriert
Auch der Datenbankinhalt lässt sich direkt aus dem Diagramm heraus in einer Tabellendarstellung betrachten und editieren (Abbildung 1). Für komplexere Abfragen gibt es einen SQL-Editor, der Syntax-Highlighting beherrscht, Skripte speichert, eine Suchfunktion integriert und Meldungen der Datenbank anzeigt (Abbildung 2, rechts). Außer Tabellen lassen sich auch Stored Procedures und Sequences in Dbwrench anlegen. Bereits vorhandene erkennt das Reverse Engineering allerdings nicht, es sammelt ausschließlich Tabellen-Informationen.
Die Tabellenstruktur legt Dbwrench in einem XML-File ab, das aber für Menschen nur schwer lesbar ist. Als besonderes Schmankerl bietet die Entwurfssoftware daher an, auf Knopfdruck eine Dokumentation zu erzeugen, die Schemas, Tabellen, Views, Indexes, Foreign Keys, Diagramme sowie manuell erzeugte Stored Procedures, Triggers und Sequences einschließt. Das alles mündet in einer Sammlung ansehnlicher, untereinander verlinkter HTML-Seiten. Die ungeliebte Dokumentationsarbeit reduziert sich so auf einen Mausklick. Zusätzlich lassen sich die Diagramme separat als PNG- oder JPG-Files exportieren.

Abbildung 1: Tabellen (im Hintergrund) lassen sich im Diagramm mit einem eingebauten Viewer inspizieren. Editiert man den Inhalt, erzeugt Dbwrench ein Skript, das die Änderung überträgt.

Abbildung 2: Dbwrench-Hauptfenster: Ganz links findet sich die Baumdarstellung der DB-Komponenten, in der Mitte sind angelegte Tabellen zu sehen und rechts der SQL-Editor.
Selektive Änderungen
Eine umfangreiche Datenbank entwirft niemand in einem Rutsch und oft werden im Verlauf des Designs auch Korrekturen nötig. Einfach wäre es, die alte Tabelle zu löschen und eine geänderte oder erweiterte Version neu anzulegen. Was passiert aber, wenn die Tabelle bereits Daten enthält, die dabei verlorengehen? Im Idealfall editiert man in diesem Fall das Diagramm und lässt das Entwurfstool bei der Synchronisation »ALTER-TABLE«-Statements erzeugen, die den Inhalt – so weit möglich – unangetastet lassen und nur die Tabellenstruktur ändern.
Leider schränken viele Datenbankserver diese Option drastisch ein. Immerhin weiß Dbwrench, was im Einzelfall möglich ist: Fast alles bei MySQL, fast nichts bei PostgreSQL und einiges beim Microsoft SQL Server, der etwa die Änderung von Spalten dann verbietet, wenn sie indiziert sind oder in Primary oder Foreign Keys vorkommen.
Fazit
Dbwrench erfüllt sicher nicht alle Wünsche. Große Applikationen seiner Sparte unterstützen etwa sehr viel mehr Datenbanken und sowohl logische als auch physische Modelle, sie integrieren eine Versionsverwaltung und können große Mengen an Datenbankobjekten in Workspaces, Domänen oder Layern verwalten und untereinander vergleichen. Sie validieren die Entwürfe aufwändiger, ihr Reporting und die Im- und Exportmöglichkeiten sind flexibler und so weiter. Dafür sind sie um ein Vielfaches teurer.
In seiner Preisklasse bekommt der Datenbank-Admin mit Dbwrench aber ein einfach handhabbares und nützliches Tool, das die Grundaufgaben bei der Datenbank-Modellierung wirkungsvoll unterstützt und die Dokumentation effektiv erleichtert. Für kleine und mittlere Datenbanken reicht das allemal.
|
Infos |
|---|
|
[1] Sybase Power Designer: [http://www.powerdesigner.de/pd/index.html] [2] Oracle Designer: [http://www.oracle.com/technology/products/designer/index.html] [3] ERwin:[http://ca.com/us/products/product.aspx?id=260] [4] Power Architect: [http://www.sqlpower.ca/page/architect] [5] MySQL Workbench: [http://www.mysql.de/products/workbench] [6] Data Architect: [http://www.thekompany.com/products/dataarchitect/] [7] Dbwrench: [http://www.dbwrench.com] |





