Primärschlüssel vs Eindeutiger Schlüssel
Eine Spalte oder eine Reihe von Spalten, mit denen eine Zeile oder eine Reihe von Zeilen in einer Datenbank identifiziert oder darauf zugegriffen werden kann, wird als Schlüssel bezeichnet. Ein eindeutiger Schlüssel ist ein Schlüssel, mit dem eine Zeile in einer Tabelle im Kontext relationaler Datenbanken eindeutig identifiziert werden kann. Ein eindeutiger Schlüssel besteht aus einer einzelnen Spalte oder einer Reihe von Spalten. Ein Primärschlüssel ist auch eine Kombination von Spalten in einer Tabelle, die eine Zeile eindeutig identifizieren. Es wird jedoch als Sonderfall des eindeutigen Schlüssels angesehen.
Was ist ein eindeutiger Schlüssel?
Wie bereits erwähnt, ist ein eindeutiger Schlüssel eine einzelne Spalte oder ein Satz von Spalten, mit denen eine Zeile in einer Tabelle eindeutig identifiziert werden kann. Ein eindeutiger Schlüssel ist also so eingeschränkt, dass keine zwei Werte gleich sind. Eine wichtige Eigenschaft ist, dass die eindeutigen Schlüssel die NOT NULL-Einschränkung nicht erzwingen. Da NULL das Fehlen eines Werts darstellt, bedeutet dies nicht, dass die Werte gleich sind, wenn zwei Zeilen NULL in einer Spalte haben. Als eindeutiger Schlüssel definierte Spalte lässt nur einen einzigen NULL-Wert in dieser Spalte zu. Dann kann dies verwendet werden, um diese bestimmte Zeile eindeutig zu identifizieren. In einer Tabelle mit Schülerinformationen kann die Schüler-ID beispielsweise als eindeutiger Schlüssel definiert werden. Da keine zwei Schüler dieselbe ID haben können, wird ein einzelner Schüler eindeutig identifiziert. Die Schüler-ID-Spalte erfüllt also alle Eigenschaften eines eindeutigen Schlüssels. Abhängig vom Design einer Datenbank,Eine Tabelle kann mehr als einen eindeutigen Schlüssel haben.
Was ist der Primärschlüssel?
Der Primärschlüssel ist auch eine Spalte oder eine Kombination von Spalten, die eine Zeile in einer Tabelle einer relationalen Datenbank eindeutig definiert. Eine Tabelle kann höchstens einen Primärschlüssel haben. Der Primärschlüssel erzwingt die implizite NOT NULL-Einschränkung. Eine Spalte, die als Primärschlüssel definiert ist, darf also keine NULL-Werte enthalten. Der Primärschlüssel kann ein normales Attribut in der Tabelle sein, das garantiert eindeutig ist, z. B. die Sozialversicherungsnummer, oder ein eindeutiger Wert, der vom Datenbankverwaltungssystem generiert wird, z. B. eine GUID (Globally Unique Identifier) in Microsoft SQL Server. Primärschlüssel werden durch die PRIMARY KEY-Einschränkung in ANSI SQL Standard definiert. Der Primärschlüssel kann auch beim Erstellen der Tabelle definiert werden. Mit SQL kann der Primärschlüssel aus einer oder mehreren Spalten bestehen, und jede im Primärschlüssel enthaltene Spalte wird implizit als NICHT NULL definiert. Bei einigen Datenbankverwaltungssystemen müssen die Primärschlüsselspalten jedoch explizit NICHT NULL sein.
Unterschied zwischen Primärschlüssel und Eindeutiger Schlüssel
Obwohl sowohl der Primärschlüssel als auch der eindeutige Schlüssel eine oder mehrere Spalten sind, die eine Zeile in einer Tabelle eindeutig identifizieren können, weisen sie einige wichtige Unterschiede auf. Am wichtigsten ist, dass eine Tabelle nur einen einzigen Primärschlüssel haben kann, während sie mehr als einen eindeutigen Schlüssel haben kann. Der Primärschlüssel kann als Sonderfall des eindeutigen Schlüssels betrachtet werden. Ein weiterer Unterschied besteht darin, dass Primärschlüssel eine implizite NOT NULL-Einschränkung haben, während der eindeutige Schlüssel diese Einschränkung nicht hat. Daher können eindeutige Schlüsselspalten NULL-Werte enthalten oder nicht, Primärschlüsselspalten können jedoch keine NULL-Werte enthalten.