Die Definition in wiki/Foreign_key heißt:
Im Kontext von relationalen Datenbanken, ein Fremdschlüssel ein Feld (oder Sammlung von Feldern) in einer Tabelle, die eine Zeile eindeutig von anderer Tabelle identifiziert. Mit anderen Worten, ein Fremdschlüssel ist eine Spalte oder eine Kombination von Spalten, die verwendet wird, um eine Verknüpfung zwischen zwei Tabellen einzurichten und zu erzwingen.
Die Tabelle, die den Fremdschlüssel enthält, wird als referenzierende oder untergeordnete Tabelle bezeichnet, und die Tabelle mit dem Kandidatenschlüssel heißt referenzierte oder übergeordnete Tabelle.
Nehmen wir das Beispiel der Fall:
Ein Kunde 0,1 oder mehr Aufträge vergeben können.
Aus geschäftlicher Sicht wird jeder Kunde durch eine eindeutige ID (Primärschlüssel) identifiziert und anstatt die Kundeninformationen bei jeder Bestellung zu wiederholen, platzieren wir eine Referenz oder einen Zeiger auf diese eindeutige Kunden-ID (Kundenprimär) Schlüssel) in der Auftragstabelle. Wenn wir einen Auftrag betrachten, können wir anhand der eindeutigen Kundennummer feststellen, wer ihn platziert hat.
Die Beziehung zwischen der übergeordneten Tabelle (Customer-Tabelle) und der untergeordneten Tabelle (Order-Tabelle) wird hergestellt, wenn Sie den Wert der FK in der Auftragstabelle nach dem Einfügen der Kundenzeile festlegen. Das Löschen einer untergeordneten Zeile kann sich auch auf das übergeordnete Element auswirken, abhängig von den referenziellen Integritätszeichen (Cascading Rules), die beim Erstellen des FK erstellt wurden. FKs helfen, Integrität in einem relationalen Datenbanksystem zu etablieren.
Wie für den "Sekundärschlüssel" bezieht sich der Begriff auf eine Struktur von 1 oder mehr Spalten, die zusammen helfen, 1 oder mehr Zeilen derselben Tabelle abzurufen. Das Wort "Schlüssel" ist für einige etwas irreführend. Der Sekundärschlüssel muss nicht eindeutig sein (im Gegensatz zum PK). Es ist nicht der Primärschlüssel der Tabelle. Es wird verwendet, um Zeilen in derselben Tabelle zu finden, in der es definiert ist (im Gegensatz zum FK). Die Durchsetzung erfolgt nur durch einen Index (entweder eindeutig oder nicht) und die Implementierung ist optional. Eine Tabelle könnte 0,1 oder mehr Sekundärschlüssel haben. In einer Employee-Tabelle können Sie beispielsweise eine automatisch generierte Spalte als Primärschlüssel verwenden. Alternativ können Sie sich auch dafür entscheiden, die Mitarbeiternummer oder SSN zu verwenden, um Mitarbeiterinformationen abzurufen.
Manchmal mischen Menschen den Begriff "Sekundärschlüssel" mit dem Begriff "Kandidatenschlüssel" oder "Alternate Key" (normalerweise im Normalisierungskontext), aber sie sind alle unterschiedlich.
Es gibt eine Antwort sagen, dass die sekundäre der Kandidat sein könnte, thx für die Korrektur, aber ich kann immer noch verstehen, was ist der Unterschied zwischen normalen Zeilen und der Sekundärschlüssel –
Ich meine, warum würde ich einen sekundären Schlüssel erstellen, was ist Interesse, wie Sie die Informationen des Angestellten auch unter Verwendung der Feldadresse zum Beispiel oder durch Name abrufen können, und dieses Letztes konnte mehr als eine Reihe wie das Sekundär –
zurückbringen Sie verursachen einen Sekundärschlüssel, um Ihnen zu helfen, Reihen in einer anderen Art zu finden ist wahrscheinlich besser für Ihren Geschäftsfall geeignet als die Nutzung des PK. Ein Mitarbeiter kann sich beispielsweise nicht an seine SSN erinnern, kann sich aber an seinen Familiennamen erinnern. Bezüglich der anderen Definition, die einen Sekundärschlüssel als Kandidatenschlüssel betrachtet, stimme ich nicht zu, da der Sekundärschlüssel nicht eindeutig sein muss, während ein Kandidatschlüssel einzigartig ist. – NoChance