Start BI Datenbanken effizient dokumentieren

Datenbanken effizient dokumentieren

Zur Entwicklung Datenbank-basierter Anwendungen ist nicht nur die Kommentierung des Programmcodes für spätere Erweiterungen notwendig, sondern auch das Dokumentieren der zugrunde liegenden Datenmodelle. Das Datenbank-Dokumentationstool Dataedo ermöglicht Entwicklerteams die einfache Dokumentation einer gemeinsam genutzten Datenbank.

Datenbanken

Datenbanken und Data Warehouses (english version below) in Unternehmen besitzen häufig über viele Jahre gewachsene Datenmodelle, die von Entwicklerteams genutzt und für neue Anforderungen angepasst werden. Um spätere Erweiterungen und die Einführung neuer Entwickler mit überschaubarem Aufwand möglich zu machen, ist eine gewissenhafte und vollständige Dokumentation des Datenbankmodells und der Datenbankobjekte unerlässlich.

Relationale Datenbanken verfügen in der Regel über spezielle Kommentarspalten für Tabellen und Felder, die eine kurze textuelle Beschreibung der entsprechenden Struktur vor Ort erlauben. Größere Datenzusammenhänge sind damit allerdings nicht darstellbar, und die Kommentare lassen sich nur durch umständliches Navigieren in den verschiedenen Datenbankobjekten lesen und bearbeiten. Separate Dokumentationsdokumente ermöglichen zwar ausführliche und graphische Darstellungen der Zusammenhänge, erfordern jedoch eine aufwändige Erstellung und Wartung, um stets den aktuellen Stand der Datenbank zu repräsentieren.

Werkzeug-gestütztes Dokumentieren

Spezielle Datenbank-Dokumentationstools wie Dataedo vereinen die Einfachheit der Nutzung von Kommentarspalten mit den Darstellungsmöglichkeiten separater Dokumentationen. Sie bauen zunächst eine Verbindung zu der Datenbank auf, die das oder die zu dokumentierende(n) Datenbankschema(s) enthält, und lesen zu allen vorhandenen Datenbankobjekten (Tabellen, Views, Prozeduren etc.) die entsprechenden Metadaten (Datentypen, Schlüssel, Trigger, Abhängigkeiten, Kommentare etc.) aus. Diese Daten werden in einer Tool-eigenen Datenbank (Repository) abgespeichert und können jederzeit aktualisiert werden, wenn strukturelle Änderungen in der Originaldatenbank durchgeführt wurden.

Datenbank objekte
Abbildung: Datenbankobjekte in Dataedo

Anzeige | kostenloses Webinar der Trovarit Academy


Kommentieren mit Komfort

In der Tool-eigenen Datenbank findet dann die eigentliche Dokumentation der Schemaobjekte statt. Zu allen Tabellen, Views, Spalten, Schlüsseln, Beziehungen, Triggern, Prozeduren, Funktionen und Parametern lassen sich Dokumentationstexte hinzufügen, teilweise mit Formatierung und Bildern. Dataedo erlaubt darüber hinaus die Definition benutzerdefinierter Primär- und Fremdschlüssel, wodurch Beziehungen zwischen Tabellen beschrieben werden können, die in der Originaldatenbank nicht explizit spezifiziert wurden. Mithilfe von benutzerdefinierten Feldern können zudem strukturierte Informationen zu Datenbankobjekten hinzugefügt werden (z. B. Speicherung der Namen von Quelltabellen und -spalten in Data Warehouses).

Dokumentation von Datenbank objekten
Abbildung: Dokumentation von Datenbankobjekten in Dataedo

Den Überblick behalten

Besonders nützlich zum Verständnis der Datenzusammenhänge ist in Dataedo die Definition von „Modulen“, die thematische Teilsichten auf die Datenbank ermöglichen. Diese bestehen aus einer vom Benutzer zu definierenden Teilmenge von Datenbankobjekten (Tabellen, Views, Prozeduren etc.), die in einem bestimmten thematischen Zusammenhang stehen und mit einem übergreifenden Dokumentationstext für das Modul beschrieben werden können. Zu den im Modul enthaltenen Tabellen lässt sich darüber hinaus durch die Auswertung bestehender und benutzerdefinierter Schlüssel und Beziehungen vollautomatisch ein Entity-Relationship-Diagramm erstellen.

Entity-Relationship-Diagramm
Abbildung: Von Dataedo automatisch erstelltes Entity-Relationship-Diagramm

