SQL: Tabelle nur mit Fremdschlüsseln, wann und wozu?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Damit erzeugt man Relationen/Verhältnisse zu einander, ich versuche es leicht zu erklären:

Ein Haus hat einen Besitzer.

Wir haben drei Tabellen:

  • Häuser
  • Menschen
  • Hausbesitzer

Die Tabellen Häuser und Menschen sind so wie du dir es vorstellst, die Tabellen enthalten Objektbezogene Daten (Name des Menschen, Ort vom Haus etc.)

Die Tabelle Hausbesitzer jedoch nicht, Hausbesitzer dient lediglich dazu um einen Haus einem Menschen zuzuordnen. Sprich in der Tabelle gibt es eine ID um dass Verhältnis eindeutig zuzuordenen und jeweils eine HausID und MenschID (beides Fremdschlüssel).

Die dritte Tabelle ist also lediglich eine "Verbindung" der zweier anderer Tabellen und gibt somit ein Verhältnis zweier anderer Tabellen wieder.

Jetzt fragst du dich vielleicht:

Wieso hat die Haus Tabelle nicht einfach eine "Besitzer" Spalte?

Das würde tatsächlich funktionieren, aber nur solange es wirklich nur einen Besitzer gibt. Nehmen wir an man möchte abbilden dass es zwei Besitzer gibt. Dann steht man vor der Wahl entweder zwei spalten einzufügen (Besitzer1, Besitzer2), ODER man nimmt die normalisierte Variante und erstellt eben die dritte Tabelle Hausbesitzer die dann eine n:n Beziehung ermöglicht.

Hier nochmal in Fachsprache:

Diese Art von Tabellen werden in SQL auch als Junction- oder Verbindungstabellen bezeichnet. Sie dienen dazu, viele-zu-viele-Beziehungen zwischen anderen Tabellen zu verwalten.

Die Verwendung von Fremdschlüsseln in einer Junction-Tabelle ist sinnvoll, da sie sicherstellen, dass die Beziehung zwischen den Tabellen aufrechterhalten wird und keine ungültigen Einträge hinzugefügt werden können. Obwohl es auf den ersten Blick scheinen mag, dass diese Tabelle wenig Informationen enthält, ermöglicht sie es, komplexe Beziehungen zwischen verschiedenen Tabellen zu modellieren, was in vielen Datenbankanwendungen von entscheidender Bedeutung ist.

Woher ich das weiß:Berufserfahrung – Beruf, Schule, Hobby und eigene Erfahrungen