Unterschied zwischen Fremdschlüssel und Primärschlüssel

Das Hauptunterschied zwischen Fremdschlüssel und Primärschlüssel ist das Fremdschlüssel ist eine Spalte oder eine Gruppe von Spalten, die sich auf einen Primärschlüssel oder einen Kandidatenschlüssel einer anderen Tabelle beziehen, während der Primärschlüssel eine Spalte oder eine Spaltengruppe ist, mit der eine Zeile in einer Tabelle eindeutig identifiziert werden kann.

Eine Spalte oder ein Satz von Spalten, die zum Identifizieren oder Zugreifen auf eine Zeile oder einen Satz von Zeilen in einer Datenbank verwendet werden können, 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 identifizieren. Der 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.

INHALT

1. Übersicht und Schlüsseldifferenz
2. Was ist ein Fremdschlüssel?
3. Was ist Primärschlüssel?
4. Vergleich nebeneinander - Fremdschlüssel und Primärschlüssel in tabellarischer Form
5. Zusammenfassung

Was ist ein 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 Spaltengruppe 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. Außerdem ermöglichen Fremdschlüssel das Verknüpfen von Daten über mehrere Tabellen hinweg. Daher kann der Fremdschlüssel keine Werte enthalten, die nicht in der Tabelle erscheinen, auf die er verweist. Die durch den Fremdschlüssel bereitgestellte Referenz hilft dann, Informationen in mehreren Tabellen zu verknüpfen. Dies würde bei normalisierten Datenbanken unabdingbar werden. Mehrere Zeilen in der referenzierenden Tabelle können sich auf eine einzelne Zeile in der referenzierten Tabelle beziehen.

Abbildung 01: Fremdschlüsselzuordnung

Im ANSI SQL-Standard definiert die FOREIGN KEY-Einschränkung Fremdschlüssel. Außerdem können Sie die Fremdschlüssel definieren, wenn Sie die Tabelle selbst erstellen. Eine Tabelle kann mehrere Fremdschlüssel haben und auf verschiedene Tabellen verweisen.

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 haben. Der Primärschlüssel erzwingt die implizite NOT NULL-Einschränkung. Daher kann eine Spalte mit Primärschlüssel keine NULL-Werte enthalten. Der 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 Globally Unique Identifier (GUID) in Microsoft SQL Server.

Abbildung 02: Primärschlüssel

Darüber hinaus definiert die PRIMARY KEY-Einschränkung in ANSI SQL Standard Primärschlüssel. Beim Erstellen der Tabelle kann auch ein Primärschlüssel definiert werden. Darüber hinaus ermöglicht SQL, dass der Primärschlüssel aus einer oder mehreren Spalten besteht, und jede im Primärschlüssel enthaltene Spalte ist implizit als NOT NULL definiert. Für einige Datenbankverwaltungssysteme müssen die Primärschlüsselspalten jedoch explizit NICHT NULL sein.

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

 Fremdschlüssel vs. Primärschlüssel

Der Fremdschlüssel ist eine Spalte oder Gruppe von Spalten in einer relationalen Datenbanktabelle, die eine Zuordnung zwischen Daten in zwei Tabellen bereitstellt. Primärschlüssel ist eine spezielle relationale Datenbanktabellenspalte oder eine Kombination aus mehreren Spalten, mit der alle Tabellensätze eindeutig identifiziert werden können.
NULL
Fremdschlüssel akzeptiert NULL-Wert. Primärschlüsselwert kann nicht NULL sein.
Anzahl der Schlüssel
Tabelle kann mehrere Fremdschlüssel enthalten. 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 Beziehung dürfen für ein Primärschlüsselattribut keine doppelten Werte haben.

Zusammenfassung - Fremdschlüssel vs. Primärschlüssel

Der Unterschied zwischen Fremdschlüssel und Primärschlüssel besteht darin, dass der Fremdschlüssel eine Spalte oder eine Spaltengruppe ist, die sich auf einen Primärschlüssel oder einen Kandidatenschlüssel einer anderen Tabelle bezieht, während der Primärschlüssel eine Spalte oder eine Spaltengruppe ist, für die eindeutig festgelegt werden kann Eine Zeile in einer Tabelle identifizieren.

Referenz:

1. „Fremdschlüssel“. Wikipedia, Wikimedia Foundation, 12. Mai 2018. Hier verfügbar  
2. „Primärschlüssel“. Wikipedia, Wikimedia Foundation, 3. April 2018. Hier verfügbar 

Bildhöflichkeit:

1.Foreign-Key-Mapping'By MovGP0 - Eigene Arbeit, (CC BY-SA 3.0) über Commons Wikimedia  
2.'Erd-id-as-primary-key 'Durch UniCollab - Eigene Arbeit, (CC BY-SA 3.0) über Commons Wikimedia