Beziehungen – Verbindungsarten zwischen den verschiedenen Tabellen
Im Gegensatz zur realen Welt sind bei Datenbanken Beziehungen sehr eindeutig (und problemlos). Um diese Beziehungen aufzubauen, wird für jede Tabelle ein eindeutiges Feld benötigt. Bei der Postleitzahl ist es klar – jede Postleitzahl kann nur einmal vorkommen (laut unsere Definition oben). Also kann man über die Tabelle Adresse und dem Feld PLZ dann in der Tabelle PLZ-ORT den entsprechenden Ort auslesen.
Bei der Anrede haben wir als Auswahl „m“ für Herr und „w“ für Frau. Die Tabelle für die Anreden wird um das Feld „kuerzel“ ergänzt.
Tabelle: anrede:
akuerzel | anrede |
---|---|
w | Frau |
m | Herr |
Schauen wir uns nun die Beziehungen an:
Anrede: ein Kürzel bei der Anrede kann nur eine Anrede erhalten
PLZ: eine PLZ kann nur einen ORT haben.
Beides sind 1:1 Beziehungen (in der realen Welt würden wir von monogam sprechen)
1:n Beziehungen
Natürlich sind auch andere Beziehungen möglich. Beispielweise könnten wir zu den Adressen noch verwalten, wenn wir an Leute Bücher ausgeliehen haben. (wir benötigen noch eine Tabelle für die Bücher).
Jetzt wird es vorkommen, dass wir an eine Person mehr als ein Buch verleihen. Wir müssen also in unserer Tabelle eine 1:n Beziehung abbilden können.
Schon ist es bei den Tabellen und Datenbanken vorbei mit der Monogamie. Eine Person kann viele Bücher haben, aber jedes Buch kann sich gerade nur bei einer Person befinden – also 1 zu n.
n:m Beziehungen
Komplexer wird es, wenn wir Beziehungen haben, die einen Mehrfachtatbestand erfüllen. Erweitern wir unser Beispiel. Ich kann den Adressen nun z.B. besuchte Kurse (Unterrichtsfächer, Studienkurse, ...) zuordnen. Jede Person kann mehrere Kurse besuchen. Und jeder Kurs kann verschiedene Personen als Teilnehmer beinhalten. Das ergibt eine n:m Beziehung.
mathematisch gesehen:
1 Person kann 0,1 oder n Kurse besuchen
1 Kurs kann 0,1 oder m Teilnehmer haben
Wenn Sie einen Fehler finden, bitte mitteilen (egal ob Schreibfehler oder inhaltlicher Fehler).
Mit Maus fehlerhafte Stelle markieren und übernehmen mit folgendem Button: