Primärschlüssel gegen Fremdschlüssel: Was ist der Unterschied?

Inhaltsverzeichnis:

Anonim

Bevor wir den Unterschied zwischen Primärschlüssel und Fremdschlüssel lernen, lernen wir Folgendes:

Was sind Schlüssel?

Schlüssel sind Attribute, mit denen Sie eine Zeile (Tupel) in einer Beziehung (Tabelle) identifizieren können. Mit ihnen können Sie die Beziehung zwischen zwei Tabellen finden. Mithilfe von Schlüsseln können Sie eine Zeile in einer Tabelle durch eine Kombination aus einer oder mehreren Spalten in dieser Tabelle eindeutig identifizieren. Der Datenbankschlüssel ist auch hilfreich, um einen eindeutigen Datensatz oder eine eindeutige Zeile aus der Tabelle zu finden.

Was ist eine Datenbankbeziehung?

Die Datenbankbeziehung besteht aus Zuordnungen zwischen einer oder mehreren Tabellen, die mithilfe von Join-Anweisungen erstellt werden. Es wird verwendet, um Daten effizient aus der Datenbank abzurufen. Es gibt hauptsächlich drei Arten von Beziehungen: 1) Eins-zu-Eins, 2) Eins-zu-Viele, 3) Viele-zu-Viele.

Was ist der Primärschlüssel?

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

Eine Tabelle kann 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.

Was ist ein Fremdschlüssel?

Fremdschlüssel ist eine Spalte, die eine Beziehung zwischen zwei Tabellen erstellt. Der Fremdschlüssel dient dazu, 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 von einem Fremdschlüssel unterstützt werden.

WICHTIGE UNTERSCHIEDE:

  • Eine Primärschlüsseleinschränkung ist eine Spalte, die jede Zeile in der Tabelle des relationalen Datenbankverwaltungssystems eindeutig identifiziert, während der Fremdschlüssel eine Spalte ist, die eine Beziehung zwischen zwei Tabellen erstellt.
  • Der Primärschlüssel akzeptiert niemals Nullwerte, während der Fremdschlüssel möglicherweise mehrere Nullwerte akzeptiert.
  • Sie können nur einen einzigen Primärschlüssel in einer Tabelle haben, während Sie mehrere Fremdschlüssel in einer Tabelle haben können.
  • Der Wert des Primärschlüssels kann nicht aus der übergeordneten Tabelle entfernt werden, während der Wert des Fremdschlüsselwerts aus der untergeordneten Tabelle entfernt werden kann.
  • Keine zwei Zeilen dürfen 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 ein Wert in die Fremdschlüsseltabelle eingefügt wird. Stellen Sie sicher, dass der Wert in einer Spalte eines Primärschlüssels vorhanden ist.

Warum Primärschlüssel verwenden?

Hier sind die Nachteile / Vorteile der Verwendung des Primärschlüssels:

  • 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 niemandem erlauben, Nullwerte einzugeben.
  • Wenn Sie Datensätze löschen oder aktualisieren, wird die von Ihnen angegebene Aktion ausgeführt, um die Datenintegrität sicherzustellen.
  • Führen Sie eine Einschränkungsoperation aus, um die Lösch- oder Aktualisierungsoperation für die übergeordnete Tabelle abzulehnen.
  • Daten werden in einer Folge von Clustered-Indizes organisiert, wenn Sie die DBMS-Tabelle physisch organisieren.

Warum Fremdschlüssel verwenden?

Hier sind die wichtigen Gründe für die Verwendung von Fremdschlüsseln:

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

Beispiel eines Primärschlüssels

Syntax:

Unten ist die Syntax des Primärschlüssels:

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

Hier,

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

Beispiel:

StudID Rolle Nr Vorname Nachname Email
1 11 Tom Preis Diese E-Mail-Adresse ist vor Spambots geschützt! JavaScript muss aktiviert sein, damit sie angezeigt werden kann.
2 12 Nick Wright Diese E-Mail-Adresse ist vor Spambots geschützt! JavaScript muss aktiviert sein, damit sie angezeigt werden kann.
3 13 Dana Natan Diese E-Mail-Adresse ist vor Spambots geschützt! JavaScript muss aktiviert sein, damit sie angezeigt werden kann.

Im obigen Beispiel haben wir eine Schülertabelle mit Spalten wie StudID, Rollennummer, Vorname, Nachname und E-Mail erstellt. StudID wird als Primärschlüssel ausgewählt, da andere Zeilen in der Tabelle eindeutig identifiziert werden können.

Beispiel für einen Fremdschlüssel

Syntax:

Unten ist die Syntax des Fremdschlüssels:

CREATE TABLE 
(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 column1, column2… zeigen die Spalten, die der Tabelle hinzugefügt werden müssen.
  • Einschränkung bezeichnet den Namen der Einschränkung, die Sie erstellen.
  • Referenzen geben eine Tabelle mit dem Primärschlüssel an.

Beispiel:

DeptCode DeptName
001 Wissenschaft
002 Englisch
005 Computer
Lehrerausweis Fname Lname
B002 David Warner
B017 Sara Joseph
B009 Mike Brunton

Im obigen Beispiel haben wir zwei Tische, einen Lehrer und eine Abteilung in einer Schule. Es ist jedoch nicht möglich zu sehen, 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 erstellen.

Lehrerausweis DeptCode Fname Lname
B002 002 David Warner
B017 002 Sara Joseph
B009 001 Mike Brunton

Dieses Konzept wird auch als referenzielle Integrität bezeichnet.

Unterschied zwischen Primärschlüssel und Fremdschlüssel

Hier ist der wichtige Unterschied zwischen Primärschlüssel und Fremdschlüssel:

Primärschlüssel Unbekannter Schlüssel
Eine Primärschlüsseleinschränkung ist eine Spalte oder Gruppe von Spalten, die jede Zeile in der Tabelle des relationalen Datenbankverwaltungssystems eindeutig identifiziert. Fremdschlüssel ist eine Spalte, die eine Beziehung zwischen zwei Tabellen erstellt.
Es hilft Ihnen, einen Datensatz in der Tabelle eindeutig zu identifizieren. Es ist ein Feld in der Tabelle, das ein Primärschlüssel einer anderen Tabelle ist.
Der Primärschlüssel akzeptiert niemals Nullwerte. Ein Fremdschlüssel kann mehrere Nullwerte akzeptieren.
Der Primärschlüssel ist ein Clustered-Index, und die Daten in der DBMS-Tabelle sind physisch in der Reihenfolge des Clustered-Index organisiert. Ein Fremdschlüssel kann nicht automatisch einen Index erstellen, der geclustert oder nicht geclustert ist.
Sie können den einzelnen Primärschlüssel in einer Tabelle haben. Sie können mehrere Fremdschlüssel in einer Tabelle haben.
Der Wert des Primärschlüssels kann nicht aus der übergeordneten Tabelle entfernt werden. Der Wert des Fremdschlüsselwerts kann aus der untergeordneten Tabelle entfernt werden.
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.
Der Primärschlüssel ist ein Clustered-Index. Standardmäßig handelt es sich nicht um einen Clustered-Index.
Keine zwei Zeilen dürfen identische Werte für einen Primärschlüssel haben. Ein Fremdschlüssel kann doppelte Werte enthalten.
Das Einfügen der Werte in die Tabellenspalte unterliegt keiner Einschränkung. Stellen Sie beim Einfügen eines Werts in die Fremdschlüsseltabelle sicher, dass der Wert in einer Spalte eines Primärschlüssels vorhanden ist.