Sprechender Schlüssel
# Sprechender Schlüssel

Ein sprechender Schlüssel (sprechende Nummer, natürlicher Schlüssel, intelligenter Schlüssel) ist ein Schlüsselkandidat mit einer logischen Beziehung zu einem oder mehreren Attributen einer Tabellenstruktur, welche im Gegensatz zu einem zusammengesetzten Verbundschlüssel in einem Schlüsselfeld abgelegt werden.

Der natürliche Schlüssel stellt einen Gegensatz zum künstlichen Schlüssel dar, welcher durch eindeutige Nummern- oder Zeichenkettenvergabe erzeugt wird und der keine solche logische Beziehung zum Inhalt eines Datensatzes hat.

## Funktionsweise

Der sprechende Schlüssel verweist als Bedeutungsträger auf die entsprechenden Entitätswerte (Fakten an sich) und charakterisiert diese über in Ziffern und Zeichen codierte Regeln, welche auf bestimmte Eigenschaften (Attribute) des jeweiligen Entitätswertes verweisen. Beispielsweise können bereits in der Kundennummer (dem „Schlüssel“ zum Auffinden der weiteren Kundendaten) Informationen zum Geschlecht oder zum Geburtsdatum eines Kunden abgelegt werden.

Ein Hauptvorteil eines sprechenden Schlüssels ist seine leichte Memorisierbarkeit, dass er oft bereits existiert und keine Notwendigkeit besteht, eine neue unnatürliche Spalte zum Schema hinzuzufügen.

## Nachteile

Ein Problem von sprechenden Schlüsseln besteht darin, dass sie über kurz oder lang dazu tendieren, zu zerbrechen. Man sagt, dass die Logik zur Schlüsselgenerierung zerbricht, wenn ein neuer Entitätswert in eine Tabelle eingefügt werden soll, dessen Primärschlüssel identisch ist mit solchen eines bereits existierenden Entitätswertes. Sprechende Schlüssel sind deshalb in der Datenmodellierung von relationalen Datenbanken als Primärschlüssel ungeeignet. Gelegentlich werden sie als Suchschlüssel verwendet, der dann aber auch nicht zwingend eindeutig einen bestimmten Datensatz identifizieren muss. Auch wenn dies in der Praxis und in älteren Datenmodellierungen vorkommt, die sich meist dadurch auszeichnen, dass historische Karteikastensysteme übernommen wurden, widerspricht dieses Vorgehen dem Prinzip der Ersten Normalform (1NF) im Datenbankdesign, nach dem jedes Attribut eines Tupels einen atomaren Wertebereich haben muss.

Ein weiterer Nachteil eines bedeutungsgeladenen Schlüssels liegt darin, dass sich der Schlüssel ändern kann, wenn sich die geschäftsbedingten Anforderungen ändern. Dies kann eine aufwendige Umschlüsselung zur Folge haben, was zu einer aufwendigen Datenmigration führt. Wenn z. B. eine numerische Kundennummer als Primärschlüssel verwendet wird und diese in der Folge aufgrund von geschäftsbedingten Anforderungen (z. B. Integration in eine neue Muttergesellschaft) in alphanumerisch umgewandelt werden muss, so muss nicht nur der Datentyp der Tabellenspalte geändert werden, sondern es müssen in allen Tabellen die Spaltenattribute geändert werden, welche als Fremdschlüssel auf die Kundentabelle verweisen. Während in der Designphase eine solche Änderung schnell durchgeführt ist, sind die Umschlüsselungsarbeiten ungleich aufwendiger, wenn bereits Daten in der Datenbank geladen sind, vor allem dann, wenn der sprechende Schlüssel als Primärschlüssel verwendet wurde und von anderen Tabellen referenziert wird.

## Beispiele

### Schweizer AHV-Nummer (vor Juli 2008)

In der Schweiz ist das Paradebeispiel eines sprechenden Schlüssels die alte AHV-Nummer der Alters- und Hinterlassenenversicherung, was aber problematisch war, weil erstens die Eindeutigkeit über die Zeit nicht garantiert ist, sondern nur für aktuell lebende Personen und zweitens sich die Nummer bei Namenswechsel ändern kann. Seit Juli 2008 ist die neue AHV Nummer 13-stellig, zufällig und anonymisiert. Die neue AHV-Nummer ist eine 'nichtsprechende' Nummer geworden.

### Deutsche Versicherungsnummer

Die deutsche Versicherungsnummer ist auch ein Beispiel für einen sprechenden Schlüssel mit allen daraus resultierenden Problemen. Aus bestimmten Ziffern kann man das Geschlecht, das Geburtsjahr und den Anfangsbuchstaben des Familiennamens ableiten. Als man 1964 diese Nummernsystematik definierte, glaubte man, dass diese Merkmale konstant sind.

* heute kommt es vor, dass Personen ihr Geschlecht ändern (Transsexuellengesetz).
* Es gibt sogar Fälle, in denen eine Meldestelle das Geburtsdatum ändern musste. Einige deutsche Aussiedler aus Russland gaben absichtlich ein falsches Geburtsdatum an, um nach Deutschland einreisen zu dürfen. Sie erhielten eine Versicherungsnummer, in der das falsch angegebene Geburtsdatum enthalten ist. Einige dieser Personen ließen später das tatsächliche Geburtsdatum in ihrem Ausweis eintragen.
* Damals waren meistens die Männer berufstätig, die ihren Nachnamen ja bei einer Heirat beibehielten. Heute sind erstens auch viele Frauen berufstätig, die bei einer Heirat oft ihren Nachnamen ändern und zweitens können heute auch Männer bei der Eheschließung den Nachnamen der Frau annehmen.

Die Fälle, bei denen sich die zugrundeliegenden Fakten einer Person änderten, kamen mit der Zeit häufiger vor. Anfangs hat man dann in jedem Fall auch die Versicherungsnummer angepasst, doch wegen des damit verbundenen Verwaltungsaufwandes werden heute solche Anpassungen nur noch auf Antrag des Versicherten vorgenommen. Heute wird die Versicherungsnummer zwar immer noch in derselben Weise vergeben, doch die Nummer kann nicht mehr als wirklich 'sprechend' bezeichnet werden. Wenn man damals beschlossen hätte, einfach nur eine fortlaufende Nummer zu vergeben, dann wäre niemals die Anforderung entstanden, diese Nummer ändern zu müssen. Außerdem würde man mit weniger als 12 Ziffern auskommen.

### Weitere Beispiele

* Internationale Standardbuchnummer (ISBN)
* Kontennummern eines Kontenplanes
* Kostenstellennummern gemäß Kostenstellenplan, verweisen oft auf die organisatorische Einordnung
