- Surrogatschlüssel
-
Ein Surrogatschlüssel (Stellvertreterschlüssel, engl. surrogate key, wörtlich: „Ersatzschlüssel“, auch künstlicher Schlüssel genannt) ist ein Datenbankschlüssel in einer Datenbanktabelle. Eine wichtige Besonderheit dieses Schlüssels ist, dass er nicht aus den Daten in der Tabelle abgeleitet wurde. Surrogatschlüssel werden häufig als Primärschlüssel ausgewählt und dienen dem einfacheren Zugriff auf Datensätze.
Inhaltsverzeichnis
Abgrenzung zu Natürlichen Schlüsseln
Im Gegensatz zu einem sprechenden Schlüssel werden Surrogatschlüssel künstlich erzeugt. Der natürliche Schlüssel hingegen wird aus den Attributen, die ein Datenobjekt beschreiben intuitiv abgeleitet.
Erzeugung
Der Surrogatschlüssel ist häufig, aber nicht zwingend, eine fortlaufende Nummer (Sequenznummer oder Autowert). Der Schlüssel kann entweder durch das Datenbanksystem oder durch ein Anwendungsprogramm vergeben werden. Klassische Anwendungen sind hier ETL-Tools für Data-Warehouses.
Eine wichtige Eigenschaft ist aber, dass zwei Objekte mit gleichem natürlichen Schlüssel auch einen gleichen Surrogatschlüssel haben müssen. Andernfalls würden das Schema gegen die 2. Normalform verstoßen.
Bekannte Vertreter von Surrogatschlüsseln, die keine Sequenznummern sind, sind die Universally Unique Identifier (UUIDs) und Globally Unique Identifier (GUIDs).
Vorteile
Die wichtigste Eigenschaft eines Surrogatschlüssels ist, dass er die Referenz auf ein Datenelement vereinfacht. Im Gegensatz zu einem zusammengesetzten Schlüssel muss lediglich ein einzelnes Attribut als Fremdschlüssel verwaltet werden.
Ein weiterer Vorteil ist, dass beim Ändern eines Datenobjektes der Wert des Surrogatschlüssels unverändert bleibt. Folglich ist auch eine Änderung des Fremdschlüssels unnötig.
Schließlich ist es in der Praxis oft nicht klar, welche Attribute einen sprechenden Schlüssel bilden (oder ein Schlüssel, der ursprünglich eindeutig war, muss aufgrund geänderter Anforderungen später um weitere Attribute ergänzt werden).
Beispiel
In der Mitarbeiter-Datenbank eines Unternehmens A wird die interne Mitarbeiter-Nummer als sprechender Schlüssel gewählt. Später kommen durch einen Zusammenschluss mit einem weiteren Unternehmen B neue Mitarbeiter hinzu. Deren Mitarbeiter-Nummern kollidieren mit Nummern von Mitarbeitern aus A (weil sie in B vor dem Zusammenschluss mit A vergeben wurden). In diesem Falle muss der Schlüssel geändert werden (etwa durch Hinzufügen eines weiteren Attributes für die Herkunft des Mitarbeiters).
Eine spätere Änderung des Schlüssels (also eine Änderung der Liste der Attribute) ist aber äußerst aufwändig, weil sie in allen abhängigen Tabellen und in allen Programmen, die eine dieser Tabellen benutzen, nachvollzogen werden muss.
Nachteil
Wird nur der Surrogatschlüssel in der Datenbak hinterlegt, kann es beim Einfügen oder Ändern zu Duplikaten kommen. Ein Surrogatschlüssel sollte nur parallel zu einem natürlichen Schlüssel verwendet werden. Auch wenn nur die Summe aller Attribute den sprechenden Primärschlüssel bilden, sollte dieser in der Datenbank hinterlegt werden.
Anwendungen
Surrogatschlüssel spielen bei der Integration von Daten in ein Data-Warehouse eine wichtige Rolle. Hier werden Daten aus operativen Datenbanken extrahiert und in ein Sternschema überführt. Dabei werden die Daten in Fakten und Dimensionen aufgeteilt. Die Faktentabellen enthalten hier oft eine große Anzahl von Fremdschlüsseln, die auf die Dimensionstabellen verweisen. Diese Aufteilung ist ohne Surrogatschlüssel in der Praxis nicht durchführbar.
Literatur
- Vinek/Rennert/Tjoa: Datenmodellierung - Theorie und Praxis des Datenbankentwurfes Physica-Verlag, 1982, ISBN 3-7908-0225-5
Kategorie:- Datenbankschlüssel
Wikimedia Foundation.