Logo Wissenstransfer Gerhard at CichnaDotCom

>> Wissensdatenbank / Datenmodellierung und Datenbanksysteme

Konzeption und Modellierung von relationalen Datenbanken

Aktivitäten zum logischen Datenbankentwurf

Der Weg von der Modellierung bis zur konkreten Erstellung einer Datenbank umfasst verschiedene Aktivitäten, die sich in der Regel für jedes Datenbankprojekt wiederholen. Die folgende Abbildung zeigt eine Übersicht dieser Aktivitäten in ihrer typischen Reihenfolge. Die Reihenfolge der Aktivitäten ist nicht streng sequenziell, sondern findet in der Praxis mit einigen Iterationen und Rücksprüngen an den Startpunkt statt. Daher dient die Abbildung eher als Überblick und Darstellung des Zusammenhangs. Die einzelnen Aktivitäten werden im Folgenden genauer beschrieben.
Abbildung: Aktivitäten im Entwurfsprozess für Datenbanken

Entitäten identifizieren

Dieser Schritt umfasst die Identifikation von Relationen. In der Sprache der Objektorientierung würde man sagen, dass hier die Klassen identifiziert werden. Ausgangspunkt dabei sind fachliche Entitäten, die schrittweise um technische Details verfeinert werden. Dieser Schritt wird häufig bereits durch Aktivitäten des Requirements Engineerings und der Spezifikation erledigt. In diesem Fall startet der Entwurf der Datenbank nicht mit einem weißen Blatt, sondern mit einem bereits abgestimmten fachlich-technischen Datenmodell.

Beziehungen festlegen

Nachdem die relevanten Entitäten identifiziert wurden, müssen deren Beziehungen ermittelt werden. Der vergleichbare Schritt in der Objektorientierung ist die Modellierung von Beziehungen zwischen den Klassen. Dabei werden mit Kardinalitäten auch Mengenangaben zu den Beziehungen festgelegt. Das aus der Identifikation der Entitäten und der Festlegung der Beziehungen entstehende Modell bezeichnet man auch als das konzeptionelle Datenmodell.

Primärschlüssel festlegen

Hierbei werden zunächst die Primärschlüssel zu den Relationen festgelegt. Dazu werden entweder die Attribute identifiziert, die als einfache oder zusammengesetzte Primärschlüssel dienen, oder es werden künstliche Schlüssel verwendet. In letzterem Fall muss das Modell um die entsprechenden Attribute ergänzt werden.

Umwandlung in physikalisches Datenmodell

Nachdem eine Menge von Entitäten und deren Beziehungen identifiziert wurden, erfolgt die Umwandlung in ein sogenanntes physikalisches Datenmodell. Dazu werden alle Beziehungen zwischen den Entitäten in ein Modell transformiert, das von relationalen DBMS unterstützt wird.

Grundidee dieser Umwandlung ist die Transformation eines netzwerkartigen Modells (wie es unter anderem ein UML-Klassendiagramm ist) in ein hierarchisches Modell, das sich auf Tabellen von relationalen Datenbanksystemen abbilden lässt.

Attribute festlegen und normalisieren

Hierbei werden alle Attribute identifiziert, die benötigt werden, um die Entitäten zu beschreiben. Der vergleichbare Schritt in der Objektorientierung ist die Identifikation von Attributen einer Klasse. Häufig werden Attribute bereits zusammen mit den Entitäten identifiziert. In diesem Schritt müssen zu den Attributen auch die konkreten Datentypen in der Datenbank bestimmt werden. Anschließend wird die Datenbank normalisiert, d.h. sie wird in die für die Anforderungen an das Projekt genügende Normalform überführt. Dabei werden die Attribute von Relationen auf Struktur und Abhängigkeiten hin untersucht und bei Bedarf dem Modell weitere Relationen hinzugefügt. In der Regel reicht die 3. Normalform für die meisten praktischen Projekte aus.

Konsistenzbedingungen festlegen

Neben der reinen Struktur der Datenbank in Form ihrer Relationen müssen gegebenenfalls auch spezifische Konsistenzbedingungen durch das DBMS gewährleistet werden. Mit explizit formulierten Konsistenzbedingungen soll sichergestellt werden, dass der Datenbestand in einer fachlich-technisch "sauberen" Form vorliegt. Typische Konsistenzeigenschaften sind:

Durch die Umwandlung in das physikalische Datenmodell und die Normalisierung der Datenbank entsteht in der Regel ein komplexes Datenschema mit mehreren Tabellen, die über Fremdschlüsselbeziehungen abhängig voneinander sind. Daher muss insbesondere beim Ändern und Löschen von Datensätzen sichergestellt werden, dass immer genau so viele Relationen gleichzeitig geändert oder gelöscht werden, dass alle technischen und fachlichen Konsistenzbedingungen gewährleistet sind.

Transaktionen formulieren

Mit dem Begriff Transaktion werden Operationen auf dem Datenbestand einer Datenbank bezeichnet. Im täglichen Einsatz müssen Daten ausgelesen, erstellt, geändert und auch gelöscht werden können. Insbesondere bei industriellen Softwaresystemen bestehen Abfragen häufig aus mehr als nur einem SQL-Statement. Daher werden Mengen von SQL-Statements zu Transaktionen zusammengefasst. Es wird also festgelegt, aus welchen SQL-Befehlen eine Anfrage zum Auslesen, Hinzufügen, Ändern und Löschen von Daten im Einzelnen besteht, damit alle Konsistenzbedingungen eingehalten werden.

Mit dem Festlegen von Transaktionen wird gewährleistet, dass im Fall eines Fehlers bei der Ausführung von Änderungen der Datenbestand konsistent bleibt. Das bedeutet, dass alle bereits durchgeführten Änderungen einer nicht vollständig erfolgreich abgeschlossenen Transaktion wieder rückgängig gemacht werden können.