Fremdschlüssel

Aus DBWiki
Wechseln zu: Navigation, Suche

Im Kontext relationaler Datenbanken ist ein Fremdschlüssel ein Feld (oder eine Sammlung von Feldern) in einer Tabelle, das eine Zeile einer anderen Tabelle oder derselben Tabelle eindeutig identifiziert. Mit einfacheren Worten: Der Fremdschlüssel wird in einer zweiten Tabelle definiert, bezieht sich aber auf den Primärschlüssel (oder einen eindeutigen Schlüssel) in der ersten Tabelle. Beispielsweise hat eine Tabelle mit dem Namen Mitarbeiter einen Primärschlüssel mit dem Namen mitarbeiter_id. Eine weitere Tabelle mit dem Namen MitarbeiterDetail hat einen Fremdschlüssel, der auf mitarbeiter_id verweist, um die Beziehung zwischen beiden Tabellen eindeutig zu identifizieren.

Die Tabelle, die den Fremdschlüssel enthält, heißt Kindtabelle, und die Tabelle, die den Kandidatenschlüssel enthält, heißt referenzierte oder übergeordnete Tabelle. Bei der relationalen Modellierung und Implementierung von Datenbanken ist ein eindeutiger Schlüssel eine Menge von 0 oder mehr Attributen, deren Wert(e) garantiert eindeutig für jedes Tupel (Datensatz) in einer Beziehung ist (sind). Der Wert (oder die Kombination von Werten) eindeutiger Schlüsselattribute für ein beliebiges Tupel kann nicht für ein anderes Tupel in dieser Beziehung dupliziert werden.

Wenn mehr als eine Spalte zu einem eindeutigen Schlüssel zusammengefasst sind, wird ihre Kombination verwendet, um auf jede Zeile zuzugreifen und die Eindeutigkeit zu erhalten. Die Werte der Spalten werden nicht zusammengefasst, sondern über ihre Datentypen verglichen.

Da der Fremdschlüssel dazu dient, eine bestimmte Zeile einer referenzierten Tabelle zu identifizieren, ist es in der Regel erforderlich, dass der Fremdschlüssel gleich dem Kandidatenschlüssel in einer Zeile der Primärtabelle ist, oder keinen Wert hat (NULL-Wert). Diese Regel wird als referentielle Integritätsbeschränkung zwischen den beiden Tabellen bezeichnet. Da Verstöße gegen diese Beschränkungen die Ursache für viele Datenbankprobleme sein können, bieten die meisten Datenbankmanagementsysteme Mechanismen, die sicherstellen, dass jeder Nicht-Null-Fremdschlüssel einer Zeile der referenzierten Tabelle entspricht.

Frei übersetzt aus Foreign key - Wikipedia