Mit Beziehungen zwischen einzelnen Tabellen können wir unsere Daten strukturieren. Wir können verschiedene Arten von Beziehungen nutzen, um unterschiedliche Gegebenheiten aus der realen Welt zu modellieren.
Mit relationalen Datenbank können drei Arten von Beziehungen hergestellt werden:
Eins zu Eins (one to one)
Eins zu Mehreren (one to many
Mehrere zu Mehrere (many to many)
Eins zu Eins Beziehungen werden über die Primärschlüssel (Primary Keys) von Tabellen hergestellt.
Mit einer solchen Aufteilung kannst du zum Beispiel schützenswerte Informationen über einen Mitarbeiter nur für bestimmte Zwecke freigeben.
Soll zum Beispiel ein Mitarbeiter einen Newsletter an alle Mitarbeiter schicken, kannst du ihn nur für die Tabelle Mitarbeiter
freigeben.
Er sieht damit nicht automatisch das Gehalt von jedem Mitarbeiter.
Wenn wir die beiden Primärschlüssel miteinander verbinden, entsteht eine "Eins zu Eins" Beziehung.
Jede MitarbeiterID
, die du aus der Tabelle Mitarbeiter
auswählst wird auch nur einmal in der MitarbeiterDetails
Tabelle gefunden
Dies ist die am häufigsten genutzte Beziehung.
Wenn wir die beiden Tabellen über die Spalte KundenID
verbinden, entsteht eine "Einz zu Mehreren" Verbindung.
Wir hoffen natürlich, dass ein Kunde nicht nur eine, sondern mehrere Bestellungen bei uns tätigt.
Jede KundenID
kann mehrmals in der Tabelle Bestellungen
stehen.
Jeder Kunde kann also mehrere Bestellungen aufgeben.
Aber, jede Bestellung kann maximal von einem Kunden getätigt werden.
Setzen wir nun noch die NOT NULL
Regel in der Bestellungen
Tabelle auf der KundenID
Spalte, dann muss für eine Bestellung immer auch ein Kunden eingetragen sein.
Ein Schüler belegt mehrere Schulfächer. An einem Schulfach, einer Unterrichtsstunde, nehmen mehrere Schüler teil.
Um diese Beziehung abzubilden, benötigen wir eine weitere Tabelle (Junction-Tabelle).
Jeder Datensatz in der Einschreibungen
Tabelle wird mit einem Schüler und einem Schulfach verknüpft.
Jeder Schüler steht mehrmals in der Einschreibungen
Tabelle und jedes Schulfach steht ebenfalls mehrmals in der Tabelle Einschreibungen
.