Unterschied zwischen Fremdschlüssel und Primärschlüssel

Anonim

Fremdschlüssel vs. Primärschlüssel

Eine Spalte oder eine Gruppe von Spalten, mit denen eine Zeile oder eine Reihe von Zeilen in einer Datenbank identifiziert oder darauf zugegriffen werden kann wird als Schlüssel bezeichnet. Ein Primärschlüssel in einer relationalen Datenbank ist eine Kombination von Spalten in einer Tabelle, die eine Zeile der Tabelle eindeutig identifiziert. Der Fremdschlüssel in einer relationalen Datenbank ist ein Feld in einer Tabelle, das dem Primärschlüssel einer anderen Tabelle entspricht. Der Fremdschlüssel wird zum Querverweisstabellen verwendet.

Was ist Primärschlüssel?

Primärschlüssel ist eine Spalte oder eine Kombination von Spalten, die eine Zeile in einer Tabelle einer relationalen Datenbank eindeutig definiert. Eine Tabelle kann höchstens einen Primärschlüssel enthalten. Primärschlüssel erzwingt die implizite NOT NULL-Einschränkung. Eine Spalte, die als Primärschlüssel definiert ist, kann daher keine NULL-Werte enthalten. Primärschlüssel kann ein normales Attribut in der Tabelle sein, das garantiert eindeutig ist, z. B. eine Sozialversicherungsnummer, oder es kann ein eindeutiger Wert sein, der vom Datenbankverwaltungssystem generiert wird, z. B. eine GUID (Globally Unique Identifier) ​​in Microsoft SQL Server. Primärschlüssel werden durch die PRIMARY KEY-Einschränkung in ANSI SQL Standard definiert. Der Primärschlüssel kann auch beim Erstellen der Tabelle definiert werden. SQL ermöglicht, dass der Primärschlüssel aus einer oder mehreren Spalten besteht und jede Spalte, die im Primärschlüssel enthalten ist, implizit als NOT NULL definiert ist. Einige Datenbankverwaltungssysteme erfordern jedoch, dass die Primärschlüsselspalten explizit NOT NULL sind.

Was ist Fremdschlüssel?

Fremdschlüssel ist eine referenzielle Einschränkung zwischen zwei Tabellen. Es identifiziert eine Spalte oder eine Gruppe von Spalten in einer Tabelle, die als referenzierende Tabelle bezeichnet wird und auf eine Gruppe von Spalten in einer anderen Tabelle verweist, die als referenzierte Tabelle bezeichnet wird. Der Fremdschlüssel oder die Spalten 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. Fremdschlüssel werden verwendet, um Daten über mehrere Tabellen hinweg zu verknüpfen. Daher kann der Fremdschlüssel keine Werte enthalten, die nicht in der Tabelle enthalten sind, auf die er verweist. Dann kann die durch den Fremdschlüssel bereitgestellte Referenz verwendet werden, um Informationen in mehreren Tabellen zu verknüpfen, und dies würde bei normalisierten Datenbanken essentiell werden. Mehrere Zeilen in der referenzierenden Tabelle können auf eine einzelne Zeile in der referenzierten Tabelle verweisen. Im ANSI-SQL-Standard werden Fremdschlüssel mit der Einschränkung FOREIGN KEY definiert. Außerdem können Fremdschlüssel definiert werden, wenn die Tabelle selbst erstellt wird. Eine Tabelle kann mehrere Fremdschlüssel enthalten und auf verschiedene Tabellen verweisen.

Was ist der Unterschied zwischen Fremdschlüssel und Primärschlüssel?

Die Hauptunterschied zwischen dem Primärschlüssel und dem Fremdschlüssel besteht darin, dass der Primärschlüssel eine Spalte oder eine Gruppe von Spalten ist, die zur eindeutigen Identifizierung einer Zeile in einer Tabelle verwendet werden können, während der Fremdschlüssel eine Spalte oder eine Gruppe von Spalten ist die sich auf einen Primärschlüssel oder einen Kandidatenschlüssel einer anderen Tabelle beziehen.Der Fremdschlüssel bietet hauptsächlich eine Methode zum Verknüpfen von Informationen in mehreren Tabellen. Ein weiterer Unterschied besteht darin, dass eine Tabelle einen einzelnen Primärschlüssel haben kann, jedoch mehrere Fremdschlüssel enthalten kann, die auf unterschiedliche Tabellen verweisen können.