Wikipedia · einfach zusammengefasst · Stand
Surrogatschlüssel
Surrogatschlüssel werden i. d. R. automatisch gebildet (z. B. als fortlaufende Nummer), häufig als Primärschlüssel verwendet und dienen dem einfacheren …
Inhalt5 Abschnitte
Definition und Abgrenzung
Ein Surrogatschlüssel, auch Stellvertreterschlüssel, künstlicher Schlüssel oder synthetischer Schlüssel genannt, ist ein Datenbankschlüssel, der nicht aus den in einer Tabelle gespeicherten Fachdaten abgeleitet wird. Er wird in der Regel automatisch gebildet, häufig als Primärschlüssel verwendet und erleichtert den Zugriff auf einzelne Datensätze.
Im Gegensatz dazu entsteht ein natürlicher oder „sprechender“ Schlüssel aus Feldern, die das Datenobjekt beschreiben. Bei einem Kunden könnten beispielsweise Vorname, Nachname und Geburtsdatum gemeinsam einen solchen Schlüssel bilden. Ein Surrogatschlüssel besitzt dagegen keine inhaltliche Beziehung zu diesen Daten.
Erzeugung und Formen
Häufig ist der Surrogatschlüssel eine fortlaufende Nummer, die als Sequenznummer oder Autowert bezeichnet wird. Das ist jedoch nicht zwingend: Auch Universally Unique Identifier (UUIDs) und Globally Unique Identifier (GUIDs) sind bekannte Surrogatschlüssel, obwohl sie keine Sequenznummern sind.
Der Schlüssel kann vom Datenbanksystem oder von einem Anwendungsprogramm vergeben werden. Wird er durch das Datenbanksystem erzeugt, heißt die entsprechende Spalte je nach System Sequenz, Auto-Inkrement oder Identität. Zu den klassischen Einsatzgebieten gehören ETL-Tools, die Daten für Data-Warehouses extrahieren, umformen und laden.
Vorteile
Ein Surrogatschlüssel vereinfacht vor allem die Referenz auf ein Datenelement. Statt eines zusammengesetzten Schlüssels aus mehreren Feldern muss in abhängigen Tabellen nur ein einziges Feld als Fremdschlüssel verwaltet werden. Ein Fremdschlüssel verweist dabei auf den Schlüssel eines Datensatzes in einer anderen Tabelle.
Da ein Surrogatschlüssel keine Beziehung zum Inhalt des Datenobjekts hat, bleibt sein Wert unverändert, wenn sich die Fachdaten ändern. Dadurch müssen auch die zugehörigen Fremdschlüssel nicht angepasst werden.
Surrogatschlüssel vermeiden außerdem Schwierigkeiten bei der Auswahl natürlicher Schlüssel. Oft ist zunächst nicht eindeutig, welche Felder einen zuverlässigen sprechenden Schlüssel bilden. Ein ursprünglich eindeutiger Schlüssel kann durch neue Anforderungen seine Eindeutigkeit verlieren: Gibt es zwei Kunden mit gleichem Vornamen, Nachnamen und Geburtsdatum, müsste beispielsweise noch die Postleitzahl ergänzt werden. Eine solche nachträgliche Änderung der Schlüsselfelder wäre in allen abhängigen Tabellen und in allen darauf zugreifenden Programmen nachzuvollziehen und daher äußerst aufwändig.
Typisches Beispiel
In der Mitarbeiterdatenbank eines Unternehmens A dient die interne Mitarbeiternummer als sprechender Schlüssel. Nach einem Zusammenschluss mit Unternehmen B werden dessen Mitarbeiter übernommen. Da B seine Mitarbeiternummern unabhängig vergeben hat, können sie mit den Nummern aus A kollidieren.
Der bisherige natürliche Schlüssel muss dann verändert werden, etwa durch ein zusätzliches Feld, das die Herkunft des Mitarbeiters angibt. Diese Änderung betrifft nicht nur die ursprüngliche Tabelle, sondern auch alle abhängigen Tabellen und Programme. Ein von den Mitarbeiternummern unabhängiger Surrogatschlüssel verhindert dieses Problem, weil er trotz der Zusammenführung unverändert und eindeutig bleiben kann.
Nachteile und Einsatz im Data-Warehouse
Ein Nachteil besteht darin, dass ein Surrogatschlüssel nicht erkennen lässt, wie die inhaltlichen Schlüsselkandidaten aussehen. Schlüsselkandidaten sind Feldkombinationen, die einen Datensatz eindeutig identifizieren könnten. Werden Datensätze eingegeben, die sich ausschließlich in ihrem künstlichen Index unterscheiden, reduzieren sich alle Schlüsselkandidaten auf diesen Index; dadurch bricht das Datenbankdesign in sich zusammen. Beispielsweise funktionieren dann Fremdschlüsselverweise auf ehemalige Alternativschlüssel nicht mehr.
Eine wichtige Anwendung ist die Integration von Daten in ein Data-Warehouse. Dabei werden Daten aus operativen Datenbanken extrahiert und in ein Sternschema überführt. Die Daten werden in Fakten und Dimensionen aufgeteilt: Faktentabellen enthalten häufig viele Fremdschlüssel, die auf Dimensionstabellen verweisen. Nach dem Artikel ist diese Aufteilung in der Praxis ohne Surrogatschlüssel nicht durchführbar.