Empfohlen, 2019

Tipp Der Redaktion

Unterschied zwischen Primärschlüssel und Eindeutiger Schlüssel

In den vorangegangenen Artikeln haben wir bereits verschiedene Arten von Schlüsseln in Datenbank und Schema untersucht, nämlich Differenz zwischen Primärschlüssel und Fremdschlüssel. In diesem Artikel unterscheiden wir Primärschlüssel und Eindeutiger Schlüssel. Sowohl der Primärschlüssel als auch der eindeutige Schlüssel werden verwendet, um ein Tupel eindeutig zu identifizieren und die Eindeutigkeit in einer Spalte oder Kombination einer Spalte durchzusetzen.

Der wesentliche Unterschied zwischen Primärschlüssel und eindeutigem Schlüssel besteht darin, dass der Primärschlüssel keine NULL-Werte akzeptiert, wohingegen NULL-Werte innerhalb von Unique-Schlüsseleinschränkungen zulässig sind.

Vergleichstabelle

Basis zum VergleichPrimärschlüsselEinzigartiger Schlüssel
BasicSie dient als eindeutige Kennung für jede Zeile in einer Tabelle.Sie bestimmt auch eindeutig eine Zeile, die nicht als Primärschlüssel definiert ist.
NULL-WertübernahmePrimärschlüssel akzeptiert keine NULL-Werte.Unique akzeptiert einen NULL-Wert.
Anzahl der Schlüssel, die in der Tabelle definiert werden könnenNur ein PrimärschlüsselMehr als eine
IndexErzeugt einen gruppierten IndexErzeugt einen nicht gruppierten Index

Definition des Primärschlüssels

Eine Spalte kann als Primärschlüssel ihrer Tabelle aufgerufen werden, wenn sie jedes Tupel (jede Zeile) in dieser Tabelle eindeutig identifiziert. Es erzwingt Integritätsbedingungen für die Tabelle. In einer Tabelle ist nur ein Primärschlüssel zulässig. Der Primärschlüssel akzeptiert die Duplikat- und NULL-Werte nicht. Der Primärschlüssel wird sorgfältig ausgewählt, wobei die Änderungen selten auftreten können, dh, ein Primärschlüssel in einer Tabelle ändert sich sehr selten.

Verstehen wir den Begriff des Primärschlüssels anhand einer Tabelle. Hier erstellen wir eine Tabelle mit dem Namen Student-Tabelle, die Attribute wie Rollennummer, Name, Stapel, Telefonnummer und Citizen_ID aufweist.

Im angegebenen Beispiel kann die Attribut-Rollennummer niemals einen identischen und einen NULL-Wert haben, da jeder Student, der an einer Universität mit einer eindeutigen Rollnummer angemeldet ist, eine Rolle hat. Keine zwei Schüler können dieselbe Rollnummer haben, und jede Zeile in einer Tabelle wird eindeutig mit der Rollennummer der Schüler identifiziert. In diesem Fall können wir also das Roll_number-Attribut als Primärschlüssel festlegen.

Ein Primärschlüssel kann über einen Fremdschlüssel referenziert werden. Es erstellt einen eindeutigen gruppierten Index für die Tabelle. In einem Clustered-Index werden die Datenzeilen anhand ihrer Schlüsselwerte sortiert und in einer Tabelle oder in Ansichten gespeichert. Es kann nur einen Clustered-Index in einer Tabelle geben. Der Grund dafür ist, dass Datenzeilen in einer Tabelle nur in einer Reihenfolge sortiert werden können.

Definition des eindeutigen Schlüssels

Ähnlich wie bei einem Primärschlüssel identifizieren eindeutige Schlüsseleinschränkungen auch ein einzelnes Tupel eindeutig in einer Beziehung. Es gibt jedoch gewisse Unterschiede zwischen ihnen. Eine Tabelle kann mehrere eindeutige Schlüssel haben. Eindeutige Schlüsseleinschränkungen können nur einen NULL-Wert für eine Spalte akzeptieren.

Verstehen wir dies mit dem ähnlichen Beispiel, in dem wir eine Student-Tabelle mit den Attributen Roll_number, Name, Batch, Phone_number und Citizen_ID hatten. Das Rollennummernattribut wird mit dem Primärschlüssel zugewiesen.

Hier kann Citizen_ID eindeutige Einschränkungen zugewiesen werden, wobei jeder Eintrag in einer Citizen_ID-Spalte eindeutig sein sollte und nicht doppelt vorhanden sein muss, da jeder Bürger eines Landes seine eindeutige Identifikationsnummer haben muss. Wenn ein Student aus einem anderen Land auswandert, hätte er in diesem Fall keine Citizen_ID und der Eintrag könnte einen NULL-Wert haben, da in der eindeutigen Einschränkung NULL zulässig ist.

Eindeutige Einschränkungen werden auch vom Fremdschlüssel referenziert. Es kann verwendet werden, wenn jemand Einschränkungen für eine Spalte und eine Spaltengruppe erzwingen möchte, die kein Primärschlüssel ist. Im Gegensatz zum Primärschlüssel wird der nicht gruppierte Index generiert. Nicht gruppierte Indizes haben eine andere Struktur als die Datenzeilen. Jeder Schlüsselwerteintrag in ihm zeigt auf die Datenzeile, die den Schlüsselwert enthält, und verwendet daher Zeiger.

Hauptunterschiede zwischen Primärschlüssel und Eindeutiger Schlüssel

  1. Wenn ein Attribut als Primärschlüssel deklariert wird, werden keine NULL-Werte akzeptiert. Wenn ein Attribut als eindeutig deklariert ist, kann es dagegen einen NULL-Wert annehmen.
  2. Eine Tabelle kann nur einen Primärschlüssel haben, während eine Tabelle mehrere eindeutige Einschränkungen enthalten kann.
  3. Ein Clustered-Index wird automatisch erstellt, wenn ein Primärschlüssel definiert wird. Im Gegensatz dazu erzeugt der eindeutige Schlüssel den nicht gruppierten Index.

Fazit

Primärschlüssel und eindeutiger Schlüssel dienen beide als eindeutige Kennung für die Zeilen einer Tabelle mit den eindeutigen Werten in einer Spalte oder Spaltengruppe. Diese Schlüsseleinschränkungen unterscheiden sich erheblich, wobei jede Tabelle höchstens einen Primärschlüssel haben kann, während eine Tabelle mehrere eindeutige Schlüssel haben kann, die nicht primär sind.

Top