Ein Schlüssel dient in einer Relationalen Datenbank dazu, die Tupel einer Relation eindeutig zu identifizieren. Anschaulich kann man sich eine Relation als Tabelle vorstellen. Der Schlüssel einer solchen Tabelle ist dann eine Gruppe von Spalten, die so ausgewählt wird, dass jede Zeile in dieser Gruppe eine einmalige Wertekombination hat.
In Relationalen Datenbanken unterscheidet man die Schlüsselbegriffe Superschlüssel, Schlüsselkandidat (auch Kandidatenschlüssel genannt), Primärschlüssel, Sekundärschlüssel, Fremdschlüssel, sowie die ergänzenden Bezeichnungen kombinierter Primärschlüssel (auch Verbundschlüssel genannt) und stellvertretender Schlüssel. Zwischen den formal gesehen grundlegenden Begriffen Superschlüssel und Schlüsselkandidat besteht die Teilmengenbeziehung Schlüsselkandidaten ⊆ Superschlüssel.
Ein Schlüsselkandidat ist also auch immer ein Superschlüssel. Aus der Menge aller Schlüsselkandidaten wird ein Primärschlüssel ausgewählt, wodurch automatisch alle anderen Schlüsselkandidaten zu Sekundärschlüsseln werden; ein formaler Unterschied zwischen Schlüsselkandidat, Primär- und Sekundärschlüssel besteht also nicht. Ein Fremdschlüssel ist der Primärschlüssel einer anderen Relation. Er stellt die Verbindung zwischen diesen Relationen her.
| a) |
| ISBN | Autor | Buchtitel | ... |
|---|---|---|---|
| 0001 | Hans | X | ... |
| 0002 | Peter | Y | ... |
| 0003 | Peter | Y | ... |
| ... | ... | ... | ... |
| Name | Geburtstag | Wohnort | ... |
|---|---|---|---|
| Hans Meier | 01.08.1976 | München | ... |
| Peter Müller | 08.11.1982 | München | ... |
| Günther Schmitt | 27.03.1965 | Hamburg | ... |
| ... | ... | ... | ... |
| Vorgesetzter | Untergebener |
|---|---|
| 002 | 104 |
| 234 | 993 |
| 234 | 670 |
| ... | ... |
Diese Definition setzt den Begriff der funktionalen Abhängigkeit (die Grundlage des Zeichens „“) voraus. bedeutet: Haben zwei Tupel die gleichen Werte in den Attributen von , so haben sie auch die gleichen Werte in den Attributen A.
Anhand dieser Definition ergeben sich schon für kleine Anzahlen von Attributen sehr viele Superschlüssel. Für die Beispielrelationen der Einleitung sind dies die folgenden:
Besonders zu beachten ist, dass alle Attribute einer Relation immer einen Superschlüssel bilden. Das kommt daher, dass Relationen keine zwei völlig identischen Tupel enthalten dürfen - denn eine Relation ist prinzipiell eine Menge und nach der Mengenlehre darf eine solche keine zwei identischen Elemente enthalten. Des Weiteren sind in dieser oft unüberschaubaren Menge auch die „praktischeren“ Schlüsselkandidaten enthalten. Der Begriff des Superschlüssels spielt allerdings bei den Definition der Normalformen 3. Normalform (3NF) und Boyce-Codd-Normalform (BCNF) eine wichtige Rolle.
Hierbei wird der Begriff der vollen funktionalen Abhängigkeit - dargestellt durch - verwendet. Hier ist A von voll funktional abhängig, was bedeutet:
Im Gegensatz zum Superschlüssel werden hier also nur noch diejenigen Attributmengen betrachtet, die nicht mehr verkleinert werden können, ohne ihre Schlüsseleigenschaft zu verlieren; man sagt auch, sie seien minimal identifizierend. Für die Beispielrelationen der Einleitung ergeben sich folgende Schlüsselkandidaten:
Aus der Liste der Superschlüssel wurden also gerade diejenigen ausgewählt, die minimal sind. Gelegentlich wird auch die Bezeichnung Kandidatenschlüssel verwendet, was eine zu wörtliche Übersetzung des englischen Fachbegriffs candidate key ist.
Bei den Beispielen b) und c) ist die Entscheidung müßig, denn es gibt jeweils nur einen Schlüsselkandidaten, folglich muss dieser auch als Primärschlüssel verwendet werden. In Beispiel a) entscheidet man sich für {ISBN} als Primärschlüssel, weil dies der kleinste Schlüssel ist (er hat im Gegensatz zu {Autor, Buchtitel, ...} nur ein Attribut), zudem wird dadurch die Realität genau wiedergegeben. Besteht ein Primärschlüssel aus mehreren Attributen, spricht man auch von einem kombinierten Primärschlüssel oder einem Verbundschlüssel. Durch die Auswahl des Primärschlüssels werden alle anderen Schlüsselkandidaten der Relation automatisch zu Sekundärschlüsseln. In unseren Beispielrelationen wären dies:
Sekundärschlüssel werden hauptsächlich dazu verwendet, effiziente Sekundärindexe zu erzeugen; ein Sekundärindex ist eine optionale Suchstruktur einer Datenbank, um Tupel schneller zu finden.
Mit Hilfe des Primärschlüssels selektiert man in einer relationen Datenbank einen Datensatz eindeutig und (weil dem Primärschlüssel ein Index zugrunde liegt) auch schnell. Wenn in einer Kundentabelle beispielsweise jeder Kunde eine eindeutige "Kunden-ID" besitzt, dann wäre diese Kunden-ID der ideale Primärschlüssel zur eindeutigen Kennzeichnung eines jeden Datensatzes. Wenn man den Datensatz später ändern oder löschen möchte, dann braucht man bei den jeweiligen "update"- oder "delete"-Anweisungen nur anzugeben, welche "Kunden-ID" von der Änderung betroffen werden soll (also nicht noch zusätzliche Einschränkungen wie "Vorname", "Nachname", etc.). Der Primärschlüssel ist also in diesem Sinne das wichtigste und erstrangig verwendete Selektionskriterium, um Daten in einer Tabelle zu selektieren (primär: erstrangig, am wichtigsten, in erster Linie, hauptsächlich, vordergründig). Eine Datenbanktabelle kann jedoch neben dem Primärschlüssel noch weitere Indizes besitzen. Wenn es bei einer Kundentabelle beispielsweise oft vorkommt, dass Kunden innerhalb eines bestimmten Postleitzahlbereichs selektiert bzw. sortiert werden müssen, dann könnte es sich lohnen, die Spalte "Postleitzahl" auch mit einem Index zu versehen, damit die Selektion oder Sortierung der Kunden nach Postleitzahlen schnell vonstatten geht. Da die Tabelle mit der "Kunden-ID" aber bereits einen Primärschlüssel hat (es kann nur jeweils einen Primärschlüssel pro Tabelle geben), würde es sich bei dem Index auf der Spalte "Postleitzahl" um einen Sekundärschlüssel, also zusätzlichen (sekundär: nachgeordneten, zweitrangigen) Schlüssel handeln.
Seien R, S Relationen und die Attributmenge α der Primärschlüssel von R. Wenn eine kompatible Attributmenge β aus S ein Fremdschlüssel bzgl. α sein soll, so müssen die Werte von β Teilmenge der Werte des Primärschlüssels α in R sein.
Eine Attributmenge ist dann kompatibel zu einer anderen, wenn die Wertebereiche der beteiligten Attribute gleich sind, also dom(α) = dom(β).
Die Fälle 1. und 2. werden implementiert, indem S den Primärschlüssel aus R als Fremdschlüssel enthält. Im Falle der 1:1-Beziehung wird dies auch der Primärschlüssel. Für die n:m-Beziehung braucht man, wie in Beispiel c) oben, eine eigene Relation, die die Primärschlüssel beider Relationen als Fremdschlüssel erhält. Beide Attributmengen zusammen sind der Primärschlüssel dieser "Verknüpfungsrelation"..
Hinweis: Die eigentlichen sog. Kardinalitäten dieser drei Beziehungstypen sind *," target="_blank" >*," target="_blank" >*. "*" steht für "beliebig viele".
Primární klíč | Primary key | Clé primaire | 主キー | Klucz główny | Первичный ключ | Primárny kľúč
This article is licensed under the GNU Free Documentation License.
It uses material from the
"Schlüssel (Datenbank)".
Home Page • arts • business • computers • games • health • hospitals • home • kids & teens • news • physicians • recreation• reference • regional • science • shopping • society • sports • world