Datenbankmodelle

Datenbankmodelle sind das Gerüst nach welchem implementierte Daten gespeichert werden. Datenbankmodell sind abhängig vom Datenbankmanagementsystem.

Das ER-Modell als abstraktes Datenmodell und Datenmodellierungsinstrument zählt nicht zu den Datenbankmodellen.

Es gibt vier Hauptdatenbankmodelle, welche nach folgenden Adjektiven eingeordnet werden:

  • netzwerkartig bzw. vernetzt
  • hierarchisch
  • objektorientiert
  • relational

Aus diesen vier Hauptdatenbankmodellen sind einige Mischformen bzw. hybride Modelle, z.B. das objektrelationale Datenbankmodell oder relationale Netzwerk-Datenbankmodell, entstanden, welche die Eigenschaften der unterschiedlichen Datenbankmodelle kombinieren.

Das verbreiteste Datenbankmodell ist das relationale Datenbankmodell. Für kleine bis mittelgroße Softwareprojekte wird fast ausschließlich eine oder mehrere relationale Datenbanken verwendet.
[ad#Google Adsense Square]

Das Netzwerk-Datenbankmodell (vernetzte Datenbankmodell)

Das hierarchische Datenbankmodell wurde stark von Cobol beeinflusst (und auch von den Cobol-Entwicklern entwickelt).

Die Hierarchie ist im Datenbankmodell nicht reglementiert. Ein Datensatz kann mehrere Vorgänger haben.

relationale Datenbank

Vorteile: Die Beziehungen zwischen den Datensätzen sind ggf. sehr direkt, was der Performance z.B. für eine Suchanfrage zu Gute kommt.
Während im relationalen Datenbankmodell n:m (bzw. n:n) -Beziehungen mit einer Zwischentabelle realisiert werden müssen, können mit einem Netzwerk-Datenbankmodell über mehreren direkten Verknüpfungen erreicht werden.

Das hierarchische Datenbankmodell

Das hierarchische Datenbankmodell strukturiert die Daten nach einem Baumschema.

Das hierarchische Datenbankmodell ist im Grunde ein erweitertes Netzwerk-Datenbankmodell, jeder Datensatz hat genau einen (und nicht mehrere) Vorgänger, ausgenommen der Root-Datensatz (die Wurzel, welches auf den gesamten Datenbankinhalt verweist).

relationale Datenbank

Der größte Nachteil des hierarchischen Datenbankmodells ist die fehlende Möglichkeit zur n:m (n:n) -Beziehung. Da ein Datensatz nur einen einzigen Vorgänger haben kann, sind generell n:m-Beziehungen nicht umsetzbar (Abhilfe kann aber ein DBMS schaffen).

Heute sind hierarchische Datenbanken tendenziell eher auf dem Rückzug, aber noch längst nicht ausgestorben, sondern noch Teil vieler etablierter Softwarelösungen.

Das objektorientierte Datenbankmodell

Das objektorientierte Datenbankmodell ist ein Nachzugsprodukt der objektorientierten Programmierung. Eine objektorientierte Datenbank steht jedoch für sich alleine (und hat nichts oder kaum etwas mit der objektorientierten Programmierung zu tun). Es ist jedoch ein Vorteil für die Softwareentwicklung, dass Daten aus einer objektorientierten Datenbank einfacher in einer objektorientierten Programmiersprache zu verwalten sind.

Das objektorientierte Datenbankmodell (object orientated databas modell) setzt sich aus einem Strukturteil und einem Operationsteil zusammen.

Der Strukturteil beschreibt die Eigenschaften der Objekte und deren mögliche Beziehungen. Der Operationsteil enthält die Funktionalität (Methoden) für die Abfrage oder Veränderung von Daten. Außerdem enthält der Operationsteil vererbbare Methoden.

Der Vorteil an einer objektorientierten Datenbank ist, neben die Kompatibilität zur objektorientierten Software, die strukturierte Sammlung von Daten. Die Objekte kapseln die Daten und bringen sie in einen sinnvollen Zusammenhang. Ein Objekt kann aus anderen Objekten zusammengesetzt sein, da die Verfahren der Objektorientierung zur Verfügung stehen.

Nachteile sind die bis heute geringe Verbreitung von objektorientierten Datenbanken und die Komplexität der Datenbeziehungen. Sehr große Datenbanken können durch die verschiedenen Beziehungen (Vererbung, Komposition, Aggregation usw.) sehr verwirrend werden.

Datenbankmodelle können mit verschiedenen, auf Objektorientierung spezialisierten, Diagrammen dargestellt werden, diese ähneln meistens sehr dem UML – Klassendiagramm.

Das relationale Datenbankmodell

Mit einer relationalen Datenbank werden Daten in Tabellen zusammengefasst. Die Tabellen werden dann nicht etwa in eine Hierarchie gesetzt, sondern miteinander sinnvoll verlinkt. Die Verlinkung geschieht mit den Schlüsselattributen (Primär- und Fremdschlüssel).

Existiert bereits ein ER-Modell, können die Entititäten und die n:m-Beziehungen in Tabellen umgesetzt werden und so zum relationalen Datenbankmodell gelangen.

Ein Beispiel mit zwei Tabellen:

Eine Tabelle speichert relevante Daten eines Vorgesetzten, die Tabelle heißt „Chef“. Diese Tabelle „Chef“ speichert den Vor-/Nachnamen und das Geburtsdatum des Vorgesetzten.

Die andere Tabelle speichert die Daten eines Beraters, die Tabelle heißt „Berater“. Die Tabelle „Berater“ hat einen Vor-/Nachnamen und ein Geburtsdatum.

Beide Tabellen haben zudem einen Primärschlüssel, mit welchen sich die Datensätze eindeutig identifizieren lassen können. Die Primärschlüssel sind numerisch und werden nach dem Tabellennamen plus dem Zusatz „_PK“ benannt.

Da ein Chef nur einen Berater benötigt (und nur haben kann), ein Berater aber mehreren Chefs zur Seite stehen kann (nicht unbedingt zeitgleich, aber in seinem Datenleben in dieser Datenbank), bekommt die Tabelle „Chef“ noch einen Fremdschlüssel, welcher auf den Primärschlüssel der Tabelle „Berater“ verweist.

Der Fremdschlüssel ist ebenfalls numerisch, er hat die selbe Ziffer, wie der Primärschlüssel des entsprechenden Datensatzes eines Beraters. Der Fremdschlüssel heißt wie die Tabelle, auf die er zeigt plus den Zusatz „_FK“.

So wird eine n:1-Beziehung zwischen den Tabellen „Chef“ und „Berater“ erreicht.

Die Grafik zeigt das zugehörige relationale Datenbankmodell:

relationale Datenbank
Die Spalten sind die Attribute des Datenbankmodells. Durch die numerische Gleichheit von dem Attribut „Berater_FK“ der Tabelle „Chef“ und dem Attribut „Berater_PK“ der Tabelle „Berater“ wird die Beziehung aufgestellt.

Die Attribute haben einen für den Attributswert gültigen Datentyp. Beispiele sind die Datentypen text (oder string) für Textinformationen, date für ein Datum, numeric oder integer für Ziffern usw. Die möglichen Datentypen und ihre Bezeichnungen sind von dem jeweiligen Datenbanksystem abhängig.

Sind in der Datenbank Datensätze (eine Zeile einer Tabelle, auch Tupel genannt) eingetragen, könnte dies vom DBMS beispielsweise so angezeigt werden:

relationale Datenbank

Die Grafik zeigt, dass z.B. der Berater Michael Libert zur Zeit keinem Chef als Berater zur Seite steht, die Berater mit den Primärschlüsseln 3 und 1 aber jeweils zwei Chefs beraten.

Anwendungsbeispiel – Autovermietung

Als Anwendungsbeispiel soll ein relationales Datenbankmodell für eine relationale Datenbank einer Autovermietungsgesellschaft „Car4You“ geplant werden.

Hinweis: Die Autovermietung „Car4You“ existiert nicht wirklich, es handelt sich hierbei um ein ausgedachtes Unternehmen.

Problembeschreibung

Das Autovermietungsunternehmen Car4You pflegt Kundendaten von Kunden mit Wohnsitz in standortnahen Städten, als auch in anderen Bundesländern und im Ausland. Ein Kunde hat einen Kundenstatus; Denn ein Kunde mit Kundenstatus „VIP“ könnte beispielweise einen speziellen Kundenservice erhalten.
Bei der Vermietung von Fahrzeugen muss beachtet werden, dass einige Fahrzeugmodelle (z.B. die der Oberklasse oder Sportwagen) nur an Kunden ab 21 Jahren abgegeben werden dürfen. Außerdem muss der Kunde über einen Führerschein verfügen, welcher ihn zum Führen des Fahrzeuges der gewünschten Fahrzeugklasse (Motorrad, PKW, LKW u.a.) berechtigt.
Die Vermietung ist zeitbefristet. Je nach Länge der Vermietung gestaltet sich der Endbetrag, den der Kunde zu zahlen hat. Aus Haftungsgründen muss die Fahrzeugrückgabe auf die Uhrzeit genau gespeichert werden. Die Vermietung muss einen Status haben, beispielsweise „reserviert“, „aktuell vermietet“, „abgeschlossen“ und „storniert“.
Im Fuhrpark der Car4You GmbH können Fahrzeuge von einem Fahrzeugmodell mehrmals vorkommen. Ein Fahrzeug ist zwar einem Fahrzeugmodell zugehörig, aber insgesamt als individuell anzusehen. Ein Fahrzeugmodell muss einer bestimmten Fahrzeugklasse angehören, damit bestimmbar bleibt, ob ein Kunde mit seinem Führerschein das entsprechende Fahrzeug führen darf.
Preise bestimmen sich nach Zeitabschnitten (z.B. „Preis pro Tag“, „Preis pro Woche“) und nach Fahrzeugmodellen.
Das Alter eines Fahrzeuges nach Zeit (Erstzulassung) und Verschleiß (Kilometerstand) sind zu speichern. Ein Fahrzeug hat eine Farbe.
Es muss aus der Datenbank heraus ersichtlich sein, ob ein Fahrzeug sich zurzeit in der Vermietung befindet, wie oft ein Fahrzeug vermietet worden ist und wieviele Kilometer das Auto vom Kunden (einzeln und insgesamt) gefahren wurde.
Ein Fahrzeug kann einen oder mehrere Schäden haben, welche aus Haftungsgründen zeitgenau gespeichert werden müssen. Die Schadenstelle als auch die Art des Schadens muss dabei erfasst und gespeichert werden. (z.B. „ein Kratzer auf der Motorhaube, entdeckt am 15.02.2008“).
Des Weiteren hat ein Fahrzeug bestimmte Ausstattungsmerkmale. So könnte die Car4You GmbH beispielsweise zwei oder mehrere 5er BMW (vom selben Modell) sowohl mit Manuell- als auch mit Automatikgetriebe besitzen.

Umsetzung

ER-Diagram:

ERM

Dieses ER-Modell kann verhältnismäßig leicht in ein relationales Datenbankmodell umgesetzt werden.

relationale Datenbank