Der Hauptunterschied zwischen Fremdschlüssel und Primärschlüssel besteht darin, dass der Fremdschlüssel eine Sp alte oder eine Gruppe von Sp alten ist, die auf einen Primärschlüssel oder einen Kandidatenschlüssel einer anderen Tabelle verweisen, während der Primärschlüssel eine Sp alte oder eine Gruppe von Sp alten ist die verwendet werden können, um eine Zeile in einer Tabelle eindeutig zu identifizieren.
Eine Sp alte oder eine Gruppe von Sp alten, die verwendet werden kann, um eine Zeile oder eine Gruppe von Zeilen in einer Datenbank zu identifizieren oder darauf zuzugreifen, wird als Schlüssel bezeichnet. Ein Primärschlüssel in einer relationalen Datenbank ist eine Kombination von Sp alten in einer Tabelle, die eine Zeile der Tabelle eindeutig identifiziert. Fremdschlüssel in einer relationalen Datenbank ist ein Feld in einer Tabelle, das mit dem Primärschlüssel einer anderen Tabelle übereinstimmt. Der Fremdschlüssel wird zum Querverweisen von Tabellen verwendet.
Was ist ein Fremdschlüssel?
Fremdschlüssel ist eine referenzielle Einschränkung zwischen zwei Tabellen. Es identifiziert eine Sp alte oder eine Gruppe von Sp alten in einer Tabelle, die als referenzierende Tabelle bezeichnet wird, die auf eine Gruppe von Sp alten in einer anderen Tabelle verweist, die als referenzierte Tabelle bezeichnet wird. Der Fremdschlüssel oder die Sp alten in der referenzierenden Tabelle müssen der Primärschlüssel oder ein Kandidatenschlüssel (ein Schlüssel, der als Primärschlüssel verwendet werden kann) in der referenzierten Tabelle sein. Darüber hinaus ermöglichen Fremdschlüssel die Verknüpfung von Daten über mehrere Tabellen hinweg. Daher darf der Fremdschlüssel keine Werte enth alten, die nicht in der Tabelle erscheinen, auf die er verweist. Dann hilft die durch den Fremdschlüssel bereitgestellte Referenz, Informationen in mehreren Tabellen zu verknüpfen, was bei normalisierten Datenbanken unerlässlich werden würde. Mehrere Zeilen in der referenzierenden Tabelle können auf eine einzelne Zeile in der referenzierten Tabelle verweisen.
Abbildung 01: Zuordnung von Fremdschlüsseln
Im ANSI-SQL-Standard definiert die Einschränkung FOREIGN KEY Fremdschlüssel. Außerdem ist es möglich, die Fremdschlüssel beim Erstellen der Tabelle selbst zu definieren. Eine Tabelle kann mehrere Fremdschlüssel haben und sie können auf verschiedene Tabellen verweisen.
Was ist der Primärschlüssel?
Primärschlüssel ist eine Sp alte oder eine Kombination von Sp alten, die eine Zeile in einer Tabelle einer relationalen Datenbank eindeutig definiert. Eine Tabelle kann höchstens einen Primärschlüssel haben. Der Primärschlüssel erzwingt die implizite NOT NULL-Einschränkung. Daher kann eine Sp alte mit Primärschlüssel keine NULL-Werte enth alten. Der Primärschlüssel kann ein normales Attribut in der Tabelle sein, das garantiert eindeutig ist, z. B. eine Sozialversicherungsnummer, oder es kann sich um einen eindeutigen Wert handeln, der vom Datenbankverw altungssystem generiert wird, z. B. ein Globally Unique Identifier (GUID) in Microsoft SQL Server.
Abbildung 02: Primärschlüssel
Darüber hinaus definiert die PRIMARY KEY-Einschränkung im ANSI-SQL-Standard Primärschlüssel. Es ist auch möglich, beim Erstellen der Tabelle einen Primärschlüssel zu definieren. Darüber hinaus erlaubt SQL, dass Primärschlüssel aus einer oder mehreren Sp alten bestehen, und jede Sp alte, die im Primärschlüssel enth alten ist, ist implizit als NOT NULL definiert. Einige Datenbankverw altungssysteme erfordern jedoch, dass die Primärschlüsselsp alten explizit NICHT NULL sind.
Was ist der Unterschied zwischen Fremdschlüssel und Primärschlüssel?
Fremdschlüssel vs. Primärschlüssel |
|
Fremdschlüssel ist eine Sp alte oder eine Gruppe von Sp alten in einer relationalen Datenbanktabelle, die eine Zuordnung zwischen Daten in zwei Tabellen bereitstellt. | Primärschlüssel ist eine spezielle Tabellensp alte einer relationalen Datenbank oder eine Kombination aus mehreren Sp alten, die es ermöglicht, alle Tabelleneinträge eindeutig zu identifizieren. |
NULL | |
Fremdschlüssel akzeptiert NULL-Wert. | Primärschlüsselwert darf nicht NULL sein. |
Anzahl Schlüssel | |
Tabelle kann mehrere Fremdschlüssel haben. | Tabelle kann nur einen Primärschlüssel haben. |
Vervielfältigung | |
Tupel können einen doppelten Wert für ein Fremdschlüsselattribut haben. | Zwei Tupel in einer Relation dürfen keine doppelten Werte für ein Primärschlüsselattribut haben. |
Zusammenfassung – Fremdschlüssel vs. Primärschlüssel
Der Unterschied zwischen Fremdschlüssel und Primärschlüssel besteht darin, dass der Fremdschlüssel eine Sp alte oder eine Gruppe von Sp alten ist, die auf einen Primärschlüssel oder einen Kandidatenschlüssel einer anderen Tabelle verweisen, während der Primärschlüssel eine Sp alte oder eine Gruppe von Sp alten ist kann verwendet werden, um eine Zeile in einer Tabelle eindeutig zu identifizieren.