Home > Lernmodule > Modul 10

 

7 Datenbank-Entwurf


Diese Lerneinheit beschreibt, wie man Datenbank-Schemata entwirft und den relevanten Teil der realen Welt möglichst genau abbildet. Dabei müssen die konkreten Bedürfnisse der späteren Anwendergruppe beachtet werden.
Anstatt aber direkt auf SQL aufzusetzen, werden Datenbank-Schemata oft in anderen Modellierungssprachen (wie z.B. UML) entworfen. UML unterstützt den Entwurf auf konzeptueller Ebene und lässt sich gut auf das relationale Datenmodell abbilden.
Anhand eines einfachen UML-Diagramms wird gezeigt, wie man Klassen und Beziehungen kanonisch in einem Datenbankschema beschreiben kann. Dabei werden sowohl die einzelnen Klassen als auch die vorhandenen Beziehungen auf eigenständige Tabellen abgebildet. Eine Sonderbehandlung ist allerdings für Vererbungshierarchien nötig. Hier werden drei Möglichkeiten vorgestellt und verglichen:

Vererbungshierarchien

· Eine Tabelle pro Klasse der Vererbungshierarchie.
· Eine Tabelle für jeden Teilbaum der Hierarchie, der die Wurzel enthält. Damit wird für jede „Instanziierungsvariante“ eine eigene Tabelle geschaffen, die genau diese Attributkombination umfasst.
· Eine Tabelle für die komplette Hierarchie. Diese Tabelle enthält dann alle Attribute, die in der Hierarchie vorkommen. Attribute, die bei bestimmten Datensätzen keinen Sinn ergeben, werden mit NULL aufgefüllt.

Welche Möglichkeit gewählt wird ist abhängig vom einzelnen Anwendungsfall.
Das bei einer derartigen kanonischen Übersetzung entstandene relationale Schema sollte anschließend weiter optimiert und ggf. vereinfacht werden. Vielfach können z.B. Tabellen zusammengefasst werden, um Redundanzen zu eliminieren.