Unterschied zwischen Primärschlüssel und Fremdschlüssel

Hauptunterschiede zwischen Primärschlüssel und Fremdschlüssel

  • Eine Primärschlüsseleinschränkung ist eine Spalte, die jede Zeile in der Tabelle des relationalen Datenbankverwaltungssystems eindeutig identifiziert, während ein Fremdschlüssel eine Spalte ist, die eine Beziehung zwischen zwei Tabellen erstellt.
  • Der Primärschlüssel akzeptiert niemals Nullwerte, während der Fremdschlüssel mehrere Nullwerte akzeptieren kann.
  • Eine Tabelle kann nur einen einzigen Primärschlüssel enthalten, während eine Tabelle mehrere Fremdschlüssel enthalten kann.
  • Der Wert des Primärschlüssels kann nicht aus der übergeordneten Tabelle entfernt werden, wohingegen der Wert des Fremdschlüssels aus der untergeordneten Tabelle entfernt werden kann.
  • Keine zwei Zeilen können identische Werte für einen Primärschlüssel haben; Andererseits kann ein Fremdschlüssel doppelte Werte enthalten.
  • Es gibt keine Einschränkung beim Einfügen der Werte in die Tabellenspalte, während gleichzeitig ein beliebiger Wert in die Fremdschlüsseltabelle eingefügt wird. Stellen Sie sicher, dass der Wert in einer Spalte eines Primärschlüssels vorhanden ist.
Unterschied zwischen Primärschlüssel und Fremdschlüssel
Unterschied zwischen Primärschlüssel und Fremdschlüssel

Hier habe ich den Unterschied zwischen Primärschlüssel und Fremdschlüssel analysiert und werde deren Vor- und Nachteile umfassend bewerten.

Was ist Primärschlüssel?

Eine Primärschlüsseleinschränkung ist eine Spalte oder eine Gruppe von Spalten, die jede Zeile in der Tabelle des relationalen Datenbankverwaltungssystems eindeutig identifiziert. Es darf kein Duplikat sein, d. h. derselbe Wert sollte nicht mehr als einmal in der Tabelle vorkommen.

Eine Tabelle kann nicht mehr als einen Primärschlüssel haben. Der Primärschlüssel kann auf Spalten- oder Tabellenebene definiert werden. Wenn Sie einen zusammengesetzten Primärschlüssel erstellen, sollte dieser auf Tabellenebene definiert werden.

Beispiel eines Primärschlüssels

Syntax:

Nachfolgend finden Sie die Syntax des Primärschlüssels:

CREATE TABLE <Table-Name>
(
Column1 datatype,
Column2 datatype,  PRIMARY KEY (Column-Name)
.
);    

Hier

  • Table_Name ist der Name der Tabelle, die Sie erstellen müssen.
  • Column_Name ist der Name der Spalte mit dem Primärschlüssel.

Beispiel:

StudID Rolle Nr Vorname Nachname E-Mail
1 11 Tom PREIS abc@googlemail.com
2 12 Nick Wright xyz@googlemail.com
3 13 Dana Nathan mno@yahoo.com

Im obigen Beispiel haben wir eine Studententabelle mit Spalten wie StudID, Matrikelnummer, Vorname, Nachname und E-Mail erstellt. StudID wurde als Primärschlüssel gewählt, da es andere Zeilen in der Tabelle eindeutig identifizieren kann.

Warum Primärschlüssel verwenden?

Im Laufe meiner jahrelangen Arbeit mit Datenbanksystemen sind mir die folgenden Nachteile und Vorteile bei der Verwendung eines Primärschlüssels aufgefallen:

  • Das Hauptziel des Primärschlüssels besteht darin, jeden einzelnen Datensatz in der Datenbanktabelle zu identifizieren.
  • Sie können einen Primärschlüssel verwenden, wenn Sie nicht zulassen, dass jemand Nullwerte eingibt.
  • Wenn Sie Datensätze löschen oder aktualisieren, wird die von Ihnen angegebene Aktion durchgeführt, um die Datenintegrität sicherzustellen.
  • Führen Sie den Einschränkungsvorgang aus, um den Lösch- oder Aktualisierungsvorgang für die übergeordnete Tabelle abzulehnen.
  • Wenn Sie eine DBMS-Tabelle physisch organisieren, werden die Daten in einer Folge von gruppierten Indizes organisiert.

Was ist ein Fremdschlüssel?

Ein Fremdschlüssel ist eine Spalte, die eine Beziehung zwischen zwei Tabellen herstellt. Der Zweck des Fremdschlüssels besteht darin, die Datenintegrität aufrechtzuerhalten und die Navigation zwischen zwei verschiedenen Instanzen einer Entität zu ermöglichen. Es fungiert als Querverweis zwischen zwei Tabellen, da es auf den Primärschlüssel einer anderen Tabelle verweist. Jede Beziehung in der Datenbank sollte durch einen Fremdschlüssel unterstützt werden.

Beispiel für einen Fremdschlüssel

Syntax:

Nachfolgend finden Sie die Syntax des Fremdschlüssels:

CREATE TABLE <Table Name>( 
column1    datatype,
column2    datatype,  
constraint (name of constraint) 
FOREIGN KEY [column1, column2...] 
REFERENCES [primary key table name] (List of primary key table column) ...);

