it-swarm.com.de

Was ist der Unterschied zwischen einem Primärschlüssel und einem Ersatzschlüssel?

Ich habe viel gegoogelt, aber ich habe die exakte direkte Antwort mit einem Beispiel nicht gefunden.

Jedes Beispiel dafür wäre hilfreicher.

38
Dom

Der Primärschlüssel ist ein eindeutiger Schlüssel in Ihrer Tabelle, mit dem Sie einen Datensatz in der Tabelle eindeutig identifizieren können. Alle Tabellen sollten einen Primärschlüssel haben. Wenn Sie einen Datensatz aktualisieren oder löschen müssen, müssen Sie wissen, wie Sie ihn eindeutig identifizieren können.

Ein Ersatzschlüssel ist ein künstlich erzeugter Schlüssel. Sie sind nützlich, wenn Ihre Datensätze im Wesentlichen keinen natürlichen Schlüssel haben (z. B. eine Person -Tabelle), da zwei am selben Datum geborene Personen den gleichen Namen haben können oder Datensätze in einem Protokoll, da dies möglich ist Damit zwei Ereignisse stattfinden, tragen sie denselben Zeitstempel. In den meisten Fällen werden diese als Ganzzahlen in einem automatisch inkrementierenden Feld oder als GUIDs implementiert, die automatisch für jeden Datensatz generiert werden. ID-Nummern sind fast immer Ersatzschlüssel.

Im Gegensatz zu Primärschlüsseln benötigen jedoch nicht alle Tabellen Ersatzschlüssel. Wenn Sie eine Tabelle haben, in der die Bundesstaaten in Amerika aufgeführt sind, benötigen Sie keine ID-Nummer. Sie können die Statusabkürzung als Primärschlüsselcode verwenden.

Der Hauptvorteil des Ersatzschlüssels besteht darin, dass sie leicht als einzigartig garantiert werden können. Der Hauptnachteil ist, dass sie keine Bedeutung haben. Es gibt keine Bedeutung, dass "28" beispielsweise Wisconsin ist. Wenn Sie jedoch "WI" in der Spalte "Bundesstaat" Ihrer Adresstabelle sehen, wissen Sie, um welchen Bundesstaat es sich handelt, ohne nach dem Bundesstaat in Ihrem Bundesstaat suchen zu müssen Tabelle.

62
Bacon Bits

Ein Ersatzschlüssel ist ein erfundener Wert mit dem einzigen Zweck, eine Zeile eindeutig zu identifizieren. Normalerweise wird dies durch eine automatisch inkrementierende ID dargestellt.

Beispielcode:

CREATE TABLE Example
(
    SurrogateKey INT IDENTITY(1,1) -- A surrogate key that increments automatically
)

Ein Primärschlüssel ist die identifizierende Spalte oder Gruppe von Spalten einer Tabelle. Kann ein Ersatzschlüssel sein oder eine andere eindeutige Kombination von Spalten (z. B. ein zusammengesetzter Schlüssel). MUSS für jede Zeile eindeutig sein und darf nicht NULL sein.

Beispielcode:

CREATE TABLE Example
(
    PrimaryKey INT PRIMARY KEY -- A primary key is just an unique identifier
)
6
tobypls

Alle Schlüssel sind Bezeichner, die als Ersatz für die von ihnen identifizierten Dinge verwendet werden. E.F.Codd erklärte das Konzept von vom System zugewiesenen Surrogaten wie folgt [1]:

Datenbankbenutzer können das System veranlassen, einen Ersatz zu generieren oder zu löschen, sie haben jedoch keine Kontrolle über seinen Wert, noch wird ihm sein Wert jemals angezeigt.

Dies wird allgemein als Ersatzschlüssel bezeichnet. Die Definition ist jedoch sofort problematisch, da Codd davon ausgegangen ist, dass ein solches Merkmal vom DBMS bereitgestellt wird. DBMSs haben im Allgemeinen keine solche Funktion. Die Schlüssel sind normalerweise zumindest für einige DBMS-Benutzer sichtbar, wie dies aus offensichtlichen Gründen der Fall sein muss. Das Konzept eines Ersatzes hat sich daher im Gebrauch leicht verändert. Der Begriff wird in der Regel im Bereich der Datenverwaltung verwendet, um einen Schlüssel zu bezeichnen, der nicht offengelegt und als Bezeichner verwendet wird im Geschäftsbereich. Es ist zu beachten, dass dies im Wesentlichen nichts damit zu tun hat, wie der Schlüssel generiert wird oder wie "künstlich" er wahrgenommen wird. Alle Schlüssel bestehen aus Symbolen, die von Menschen oder Maschinen erfunden wurden. Die einzig mögliche Bedeutung des Begriffs Ersatz bezieht sich daher darauf, wie der Schlüssel verwendet wird, nicht darauf, wie er erstellt wird oder welche Werte er hat.

[1] Erweiterung des relationalen Datenbankmodells, um mehr Bedeutung zu erfassen, E.F.Codd, 1979

3
nvogel

Ein Ersatzschlüssel ist normalerweise ein numerischer Wert. In SQL Server können Sie mit Microsoft eine Spalte mit einer Identitätseigenschaft definieren, um Ersatzschlüsselwerte zu generieren.

Die PRIMARY KEY-Einschränkung identifiziert jeden Datensatz in einer Datenbanktabelle eindeutig. Primärschlüssel müssen EINZIGARTIGE Werte enthalten. Eine Primärschlüsselspalte darf keine NULL-Werte enthalten. Die meisten Tabellen sollten einen Primärschlüssel haben, und jede Tabelle kann nur EINEN Primärschlüssel haben.

http://www.databasejournal.com/features/mssql/article.php/3922066/SQL-Server-Natural-Key-Verses-Surrogate-Key.htm

1
Bishoy Frank

Dies ist eine großartige Behandlung, die die verschiedenen Arten von Schlüsseln beschreibt:

http://www.agiledata.org/essays/keys.html

1
n8wrl