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üsselwerts 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 beliebige Werte in die Fremdschlüsseltabelle eingefügt werden. Stellen Sie sicher, dass der Wert in einer Spalte eines Primärschlüssels vorhanden ist.
Primärschlüssel vs. Fremdschlüssel
Primärschlüssel vs. Fremdschlüssel

Was sind Schlüssel?

Schlüssel sind Attribute, die Ihnen helfen, eine Zeile (ein Tupel) in einer Beziehung (Tabelle) zu identifizieren. Sie ermöglichen es Ihnen, die Beziehung zwischen zwei Tabellen zu finden. Mithilfe von Schlüsseln können Sie eine Zeile in einer Tabelle anhand einer 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 in der Tabelle zu finden.

Was ist Primärschlüssel?

Eine Primärschlüsseleinschränkung ist eine Spalte oder Spaltengruppe, 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.

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.

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 Spaltengruppe, 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.
Es hilft Ihnen, einen Datensatz in der Tabelle eindeutig zu identifizieren. Es handelt sich um 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, weder gruppiert noch nicht gruppiert.
Sie können den einzelnen Primärschlüssel in einer Tabelle haben. Eine Tabelle kann mehrere Fremdschlüssel enthalten.
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 für die 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.
Es dürfen keine zwei Zeilen identische Werte für einen Primärschlüssel haben. Ein Fremdschlüssel kann doppelte Werte enthalten.
Beim Einfügen der Werte in die Tabellenspalte gibt es keine 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.

Was ist eine Datenbankbeziehung?

Bei der Datenbankbeziehung handelt es sich um Assoziationen zwischen einer oder mehreren Tabellen, die mithilfe von Join-Anweisungen erstellt werden. Es wird verwendet, um Daten effizient aus der Datenbank abzurufen. Es gibt im Wesentlichen drei Arten von Beziehungen: 1) Eins-zu-Eins, 2) Eins-zu-viele, 3) Viele-zu-viele.

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 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 einen Einschränkungsvorgang durch, um den Lösch- oder Aktualisierungsvorgang für die übergeordnete Tabelle abzulehnen.
  • Daten werden in einer Sequenz von Clustered-Indizes organisiert, wann immer Sie eine 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 Spaltenkombination mit einem 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.

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@gmail.com €XNUMX
2 12 Nick Wright xyz@gmail.com €XNUMX
3 13 Dana Nathan mno@yahoo.com

Im obigen Beispiel haben wir eine Studententabelle mit Spalten wie StudID, Roll No, First Name, Last Name und E erstelltmail. StudID wird als Primärschlüssel gewählt, da es andere Zeilen in der Tabelle eindeutig identifizieren kann.

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.
  • 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 Wissenschaft
002 Englisch
005 Computer
Lehrer-ID Fname Lname
B002 Christian Warner
B017 Sara Andreas
B009 Mike Brunton

Im obigen Beispiel haben wir zwei Tische, 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 erstellen.

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

Dieses Konzept wird auch als Referentielle Integrität bezeichnet.