Datenbanken analysieren leicht gemacht
Auf ein interessantes Tool zum analysieren bestehender Datenbanken (genauer Datenbankschemata) bin ich heute gestoßen. SchemaSpy analysiert sämtliche Tabellen, Attribute, Views sowie Schlüssel- und Fremdschlüsselbeziehungen, generierte statische HTML-Seiten und ermöglicht so das Browsen durch den Tabellenbestand eines Schemata. Mit Graphviz, eine OpenSource-Anwendung um Graphen zu visualisieren, lassen sich zudem die Relationen im Schema grafisch darstellen. (Für den Einsatz mit SchemaSpy wird Graphviz 2.6 oder höher empfohlen.)
SchemaSpy greift über eine JDBC-Schnittstelle auf das entsprechende DBS zu, so das theoretisch alle die Datenbanken unterstützt werden, für die ein entsprechender Treiber zur Verfügung steht. Laut Webseite werden u.a. DB2, Oracle, MSSQL, Firebird und PostgreSQL unterstützt. Bei mir im Einsatz ist SchemaSpy mit einem MySQL-DBS und ich habe exemplarisch mal meine Testdatenbank Northwind analysieren lassen. Das Ergebnis kann man sich als ZIP-Datei am Ende des Beitrages herunterladen, online betrachten oder alternativ sich mit den folgenden Screenshots begnügen.
Die erste Abbildung zeigt eine Übersicht der Tabellen inklusive weiterer Informationen, wie Anzahl der Datensätze, Nummer der Kind- oder Elter-Relationen und Storage Engine. Über das Tab-Menü können weiter Analysen eingesehen werden oder man klickt sich durch die Tabellen durch.

Die zweite Abbildung ist eine Auschnitt aus der Detailansicht einer Tabelle mit zusätzlichen Informationen zu den Attributen, sowie eine grafische Übersicht der in Beziehung stehenden Tabellen.

Die Anwendung wir über die Konsole gestartet und die benötigten Parameter sind abhängig von der eingesetzten Datenbank. Für MySQL werden folgende Parameter erwartet:
$ java -jar schemaSpy_3.1.1.jar -cp mysql-connector-java-5.1.5-bin.jar -t mysql -o schemaSpy\northwind -host localhost -db northwind -u root -p geheim
Die Parameter im einzelnen:
java -jar schemaSpy_3.1.1.jarStartet die eigentliche Anwendung als JAR-Datei. Bei mir ist das die Version 3.1.1 von SchemaSpy.-cp mysql-connector-java-5.1.5-bin.jarGibt den benötigten Connector an. Den für MySQL gibt es auf deren Webseite zum Download.-t mysqlDen Typ der Datenbank, hier MySQL.-o schemaSpy\northwindDen Speicherort für die statischen HTML Seiten.-host localhostDer Host auf dem das DBS läuft.-db northwindDie zu analysierende Datenbank.-u root -p geheimUnd zum Schluss noch der Benutzer und das zugehörige Passwort um sich mit der Datenbank zu verbinden.- Ausabe betrachten und glücklich sein. ;)
Damit die Graphen erzeugt werden können muss sichergestellt sein, dass die in der PATH-Variable der Pfad zu Graphviz enthalten ist. Nach Installation und Reboot auf Windows Vista war das bei mir der Fall und ich brauchte nicht zusätzlich Hand anzulegen.
Abschließend bleibt anzumerken, dass es sich um ein wirklich nützliches Werkzeug handelt um
- die eigenen Datenbanken zu dokumentieren und
- sich in fremden Datenbanken einen schnellen Überblick zu verschaffen.
Somit wird das wohl ein neuer Dauergast auf meiner HD.
Links zum Thema
Abgelegt unter >>
Tags >>
- insgesamt: 10561 // heute: 5 // zuletzt: 4. February 2012


petra
Hallo,
ich versteh noch nicht vollständig die Möglichkeiten.
Könnte ich mit dem tool auch ein mysql select Abfrageergebnis in eine Statische-Html seite verwandeln?
Sowas suche ich schon lange..
Beste Grüße,
Petra
Mai 12th, 2009
Andreas
Das sieht sehr interesant aus.
@Petra: ein mysql select Ergebnis in eine statische html seite umwandeln? Wenn nur die Daten “aus Text” auf der Webseite ausgegeben werden sollen, ist dies doch schnell selbst programmiert. Und durfte in nahezu jeder verwendeten serverseitigen Programmiersprache leicht umsetzbar sein.
Okt 28th, 2009
kikirita
Hi,
ich hätte eine Frage bezueglich der Datenbankanalyse.Ich sollte eine
MySQL Datenbank analysieren,nun bis zur Struktur der Datenbank bin ich schon gekommen und auch gemacht.Meine Frage lautet:Worauf sollte man noch bei so eine Analyse achten?Redundanz habe auch gefunden,was wiederum zu Dateninkonsistenz führt,aber gibt es andere wichtige Punkte, die ich bei so einer Analyse betrachten soll?
Ich bin neu in dem Bereich,deswegen all diese Fragen.
Wäre sehr nett,wenn ich ein paar positive Anworten bekäme.
Gruss
kikirita
Dez 10th, 2009