|
||||||
Open Source Programme zum Reverse Engineering von Datenbanken/Erstellen von ER DiagrammenSowohl in der Arbeit und natürlich auch bei privaten Projekten, begegnet man häufig der Aufgabe eine bereits bestehende Datenbank per Reverse Engineering1 2 zu dokumentieren und zu analysieren. Die Gründe hierfür sind vielfältig:
Es gibt sicher noch viel mehr Motive für ein Reverse Engineering. Im Folgenden stelle ich ein paar Open Source Programme vor, die mir selbst - sowohl privat wie auch beruflich - schon bei einigen Problemen hilfreich zu Seite gestanden haben. Ähnlich Microsofts Visio ist Dia eine Software um Diagramme aller Art zu zeichnen. Das Programm ist Freeware und sowohl für Linux, wie auch für Windows erhältlich. Obwohl Visio einfacher zu handhaben ist, stellt Dia in meinen Augen eine für die meisten Probleme brauchbare Alternative dar. Mit dem Programm lassen sich UML-Diagramme (häufig auch genutzt um ER Diagramme zu erstellen), ER-Diagramme, Flußdiagramme uvm. gut zeichnen.
Ein Blick auf die verschiedenen Scripte der Linkseite von Dia zeigt, dass viele Tools Dia nur als Visualisierungstool verwenden. Gerade beim analysieren von bereits bestehenden Datenbanken liegen ja schon fast alle relevanten Informationen, also die Tabellennamen, Spaltennamen, Typ der Spalte und häufig auch die Relationen vor. Was also liegt näher, als sich ein paar Scripte zu besorgen, welche die Datenbank durchlaufen und daraus automatisch eine Übersicht erstellen? Ähnlich dem bereits erwähnten OraSchemaDoc generiert SchemaSpy aus den Meta-Daten eines Schemas eine im Browser lesbare Dokumentation inklusive einer graphischen Übersicht der Relationen zwischen den Tabellen . Es handelt sich um ein Java Programm, das zur Visualisierung der Beziehungen das Tool Graphviz verwendet. Eine Verbindung zu den gängigen Datenbankprogrammen ist per JDBC Verbindung möglich. Eine graphische Bedienoberfläche (GUI) für das Kommandozeilen Programm ist unter http://www.joachim-uhl.de/projekte/schemaspygui/ erhältlich. SchemaSpy dürfte derzeit eines der besten Open Source Tools im Bereich Dokumentation von Datenbanken sein.5 DBDesigner bzw. der Nachfolger MySQL Workbench6 Scripte können nur im Idealfall alle notwendigen Relationen aus dem System ziehen. Häufig ist es jedoch so, dass man den Output noch modifizieren möchte. Einige Relationen werden einfach nicht erkannt, z.B. da die Constraints fehlen oder die Spalten in den Tabellen unterschiedlich benannt wurden, andere Verknüpfungen fehlen, Bereiche innerhalb der Datenbank können nicht nach Wahl des Benutzers graphisch dargestellt werden und manchmal wäre es schön Anmerkungen zu hinterlegen. In all diesen Fällen leistet das ursprünglich auf MySQL optimierte Programm DBDesigner gute Dienste. Anders als man vermuten könnte, ist über ODBC die Verbindung zu beliebigen anderen Datenbanksystemen möglich. Über den Menüpunkt Reverse Engineering können dann die gewünschten Tabellen bzw. Views importiert werden. Der Nachfolger MySQL Workbench ist jetzt direkt auf der MySQL Webseite zu haben und hat derzeit den gleichen Funktionsumfang wie DBDesigner. Eine mögliche OpenSource Alternative ist der System Architect 4.0.0. Das Programm wird zwar seit Ende 2005 nicht mehr weiterentwickelt, stellt aber ein mächtiges Tool zur Erstellung von UML und ER-Diagrammen dar und dient auch gleichzeitig als SQl Editor für die gängisten Datenbanksysteme. Reverse Engineering ist natürlich ebenfalls möglich. Durchaus eine Alternative kann auch der Mogwai ER Designer sein. Das Programm bietet ebenfalls eine Funktion zum Reverse Engineering an, hat jedoch meiner Meinung nach eine umständliche Bedienung und die generierten graphischen Übersichten sind lange nicht so ansprechend, wie etwa die des DBDesigners.
7 comments to Open Source Programme zum Reverse Engineering von Datenbanken/Erstellen von ER Diagrammen |
||||||
|
Copyright © 2010 Joachim Uhls Blog - All Rights Reserved
|
||||||
Der Artikel ist ein guter Einstieg zum Thema “Programme für das Reverse Engineering”.
Kannst du mir vielleicht sagen, wo ich Informationen finde, wie MySQL Workbench und PostgreSQL zur zusammenarbeit bringe.
Vielen Dank
Hallo Carsten,
zuerst dachte ich, Deine Frage wäre ganz einfach zu beantworten. Aber Pustekuchen … die derzeit zum Herunterladen angebotene Version 1.1.10 alpha von MySQL Workbench scheint einen Bug zu beinhalten.
Normalerweise kannst Du über den Menüpunkt “Database/Reverse Engineering” bzw. “Database/Database Synchronisation” ein Fenster öffnen, in dem sich die Source Connection einstellen lässt. Für PostgreSQL ist kein direkter Eintrag vorhanden, aber ich vermute stark, dass im Fensterbereich “DBMS / Driver” bei “Database System:” einfach “Generic Jdbc” im Drop Down Menü ausgewählt werden müsste. Danach bei Connection Parameters einen Treiber über “Locate Driver on Harddisk” auswählen. Den passenden JDBC Treiber kann man unter http://jdbc.postgresql.org/ herunterladen.
Leider kommt bei der Version 1.1.10 alpha nach Klick auf “Locate Driver on Harddisk” immer die Meldung “The application needs to be restarted”. Der Treiber kann also gar nicht geladen werden und damit ist es Essig mit MySQL Workbench und PostgreSQL.
Der Bug ist für MySQl Workbench schon seit Ende Juni 2006 bekannt: http://bugs.mysql.com/bug.php?id=20720
Im Moment kann ich Dir also nur raten den Vorläufer von MySQL Workbench (DBDesigner http://fabforce.net/dbdesigner4/) zu verwenden. Damit laesst sich das Reverse Engineering Tool über eine ODBC Verbindung mit PostgreSQl verbinden.
Hallo,
da muss es doch noch irgendwelche funktionierenden Tools geben.
Es gibt sonst auch noch den DBDesigner4 ( http://fabforce.net/dbdesigner4/), welcher anscheind keine unterstützung für mySQL 5 hat, stimmt das so?
gruss
thE_iNviNciblE
Im Prinzip stimmt das so. Der Nachfolger von DBDesinger4 ist MySQl Workbench, wie auch oben im Artikel beschrieben. An Freeware Tools gibt es dann gar nicht mehr so viele. Ich kenne noch TOAD für MySQL (http://www.quest.com/toad-for-mysql/). Da ich es aber noch nie verwendet habe, kann ich Dir nicht sagen wie es sich so in der Handhabung verhält. Toad für Oracle ist kostenpflichtig und wird von mir gerne verwendet. Von Toad gibt es auch einen Freeware Visual Database Designer (http://www.casestudio.com/enu/database_design_freeware.aspx), der aber max. 25 Entitäten verwalten kann …. für mehr braucht man wieder die kommerzielle Lizenz. Ausserdem hat die Freeware Variante keinen Wizard für’s Reverse Engineering.
Es gibt auch noch einen Fork von DBDesigner4 (https://sourceforge.net/projects/dbdesigner-fork/) vielleicht lohnt der noch einen Blick.
Ansonsten steht die Community soweit ich weiss, mit relativ leeren Händen da.Für weitere Tips wäre ich dankbar.
Gruss
Joachim
Hallo,
danke für die Information
DBDesigner4 als auch die Fork 1.4 arbeiten doch mit mySQL 5 zusammen, auch über ODBC (3306), muss wohl an dem einen speziellen Server liegen…
ansonsten gibts hier noch eine nette liste, aber davon sind die meisten nicht so genial und ihnen fehlt diese Reversing Funktion…
http://de.wikipedia.org/wiki/Liste_von_Datenmodellierungswerkzeugen
Gruss
Jan
Hallo,
auch ich möchte mich nur schnell bei Dir und Deiner Arbeit bedanken. Ich habe genau das von Dir beschriebene Problem (Existierendes Projekt mit großer DB und keine Vernünftige Doku) und habe genau nach so einer Information wie hier gesucht.
Ich hoffe, diese Seite bleibt aktuell.
Danke
Kommentarlos
Hallo,
ich bin auf der Suche nach einem Tool mit dem ich ein ME/R Modell erstellen kann.
Ich habe DIA benutzt nur leider fehlt das Symbol um die Faktentabelle 3D darstellen zu können.
Mein ER Modell soll sich nach CHEN richten.
Da ich bereits ein logisches Modell besitze, gibt es ein Tool mit dem ich aus dem logischen Modell ein semantisches generieren lassen kann ?
Viele Grüße
Martin