Datenbankmodelle

Beim Speichern von Daten kann man hierarchische und relationale Datenbankstrukturen unterscheiden.

Hierarchische Datenbank

Der Aufbau soll an einem Beispiel erklärt werden:

Verschiedene Kurse werden von Teilnehmern belegt. Jeder besuchte Kurs wird mit  Kursnummer und Datum abgespeichert. Wenn eine Person einen Kurs zweimal besucht, dann wird jedesmal das Datum notiert. Jede Person besitzt eine Teilnehmernummer.

Teiln.-Nr. Name Kurs-Nr. Titel Datum
121 Schmid 10 Klavier 1.3.1995
134 Habicht 10 Klavier 3.4.1997
155 Bribil 15 Stricken 5.4.1998
121 Schmid 12 Origami 21.6.1997
155 Bribil 15 Stricken 4.12.1996
121 Schmid 12 Origami 25.2.1998

In einer hierarchischen Datenbank werden die Daten in Form einer einzelnen, sequentiellen Datei gespeichert:

1 121 Schmid
1.1 10 Klavier
1.1.1 1.3.1995
1.2 12 Origami
1.2.1 21.6.1997
1.2.2 25.2.1998
2. 134 Habicht
2.1 10 Klavier
2.1.1 3.4.1997
3. 155 Bribil
3.1 15 Stricken
3.1.1 4.12.1996
3.1.2 25.2.1998

Die erste Spalte gibt die Hierarcheistufe an, während in der zweiten und dritten die Daten der einzelnen Hierarchiestufen stehen. In diesem Beispiel besitzt der Kursteilnehmer die höchste Hierarchie, dann folgt der Kurs und zum Schluss das Datum. Es wäre auch möglich, den Kursen die höchste Hierarchiestufe zuzuordnen.

Eine hierarchische Datenbank ist nicht besonders flexibel bezüglich Strukturänderungen. Wenn neue Daten gespeichert werden müsste ein umfangreiches Umkopieren stattfinden, um die Daten hierarchisch geordnet ablegen zu können. Man hilft sich hier mit Zeigern, welche an der richtigen Stelle auf die entsprechenden Daten verweisen.

Diese Methode hat mehrere Vorteile und viele Nachteile. Positiv ist die Tatsache, dass die physikalische Struktur der Daten auf einem Datenträger nicht von Bedeutung ist. Der Zugriff auf die Daten erfolgt einfach über Zeiger, die auf die nächste Speicherstelle verweisen. Daten lassen sich leicht hinzufügen und löschen.

Nachteilig ist, dass man unterschiedliche Informationsgruppen nicht einfach verknüpfen kann,  um neue Informationseinheiten zu bilden. Nachdem die Datenbank erstellt wurde, lässt sich  das Format der Daten auf dem Datenträger nicht nach Belieben ändern. Bei Änderungen am Format müsste man eine neue Datenbankstruktur erzeugen.

Relationale Datenbank

Bei relationalen Datenbanken (lat. relatio – Gegenüberstellung, Beziehung) werden die Daten geordnet nach Themenkreisen in Form von Tabellen abgelegt. Für das Beispiel Kursverwaltung ergeben sich drei Tabellen:

Teilnehmer

Teiln.-Nr. Name
121 Schmid
134 Habicht
155 Bribil
Kursbesuche

Teiln.-Nr. Kurs-Nr. Datum
121 10 1.3.1995
134 10 3.4.1997
155 15 5.4.1998
121 12 21.6.1997
155 15 4.12.1996
121 12 25.2.1998
Kurs

Kurs-Nr. Titel
10 Klavier
12 Origami
15 Stricken

Die Zuordnung der Kursteilnehmer zum entsprechenden Kurs erfolgt über die Tabelle Kursbesuche.

