Relationale Datenbanken

Erstellt: 24.11.2005 | Aktualisiert: 24.11.2005

Eine knappe Einführung ins Thema Relationale Datenbanken. Was sind Entitäten, was ist eine M:N Beziehung und was hat es mit den unterschiedlichen Normalisierungsformen auf sich. Dieses Snippet ist Bestandteil einer Vorlesung und ohne Live-Kommentar mit Vorsicht zu geniessen.

Wie meistens emfpiehlt sich ein kurzer Blick rüber zu Wikipedia: Informationen zu Datenbanken im allgemeinen und spezifisch zum Thema relationale Datenbanken.

Die meisten der heute eingesetzten Datenbankanwendungen bauen auf relationalen Datenbanken auf. Grundlegendes Konzept dabei ist dabei die Tabelle (Spalten und Zeilen). Die Zeilen repräsentieren die sogenannten Datensätze, die Spalten stellen die Datenfelder dar. Eine Zelle enthält somit den Wert, die ein ganz bestimmter Datensatz in einem ganz bestimmten Datenfeld enthält. [Quelle: Geisler, Frank (2005), Datenbanken]

Entitäten und Attribute

Relationale Datenbankmodelle basieren auf sogenannten Entitäten und Beziehungen. Als Entitäten werden Objekte des Alltags bezeichnet, zu denen Daten in eine Datenbank gesammelt werden sollen. Diese wiederum besitzen verschiedene Attribute, mit denen man den Entitäten spezifische Charakteristiken zuweisen kann.

Sowohl Entitäten als auch Attribute werden normalerweise mit einem grossgeschriebenen Subjektiv im Singular angegeben.

Tabellen

Die Tabelle dient bei der relationalen Datenbank als logische Struktur, in der die Daten gespeichert werden.

Elemente einer Tabelle

Schlüssel (Primär- und Fremdschlüssel)

Ein wichtiges Merkmal relationaler Datenbanken sind die Beziehung zwischen den Tabellen. Diese Beziehungen werden durch Schlüssel aufgebaut. Ein Schlüssel, der eindeutig einen einzigen Datensatz bezeichnet, nennt man Primärschlüssel. In der obstehenden Grafik wäre PERSONEN_ID eine sogenannter Primärschlüssel. In der folgenden Grafik sieht man in der oberen Tabelle ein Fremdschlüssel. Fremdschlüssel referenzieren auf Primärschlüssel einer anderen Tabelle.

DB_schluessel.png

Beziehungen

Daten werden in einer Datenbank nicht in einer einzelnen, sondern über mehrere Tabellen verteilt gespeichert, die wiederum zu einander in Beziehung stehen. Dabei können Tabellen in verschiedenen Beziehunge zueinander stehen.

1:1-Beziehung

Bei der sogenannten Eins-zu-Eins Beziehung steht genau ein Datensatz der einen Tabelle mit genau einem Datensatz der anderen Tabelle in Beziehung. Diese Beziehung macht nur bedingt Sinn und lassen eigentlich eher auf ein schlechtes Datenbankdesign schliessen. Oft lassen sich 1:1-Beziehungen zu einer einzigen Tabelle zusammenführen.

eins_zu_eins_Kopie.png

1:N-Beziehung

Eine Eins-zu-Viele Beziehung ist eine Art Fremdschlüssel-Beziehung zwischen Tabellen und bei relationalen Datenbanken der häufigst verwendete Typ.

eins-zu-viele_1.png

Das obenstehende Hunden und Hundehalter Beispiel beschreibt eine Eins-zu-Viele Beziehung. So kann jeweils eine Personen mehrere Hunde besitzen, aber jeder Hund gehört jeweils nur einer Person.

M:N-Beziehung

Was aber passiert wenn ein und derselbe Hund zwei Personen gleichzeitig gehört? Dann würde das Referenzieren von der einen zur anderen Tabelle nicht mehr funktionieren. Es handelt sich in diesem Fall um eine Viele-zu-Viele Beziehung.

viele_zu_viele.png

Eine M:N-Beziehung lässt sich in einer relationalen Datenbank nicht direkt darstellen. Diese Beziehung wird in zwei 1:N-Beziehungen aufgeteilt, die wiederum mit einer Tabelle miteinander verknüpft werden.

DB_mn.png

Normalisierung

Datenbanksysteme sind natürlich nur nützlich, wenn auch die Datenbank- bzw. Tabellenstrukturen korrekt sind. Darüber hinaus hat eine gute Struktur Einfluss auf die Geschwindigkeit und Übersichtlichkeit eines Projektes.

Aus diesen Gründen gilt es Redundanzen (Mehrfacheinträge) und Anomalien (Widersprüchliche Dateninhalte) zu vermeiden. Mit der sogenannten Normalisierung wird der Prozess bezeichnet, mit dem man versucht Datenredundanzen zu eliminieren und Anomalien möglichst auszuschliessen.

Als Referenz wie immer: Normalisierung (Wikipedia)

Erste Normalform

Beispiel: 1NF-Beispiel (Wikipedia)

Zweite Normalform

Beispiel: 2NF-Beispiel (Wikipedia)

Dritte Normalform

Beispiel: 3NF-Beispiel (Wikipedia)

Boyce-Codd-Normalform (BCNF)

Beispiel: BCNF-Beispiel (Wikipedia)

Vierte Normalform

Beispiel: 4NF-Beispiel (Wikipedia)

Fünfte Normalform

Beispiel: 5NF-Beispiel (Wikipedia)

Links zum Thema