Relationale Datenbanken


Warum Relationalität?


Der Ansatz der relationalen Datenbank ist weder Selbstzweck noch von rein akademischem Interesse, sondern verfolgt konkrete praktische Ziele. Einige Vorgehensweisen bei den einzelnen Normalformen werden einem reinen Praktiker, der sich bisher wenig mit Theorie beschäftigt hat, vielleicht übertrieben streng vorkommen. Aber die oft praktizierten Ersatzlösungen entsprechen in der Regel den Strukturen der historisch vorangegangenen Textdatenbanken (Trennzeichen- und Festbreitenprinzip) oder hierarchischen Datenbanken.
 

Die dabei in der Praxis zutage getretenen Probleme, die insbesondere das Textprinzip sich als wenig geeignet erweisen ließen, haben gerade zur Entwicklung der relationalen Theorie in den 70er Jahren geführt.
 

Man sollte sich gut überlegen, ob man durch Verzicht auf Normalisierungsregeln alte und längst als untauglich abgeschnittene Zöpfe durch die Hintertür in einen Datenbankentwurf wieder einlassen will.
 

Was ist Relationalität?


Was ist nun das Relationale an einer Datenbank? Es ist ein weitverbreiteter Irrglaube, der Begriff relational bezöge sich auf Beziehungen zwischen Tabellen. Der Begriff Relation bezeichnet im Gegenteil die Tabellen selbst, die Beziehungen zwischen ihnen heißen Referenzen.
 

Der Hintergrund dieser Begrifflichkeit liegt in der Terminologie von Mathematik und Prädikatenlogik begründet und sollte eigentlich aus dem Schulunterricht vertraut sein.
 

Zwischen Größen, z. B. zwei Variablen x und y kann eine Zuordnung bestehen. Diese drückt man aus, indem man alle zusammengehörigen Wertepaare auflistet.
 

Def(x) = {1,2,3,4,5}, Def(y) = {10, 20, 30, 40, 50}

Zuordnung: „y ist das 10fache von x“

R={(1,10),(2,20),(3,30),(4,40),(5,50)}
 

Die Relation ist eine Menge geordneter Paare und stellt den logischen Zusammenhang zwischen x und y dar. Eine genau gleichwertige, aber etwas übersichtlichere Schreibweise wäre

R={
(1,10),
(2,20),
(3,30),
(4,40),
(5,50)
}
 

Oder gleich:
 

1

10

2

20

3

30

4

40

5

50


Man kann diese Darstellung noch verbessern, indem man die Variablennamen in die Tabelle aufnimmt, dadurch erreicht man die beliebige Vertauschbarkeit der Spalten.
 

x

y

1

10

2

20

3

30

4

40

5

50


Wenn wir uns jetzt eine solche Zuordnung oder Relation nicht nur zwischen zwei sondern beliebig vielen Variablen vorstellen und als Variablenbezeichnungen statt x und y idKd, Anrede, Vorname; Nachname etc. verwenden, sind wir von der 6. Klasse mitten in die Datenbankwelt gelangt.


Die Menge {idKd, Anrede, Vorname; Nachname} heißt Schema und legt durch ihre Reihenfolge die Bedeutung der eigentlichen Werte fest.
 

Die in einer Zeile stehenden Wertegruppen heißen bei 2 Werten Paare, bei beliebig vielen Werten sagt man Tupel. Ein Paar ist ein 2-Tupel.
 

In der Datenbanksprache kennt man das unter dem Begriff Datensatz.
 

Wir erinnern uns ebenfalls aus dem Mathematikunterricht, daß es besondere Relationen gab, nämlich solche, bei denen man aus einer der Variablen die andere(n) eindeutig  bestimmen kann, d. h zu einem x-Wert gibt es nur einen y-Wert und nicht mehrere. Derselbe y-Wert darf aber durchaus bei verschiedenen x-Werten herauskommen.
 

Diese besondere eindeutige Relation bekommt auch einen besonderen Namen: Funktion. In der Oberstufe hat man damit in der Regel etwa zwei Jahre zugebracht. Der Zusammenhang zwischen x und y ist somit besonderer Art, man sagt y ist von x funktional abhängig, umgekehrt wäre x ein Schlüssel für y, weil man aus Kenntnis von x auf y schließen kann (aber nicht zwangsläufig umgekehrt). In der Prädikatenlogik entspricht der funktionalen Abhängigkeit der sogenannte Implikationsoperator, in der Mengenlogik die Teilmengenbeziehung.
 

Als mögliche Abhängigkeitsarten zwischen zwei Variablen (Tabellenfeldern) ergeben sich somit zunächst drei mögliche Arten von wechselseitiger Abhängigkeit:
 


In der Normalisierungslehre nennt man das funktionale Abhängigkeit (Functional Dependency, FD, FA), bzw. mehrwertige Abhängigkeit (MultiValue Dependency, MVD, MWA).