Relationale Datenbanken sind sehr flexibel. Bei Strukturergänzungen erzeugt man einfach für jedes neue Thema eine neue Tabelle. Dies kann geschehen, ohne dass die übrige Datenstruktur berührt wird. Die Daten können auch unabhängig von irgendwelchen Beziehungen in den verschiedenen Tabellen abgelegt werden.

Relationale Datenbanken zeichnen sich durch große Flexibilität bezüglich Änderungen und Ergänzungen der Datenstruktur aus. Sie ermöglichen eine sehr detaillierte Nachbildung der Realität. Gerade diese Flexibilität macht sie jedoch schwer überschaubar, weshalb eine gute Dokumentation der Datenstruktur und der verschiedenen Beziehungen zwischen den Tabellen unerlässlich ist.

Hierarchische Datenbanken verlieren immer mehr an Bedeutung und werden durch relationale Datenbanken ersetzt.

Relationale Datenbanken

Datenbankaufgabe Kursverwaltung

Datenbanktheorie

Es ist ein bisschen Theorie notwendig, wenn man aus den meist diffusen Informationen und Anforderungen an eine neue Datenbank eine Datenstruktur entwerfen und soweit verfeinern soll, dass sie den Ansprüchen des späteren Benutzers genügt.

Das Globale ER-Modell

Das Globale ER-Modell (Entity Relationship) stellt eine Erweiterung des klassischen Relationenmodells dar, in der neben der Normalisierung der Daten auch globale Beziehungen zwischen den Tabellen berücksichtigt werden (globale Normalisierung). Das ER-Modell gibt Regeln vor, mit denen sich Daten so strukturieren lassen, dass sie bestimmte Kriterien erfüllen.

Die globale Datennormalisierung bezweckt, dass Redundanzen (mehrfaches Speichern von gleichen Informationen) eliminiert werden und damit die Datenkonsistenz (Eindeutigkeit der Daten) gewährleistet werden kann.

Redundanzfreie Datenspeicherung bedeutet, dass eine bestimmte Information in einer Datenbank nur gerade einmal vorkommt. Wenn z.B. die Personaldaten eines Herrn Müllers abgespeichert werden, dann existiert der Name „Müller“ nur an einem einzigen Ort in der Datenbank.

Datenkonsistenz bedeutet, dass Daten eindeutige Informationen darstellen. Sollten in einer Datenbank z.B. mehrere Müller existieren, so müssen diese z.B. durch eine Personalnummer eindeutig unterschieden werden können. Von einer Inkonsistenz spricht man, wenn der gleiche Herr „Müller“ unter zwei Personalnummern gespeichert wurde.

Das Feld, das zur eindeutigen Identifizierung der Datensätze dient bezeichnet man als Primärschlüssel. Damit eine Relation zwischen Tabellen erstellt werden kann, benötigt man in jeder Tabelle einen Prmärschlüssel. Solche Informationen werden einem Datensatz meist als Zusatz beigefügt, da der Inhalt unter Umständen die Datensätze nicht genügend voneinander unterscheidet.

Man verwendet häufig von Anfang an ein einzelnes Feld für die Identifikation, das automatisch eindeutige Werte erhält. Solche Felder, referentielle Selektoren genannt, können vom Datenbanksystem automatisch erzeugt oder auch manuell erfasst werden.

Die Notwendigkeit einer Relation ergibt sich meist aus den gegebenen Informationen. So sollte man Informationen in zwei Tabellen aufteilen, wenn es zu einem Oberbegriff mehrere  Unterbegriffe gibt. Solche Datenstrukturen gibt es sehr häufig.

Beispiele dafür sind:

  • Mehrere Ansprechpartner zu einer Firma.
  • Mehrere Titel auf einer CD.
  • Mehrere Artikel, die zu einer Warengruppe gehören.
  • Mehrere Mitarbeiter, die zu einer Abteilung gehören.

Beziehungen – Relationen

Datenbanksysteme

Erste einfache Datenbank in Access: Klassenliste