DB Schema documentation

„Documentation is like sex: when it is good, it is very, very good; and when it is bad, it is better than nothing.“ Dick Brandon

Datenbank ist eine der Ressourcen in Software-Projekten, die immer gründlich und rechtzeitig dokumentiert werden soll.
Datenbank-Schema wird nicht so oft wie das Programmcode geändert (zumindest gut modelliertes Schema), das ist aber oft ein Grund, wieso ausgerechnet Datenbank Dokumention gar nicht oder nicht rechtzeitig gepflegt wird.
Dabei existiert es eine Reihe von Tools, mit denen automatisch aktuelle Dokumentation für den Team oder Projekt-Management/Stakeholder generiert werden kann.

SchemaSpy

  • Betriebsystem: Alle Betriebssysteme (Java)
  • Datenbanken: Unterstüzt alle gängige Datenbanken!
  • Output: Generiert sehr detaillierte verlinkte HTML Seiten, mit einfachen ER Diagrammen zum Überblicken von Tabellen-Relationen.
  • Ausführung: Command-line, SchemaSpyGUI (java client), Maven
  • Konfiguration: Sehr gut
  • Besonderheiten: Einfache Qualitäts-Prüfungen (Fehlender Index, falsher Datentyp etc.). Verliert in der Detallierung spezialisierten Tools wie SQLDeveloper, aber nicht viel.
  • Kosten: Opensource
  • Beispiel

Oracle SQL Developer

  • Betriebsystem: Alle Betriebssysteme (Auf Eclipse basis)
  • Datenbanken: Nur Oracle!
  • Output: sehr detallierte verlinkte HTML Seiten
  • Ausführung: Nur manuell aus SQL Developer
  • Konfiguration: Auswahl von DB Objekten und Detallierung
  • Besonderheiten: Aussehen änelt dem standartem Tabular-Ansicht von SQL Developer
  • Kosten: Frei
  • Dokumentation

Toad’s HTML Schema Doc Generator

  • Betriebsystem: Nur windows
  • Datenbanken: Oracle, DB2
  • Output: Verlinkte HTML seiten.
  • Ausführung: Nur manuell aus TOAD
  • Konfiguration: Auswahl von DB Objekten und Detalliereung
  • Kosten: Toad Lizenz

DBScribe

  • Betriebsystem: Nur Windows
  • Datenbanken: SQL Server, Oracle, MySQL, Postgresql, DB2
  • Output: HTML, CHM, Word
  • Ausführung: Windows GUI, command line
  • Konfiguration: Templates, Auswahl von DB Objekten und Detallierungsgrad
  • Besonderheiten: Gute Detallierung
  • Kosten: 100$

SqlSpec

  • Betriebsystem: Nur Windows
  • Datenbanken: Alle gängige Datenbanken, manche sehr spezifische Datenbanken wie Teradata, Microsoft Integration Server
  • Output: HTML, CHM
  • Ausführung: Windows GUI, command line
  • Konfiguration: Auswahl von DB Objekten und Detallierungsgrad, rudimentär Aussehen vom generiertem Dokument (CSS, Logo, Header, Footer)
  • Besonderheiten: Sehr gute Detallierung für manche DB Objekte z.B. funktion call graph’s, ER Diagramme.
  • Kosten: 150$
  • Beispiel

DBDesc

  • Betriebsystem: Nur Windows
  • Datenbanken: SQL Server, MySQL, Access, Firebird
  • Output: HTML, RTF, Word, PDF
  • Ausführung: Windwos GUI, command line
  • Konfiguration: XSLT Templates, Auswahl von DB Objekten
  • Besonderheiten: XLST Templates
  • Kosten: 100$
  • Beispiel

SchemaToDoc

  • Betriebsystem: Nur Windows
  • Datenbanken: Oracle und SQL Server!
  • Output: HTML, verlinkte Seiten, Word Dokument
  • Ausführung: nur GUI, manuell
  • Konfiguration: rudimintär
  • Besonderheiten:
  • Kosten: 100$
  • Beispiel

SQL Documentation Tool

  • Betriebsystem: Nur Windows
  • Datenbanken: SQL Server
  • Output: HTML, RTF, Plain Text
  • Ausführung: Windows GUI, command line
  • Konfiguration: rudimentär
  • Kosten: 50$
  • Beispiel

Diese Liste hat kein Anspruch auf die Vollständigkeit. Das sind Tools, die ich während einer Evaluierungs-Phase bei einem Software-Projekt analysiert habe.
Am Ende wurde SchemaSpy ausgewählt, wegen der Kosten, sehr guten Konfigurations-Möglichkeiten (Opensource, Java) und guten Ergebnisse für Oracle Datenbank. Dabei haben manche kommerzielle Produkte bessere Ergebnisse im Punkt „Detallierung“ geliefert, waren aber nicht kostenlos und nicht so gut konfigurierbar/einsetzbar.

Veröffentlicht in Oracle