Hier

  • Der Parameter Tabellenname gibt den Namen der Tabelle an, die Sie erstellen möchten.
  • Die Parameter Spalte1, Spalte2… stellen die Spalten dar, die der Tabelle hinzugefügt werden müssen.
  • Eine Einschränkung bezeichnet den Namen der Einschränkung, die Sie erstellen.
  • Referenzen geben eine Tabelle mit dem Primärschlüssel an.

Beispiel:

Abteilungscode Abteilungsname
001 Forschung
002 Englisch
005 Computer
Lehrer-ID Fname Lname
B002 Christian Warner
B017 Sara Andreas
B009 Mike Brunton

Im obigen Beispiel haben wir zwei Tabellen: einen Lehrer und eine Abteilung in einer Schule. Allerdings gibt es keine Möglichkeit zu erkennen, welche Suche in welcher Abteilung funktioniert.

In dieser Tabelle können wir durch Hinzufügen des Fremdschlüssels in Deptcode zum Lehrernamen eine Beziehung zwischen den beiden Tabellen herstellen.

Lehrer-ID Abteilungscode Fname Lname
B002 002 Christian Warner
B017 002 Sara Andreas
B009 001 Mike Brunton

Dieses Konzept wird auch als referenzielle Integrität bezeichnet.

Warum Fremdschlüssel verwenden?

Nach allem, was ich gesehen habe, sind hier die wichtigen Gründe für die Implementierung von Fremdschlüsseln:

  • Mit Fremdschlüsseln können Sie Entitäten mithilfe eines Primärschlüssels aus der übergeordneten Tabelle migrieren.
  • A Fremdschlüssel ermöglicht es Ihnen, zwei oder mehr Tabellen miteinander zu verknüpfen.
  • Dadurch werden Ihre Datenbankdaten konsistent.
  • Ein Fremdschlüssel kann verwendet werden, um eine Spalte oder Spaltenkombination mit dem Primärschlüssel in einer übergeordneten Tabelle abzugleichen.
  • Mithilfe der SQL-Fremdschlüsseleinschränkung wird sichergestellt, dass die referenzielle Integrität der übergeordneten Daten mit den Werten in der untergeordneten Tabelle übereinstimmt.

Unterschied zwischen Primärschlüssel und Fremdschlüssel

Lassen Sie mich den wichtigen Unterschied zwischen einem Primärschlüssel und einem Fremdschlüssel erläutern, den ich persönlich erlebt habe:

Primärschlüssel vs. Fremdschlüssel
Primärschlüssel vs. Fremdschlüssel
Vergleichsbasis Primärschlüssel Unbekannter Schlüssel
Definition Eine Primärschlüsseleinschränkung ist eine Spalte oder eine Gruppe von Spalten, die jede Zeile in der Tabelle eindeutig identifiziert Relationales Datenbank Management System. Ein Fremdschlüssel ist eine Spalte, die eine Beziehung zwischen zwei Tabellen herstellt.
Basic Es hilft Ihnen, einen Datensatz in der Tabelle eindeutig zu identifizieren. Es ist ein Feld in der Tabelle, das der Primärschlüssel einer anderen Tabelle ist.
NULL Der Primärschlüssel akzeptiert niemals Nullwerte. Ein Fremdschlüssel kann mehrere Nullwerte akzeptieren.
Indizierung Der Primärschlüssel ist ein gruppierter Index, und die Daten in der DBMS-Tabelle sind physisch in der Reihenfolge des gruppierten Indexes organisiert. Ein Fremdschlüssel kann nicht automatisch einen Index erstellen, weder gruppiert noch nicht gruppiert.
Zu Zählen Sie können einen einzelnen Primärschlüssel in einer Tabelle haben. Eine Tabelle kann mehrere Fremdschlüssel enthalten.
Streichung Der Wert des Primärschlüssels kann nicht aus der übergeordneten Tabelle entfernt werden. Der Wert des Fremdschlüssels kann aus der untergeordneten Tabelle entfernt werden.
Temporärer Tisch Sie können den Primärschlüssel implizit in den temporären Tabellen definieren. Sie können keine Fremdschlüssel für die lokalen oder globalen temporären Tabellen definieren.
Beziehung Der Primärschlüssel ist ein gruppierter Index. Standardmäßig ist es kein gruppierter Index.
Vervielfältigung Es dürfen keine zwei Zeilen identische Werte für einen Primärschlüssel haben. Ein Fremdschlüssel kann doppelte Werte enthalten.
Einfügen Es gibt keine Einschränkung beim Einfügen der Werte in die Tabellenspalte. Stellen Sie beim Einfügen eines Werts in die Fremdschlüsseltabelle sicher, dass der Wert in einer Spalte eines Primärschlüssels vorhanden ist.

So wählen Sie zwischen einem Primärschlüssel und einem Fremdschlüssel

Wie wir gesehen haben, identifizieren Primärschlüssel Tabelleneinträge eindeutig, und Fremdschlüssel verknüpfen diese Einträge tabellenübergreifend. Dies ist sowohl für die Aufrechterhaltung der Datenintegrität als auch für die Erleichterung eines effizienten Datenabrufs von entscheidender Bedeutung.