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
|
Kursbesuche
|
Kurs
|
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.
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.
Datenbanksysteme
- SQL-Datenbanken
- MS-Access
- OpenOffice Base
Erste einfache Datenbank in Access: Klassenliste