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 Vergleich | Primärschlüssel | Einzigartiger Schlüssel |
---|---|---|
Basic | Sie 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übernahme | Primärschlüssel akzeptiert keine NULL-Werte. | Unique akzeptiert einen NULL-Wert. |
Anzahl der Schlüssel, die in der Tabelle definiert werden können | Nur ein Primärschlüssel | Mehr als eine |
Index | Erzeugt einen gruppierten Index | Erzeugt 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.
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.
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
- 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.
- Eine Tabelle kann nur einen Primärschlüssel haben, während eine Tabelle mehrere eindeutige Einschränkungen enthalten kann.
- 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.