Ein Tool-Set zur Datenbank-Analyse und -Normalisierung

In diesem Beitrag werden zwei Softwarewerkzeuge zur Datenbank-Analyse und -Normalisierung vorgestellt. TANE-java dient zur Extraktion von funktionalen Abhängigkeiten aus relationalen Datenbanken. DBNormalizer dient zur Normalisierung relationaler Datenbanken auf Basis funktionaler Abhängigkeiten. Ergebnis ist ein ausführbares SQL-Skript zur Schemamodifikation und Datenmigration. Die Werkzeuge können in der Datenbank-Ausbildung, aber auch in realen Projekten zum Refactoring existierender Datenbanken eingesetzt werden. 1 Einleitung und Motivation Ein schwierig zu erfassendes Themengebiet im Bereich der relationalen Datenbanken ist die relationale Entwurfstheorie. Kommerzielle Datenbankentwurfswerkzeuge unterstützen den formalen Normalisierungsprozesse nicht oder nur unzureichend [F08, R08]. Die im Rahmen von [F08] analysierten freien ”akademischen” Normalisierungswerkzeuge Database Normalizer (TU München [J04]) und Database Normalization Tool (Cornell University [S03]) arbeiten nicht auf realen Datenbanken, sondern nur auf vom Benutzer einzugebenden Relationenschemata. In diesem Beitrag werden zwei Softwarewerkzeuge zur Analyse und Normalisierung von relationalen Datenbanken auf Basis von funktionalen Abhängigkeiten vorgestellt: TANE-java und DBNormalizer. DBNormalizer dient zur Normalisierung von relationalen Datenbanken und wird u.a. in der Datenbank-Ausbildung an der HTWG Konstanz verwendet, um den Studierenden die relationale Entwurfstheorie praktisch zu vermitteln. Neben der Nutzung in der Lehre ist aber auch der Einsatz in realen Projekten möglich. So können z.B. das Forward Engineering sowie die Analyse und das Refactoring von existierenden relationalen Datenbanken [AS06] im Rahmen von agilen Prozessen [A03] unterstützt werden. Ein häufiger Kritikpunkt gegen den praktischen Einsatz der relationalen Entwurfstheorie ist der Aufwand zur Bestimmung von funktionalen Abhängigkeiten. Hier setzt das Werkzeug TANE-java an. Es extrahiert automatisch funktionale Abhängigkeiten aus einer relationalen Datenbankausprägung. Diese extrahierten funktionalen Abhängigkeiten können dann die Basis für die Normalisierung mittels DBNormalizer bilden. Ergebnis ist ein SQLSkript für die Schemamodifikation und die Datenmigration, das dann auf der relationalen Datenbank ausgeführt werden kann (siehe Abbildung 1). ∗Die Softwarewerkzeuge wurden im Rahmen von Diplomarbeiten an der HTWG Konstanz entwickelt [F08, R08]. Daniel Fesenmeyer arbeitet heute als Software Entwickler bei der Sybit GmbH. Kontakt: juergen.waesch@htwg-konstanz.de