Navigation

Relationale Datenbanken

Was ist eine relationale Datenbank?



Ich möchte hiermit keine Normalisierung aufzeigen, sondern einfach eher einen
Denkanstoss geben, wie man so eine Datenbank erstellt. Für genauere Informationen
schaut euch doch einfach mal diese Seite an



Relationale Datenbanken bestehen vom Prinzip her aus Tabellen, Schlüsseln
und Beziehungen. Wenn wir uns jetzt vorstellen, dass wir ein Hausmeister in einem
Block wären. So hat der Hausmeister viele Wohnunegn und zu jeder Wohnung
hat er mindestens einen Schlüssel (der Primärschlüssel oder
auch Generalschlüssel). Diese Schlüssel hängen jetzt
alle an einem Schlüsselbrett (die Tabelle)



In einer Datenbank können wir uns vorstellen, dass die Tabelle das Schlüsselbrett
ist. Die Informationen sind nun auf diesem Schlüssel gespeichert. Das kann
man sich vielleicht so vorstellen, als wenn der Schlüssel einen Anhänger
hätte, auf dem das Stockwerk, die Wohnfläche und der Mieter steht.
Der Hausmeister muss sich also nicht die Wohungen als solche anschauen, sondern
ihm reicht es, wenn er sich den Schlüssel ansieht. Denn in der Tabelle
sind die Zusatzinformationen zu den Wohnungen ja auch enthalten



Genau das gleiche Prinzip haben wir bei relationalen Datenbank. Ein Primärschlüssel
enthält alle Informationen, die mit ihm in Beziehung stehen.

Nun hat der Hausmeister aber nicht nur einen Schlüssel für die Haustür,
sondern auch noch einen für jeden Raum in diesen Wohnungen. Diese Schlüssel
bezeichnet man als Sekundärschlüssel, weil sie Informationen zu dem
Primärschlüssel darstellen. Diese Sekundärschlüssel hängen
jetzt an einem eigenen Schlüsselbrett (Tabelle). Alle Schlüssel
einer Wohnung hängen nun am selben Haken. Der Haken ist der Primärschlüssel
der anderen Tabelle. Somit weiss der Hausmeister, welcher Zimmerschlüssel
zu welcher Wohnung gehört. Und da an jedem Schlüssel wieder ein
Anhänger mit den Raumdetails steht, kann er sehr schnell herausfinden, welcher
Raum in welcher Wohnung was für eine Aussstattung hat.



Angenommen der Hausmeister möchte wissen, welche Wohnung, das grösste
Badezimmer hat. So könnte er natürlich durch alle Wohnungen laufen
und ausmessen, aber das kostet Zeit und Geld.



So kann der Hausmeister einfach schauen welcher der grösste Badezimmerschlüssel
am Wohnungsschlüsselbrett ist. Dieses Schlüsselbrett enthält
also alle Informationen zu den Räumen einer Wohnung. Hier schaut er dann
einfach, an welchem Haken der Schlüssel hängt und weiss dann,
welche Wohnung es ist.



Das wäre eine ganz normale 1:n-Beziehung. Denn 1 Wohnung hat viele (n) Räume.
Man speichert also in der Raumtabelle nur den Wohnungsschlüssel und weiss
welcher Raum zu welcher Wohnung gehört.


Angenommen es gibt mehrere gleiche Räume in einer
Wohnung, so würde man diese Raumtypen in einer separaten Tabelle behandeln
(Bäder, Schlafzimmer, Küchen, etc. ). Man verwendet jetzt eine Hilfstabelle
um die RaumInformationen mit den WohnungsInformationen zu verknüpfen. Also
in etwa ein separates Schlüsselbrett. Hier hängen dann die Schlüssel
der Räume sortiert nach den Wohnungen und den Typen.



In diese Hilfstabelle schreibt man die Schlüssel der Wohnung und des Raumtypen
und jegliche Informationen zum Raum! Also WohnungsID (welcheWohnung), RaumTypID
(welcher Typ Raum) und z.B. die Grösse und Ausstattung.



So etwas währe eine m:n-Beziehung. Denn:

1 Wohnung hat 1 - viele (n) Raumtypen.

1 Raumtyp kann in 1 – vielen (n) Wohnungen vorkommen.

Eine m:n-Beziehung besteht eigentlich aus 2 1:n-Beziehungen.




1:1 Beziehungen stellen Tabellen dar, die einzelne Details nur in eine separate Tabelle speichern. Also
z.B. die Informationen zu einer Wohnungsvermietung haben den gleichen Schlüssel
wie die dazugehörende Wohnung.



Das sollte als grober Überblick reichen um zu verstehen, wie man eine relationale
Datenbank aufbaut.





Ein Sonderfall sind die so genannten SelfJoins oder auch rekursive Tabellen.
Diese übergeben
ihre Schlüssel
innerhalb einer Tabelle. Ein einfaches Beispiel wäre ein Stammbau.



Es gibt hier einen Vaterschlüssel und einen Sohnschlüssel. Derjenige
ohne Vaterschlüssel ist der 1. im Stammbau, derjenige mit dem höchsten
Sohnschlüssel ist der Letzte. Es wird jeweils der Sohnschlüssel
als Vaterschlüssel an den Nachfolger übergeben.



Zum besseren Verständnis eine kleine Übersicht:




Vaterschlüssel
Bezeichnung
Sohnschlüssel
0
Opa
1
1
Vater
2
2
Sohn
3
2
Tochter
4