Wurden die gewünschten Schemaobjekte dokumentiert, kann wiederum vollautomatisch ein Dokumentationsdokument in den Formaten PDF oder HTML erstellt werden, das sämtliche Strukturinformationen und Beschreibungstexte für das Datenbankschema enthält. Zudem lassen sich, falls gewünscht, in Dataedo erstellte bzw. aktualisierte Beschreibungstexte in die entsprechenden Kommentarspalten der Originaldatenbank zurückschreiben.

Dokumentieren im Team

Dataedo bietet außerdem verschiedene Funktionen, die Entwicklerteams beim Dokumentieren ihrer Datenbank unterstützen, wenn sie Schemaänderungen durchführen (z. B. Anlegen von neuen Tabellen und Spalten). Nach dem Erzeugen einer speziellen Update-Befehlsdatei lassen sich die Änderungen in regelmäßigen Abständen durch den Betriebssystem-Scheduler in das Dataedo-Repository übertragen. Die Entwickler können dann anhand von Fortschrittsbalken sehen, welche Datenbankobjekte noch nicht (vollständig) dokumentiert sind und entsprechende Ergänzungen vornehmen. Zudem kann eine spezielle Export-Befehlsdatei angelegt werden, die regelmäßige Updates auf einer für alle Entwickler zugänglichen HTML-Dokumentation durchführt. Auf diese Weise wird gewährleistet, dass sich die Datenbankdokumentation stets auf dem aktuellen Stand befindet. Jost Enderle, Trovarit AG

datenbank: Fortschrittsbalken
Abbildung: Fortschrittsbalken weisen auf noch nicht dokumentierte Datenbankobjekte hin

English version

Documenting Databases Efficiently

When developing database applications, comments in your program code won’t suffice to support later extensions; you also have to document the data models being used. The database documentation tool Dataedo provides development teams with an easy way to document shared databases.

Data models of business databases and data warehouses often have developed over many years. Development teams not only use them for writing applications but also adapt them to meet new requirements. To facilitate later extensions and the introduction of new developers, a thorough documentation of the database model and database objects is mandatory.

In general, relational databases have special comment fields for each table and each table attribute allowing to provide short textual descriptions of the structure in place. However, data dependencies on a larger scale can’t be described this way and reading and writing the comments requires tedious browsing to every object in the database. On the other hand, externally created manuals allow for extensive visual presentations but require quite some effort to create and to keep up to date.

Tool-based Documenting

Purpose-built database documentation tools like Dataedo combine the simplicity of comment fields with the presentation potential of separate manuals. By first creating a connection to the database containing the schema to describe, they can read the metadata (datatypes, keys, triggers, dependencies, comments, etc.) for all objects in the database (tables, views, procedures, etc.). These metadata get stored in a tool-owned database (repository) and can be updated when schema changes in the original database are made.

Illustration: Database objects in Dataedo

Commenting with Comfort

The actual documentation of the schema objects takes place within the tool’s repository. Descriptions can be added for all tables, views, columns, keys, relationships, triggers, procedures, functions, and parameters, with the possibility to format text and add pictures for entire database objects. Moreover, Dataedo allows for creating user-defined primary and foreign keys to describe table relations that are not explicitly specified in the original database. Above all, custom fields can be added to database objects to provide structured data as additional information (e. g. to store the names of source tables and source columns in a data warehouse).

Illustration: Documenting database objects in Dataedo

Keep the Overview

An especially useful feature of Dataedo to understand data dependencies on a larger scale is the possibility to define “modules”. They provide topic-based partial views on the database and consist of a user-defined subset of the database objects (tables, views, procedures, etc.) belonging to the specified topic. By utilizing existing and user-defined keys and relations of the module’s tables, an entity-relationship diagram is automatically generated for the module. Furthermore, the module can also be documented with formatted text and pictures.

Entity-Relationship-Diagramm
Illustration: An automatically generated entity-relationship diagram for a Dataedo module

When the user has finished documenting the schema objects, Dataedo can automatically generate a PDF or HTML manual containing all structural information and describing texts for the database schema as well. If desired, it is even possible to write newly created or updated descriptions back to the corresponding commentary fields in the original database.

Documenting as a Team

Dataedo also provides several functions to support schema-changing (e. g. table- and column-adding) development teams in documenting their database. After creating a special update command file, schema changes can be propagated periodically to the Dataedo repository by the operating system scheduler. Progress bars show the developers which database objects haven’t been documented yet (in full) and encourage them to complete the descriptions. Moreover, a special export command file can be used to perform regular updates on an HTML manual that is accessible to all developers. That way, the database documentation will always be up to date.

Illustration: Progress bars show which database objects haven’t been documented yet (in full)

Der Autor

Jost Enderle, Trovarit AG