Wikipedia · einfach zusammengefasst · Stand
Schlüssel (Datenbank)
Fremdschlüssel. Bearbeiten. Ein Primärschlüssel einer Relation kann Fremdschlüssel einer anderen werden. Ein Fremdschlüssel ist ein Attribut oder eine …
Inhalt5 Abschnitte
Grundidee und Schlüsselarten
Ein Schlüssel identifiziert die Tupel (Datensätze oder Zeilen) einer Relation (Tabelle) eindeutig. Er besteht aus einer oder mehreren Spalten, deren gemeinsame Werte für jede Tabellenzeile eine einmalige Kombination bilden.
Ein Superschlüssel ist jede Attributmenge, die alle Tupel eindeutig identifiziert. Er darf Spalten enthalten, die dafür nicht notwendig sind; auch die Menge aller Attribute einer Relation ist ein Superschlüssel.
Ein Schlüsselkandidat ist ein minimaler Superschlüssel: Keine seiner Spalten kann entfernt werden, ohne dass die Eindeutigkeit verloren geht. Aus den Schlüsselkandidaten wird ein Primärschlüssel ausgewählt und tatsächlich zur Identifikation der Tabellenzeilen verwendet. Seine Werte können in anderen Tabellen als Fremdschlüssel auftreten.
Damit gilt: Schlüsselkandidaten sind Teilmengen der Superschlüssel, und der Primärschlüssel wird aus den Schlüsselkandidaten gewählt. Manche Datenbanksysteme erlauben Tabellen ohne Primärschlüssel. Solche Tabellen können doppelte Datensätze enthalten und sind definitionsgemäß keine relationalen Entitäten.
Bedingungen und formale Beschreibung
Für ein Relationenschema R, also das Gerüst einer Tabelle mit allen Spalten, heißt eine Teilmenge S der Attribute Schlüssel, wenn sie die erforderlichen Bedingungen erfüllt:
• Eindeutigkeit: R darf keine zwei verschiedenen Tupel enthalten, deren Werte in S übereinstimmen. Angestrebt wird die stärkere fachliche Forderung, dass dies bei keiner legalen möglichen Befüllung der Tabelle vorkommen kann.
• Definiertheit: Alle Tupel sollen für die Attribute aus S tatsächliche Werte besitzen; keiner dieser Werte soll NULL sein. Manche Datenbanksysteme erlauben NULL-Werte, solange die Eindeutigkeit nicht verletzt wird.
• Minimalität: Soll S ein Schlüsselkandidat sein, darf keine echte Teilmenge von S bereits eindeutig sein.
Formal sei R(A) eine Relation über A := {A₁,...,Aₙ}. Dann ist α ⊆ A genau dann ein Schlüsselkandidat von R, wenn α ↠̇ A gilt, also A von α voll funktional abhängig ist. Das bedeutet: Haben zwei Tupel in allen Schlüsselattributen α dieselben Werte, stimmen sie auch in allen übrigen Attributen A überein. Entfernt man ein Attribut aus α, gilt diese Eigenschaft nicht mehr. Ein Schlüsselkandidat ist somit minimal identifizierend.
Primär-, Alternativ- und Sekundärschlüssel
Der Primärschlüssel ist der Schlüsselkandidat, der zur eindeutigen Identifikation der Tabellenzeilen ausgewählt wird. Er sollte möglichst klein sein, also wenige Attribute oder einen einfachen Datentyp besitzen, und zeitlich stabil bleiben. Änderungen an seinen Werten würden auch Änderungen an zugehörigen Fremdschlüsseln erfordern. Dies ist durch Kaskadierung grundsätzlich möglich, kann aber aufwendig sein.
Der Primärschlüssel muss außerdem die realen Objekte zuverlässig unterscheiden. Die Kombination {Name, Geburtstag} legt beispielsweise fest, dass keine zwei gleichnamigen Personen mit demselben Geburtstag gespeichert werden dürfen. Besteht der Primärschlüssel aus mehreren Attributen, heißt er kombinierter oder zusammengesetzter Primärschlüssel beziehungsweise Verbundschlüssel.
Alle nicht als Primärschlüssel ausgewählten Schlüsselkandidaten werden zu Alternativschlüsseln. Auch bei ihnen muss die Datenbank Eindeutigkeit durchsetzen. Sie können grundsätzlich ebenfalls als Ziel eines Fremdschlüssels dienen.
Sekundärschlüssel sind Attributgruppen, die als Suchbegriffe zur Beschreibung, Ordnung oder Gruppierung eines oder mehrerer Tupel dienen. Beispielsweise kann die Postleitzahl in einer Adresstabelle ein Sekundärschlüssel sein. Ein Sekundärindex ist eine optionale zusätzliche Suchstruktur, die Datensätze schneller auffindbar macht, weil nicht der gesamte Datenbestand durchsucht werden muss. Sekundärschlüssel müssen nicht eindeutig sein. Alternativschlüssel sind als besondere Sekundärschlüssel eindeutig; Fremdschlüssel zählen ebenfalls zu den Sekundärschlüsseln, sind aber nicht zwingend eindeutig.
Natürliche und stellvertretende Schlüssel
Ein sprechender oder natürlicher Schlüssel ist ein Schlüsselkandidat, der bereits auf natürliche Weise im Datensatz vorkommt und auch in der realen Welt Bedeutung besitzt, beispielsweise eine Fahrgestellnummer. Seine Domäne, also sein vorgesehener Wertebereich, muss sorgfältig gewählt werden. Ein zu kleiner Nummernbereich kann später eine Neuorganisation erzwingen. Im Schlüssel codierte Gruppenzuordnungen können zu Schlüsselbrüchen führen und verletzen das Normalisierungsgebot; solche Zuordnungen sollten deshalb über ein eigenes Attribut oder eine n:m-Zuordnungstabelle abgebildet werden. Bei der Auslegung sind unter anderem geplante Kardinalität, Lesbarkeit und Handhabung zu berücksichtigen.
Ein stellvertretender Schlüssel oder Surrogatschlüssel ist dagegen ein zusätzliches, künstlich erzeugtes Attribut, das zuvor nicht im Tupel vorkam. Er wird häufig als Primärschlüssel verwendet, etwa als Kundennummer oder fortlaufende Belegnummer. Er ist besonders nützlich, wenn natürliche Schlüsselkandidaten aus mehreren Attributen bestehen oder die Wirklichkeit nur unzureichend abbilden. So kann eine Kundennummer die umständliche Identifikation über Name und Geburtstag ersetzen und das Problem gleichnamiger Personen mit gleichem Geburtstag vermeiden.
Surrogatschlüssel werden auch in der OLAP-Technologie eingesetzt, um sehr breite zusammengesetzte Schlüssel durch kompaktere künstliche Schlüssel zu ersetzen. In heterogenen Anwendungssystemen kann ein führendes System den Surrogatschlüssel vergeben; bei der Übertragung an Zweitsysteme müssen gegebenenfalls auch die zugehörigen Stammdaten übermittelt werden.
Fremdschlüssel, Beziehungen und Beispiele
Ein Fremdschlüssel ist ein Attribut oder eine Attributkombination, die auf einen Primärschlüssel oder Schlüsselkandidaten derselben oder einer anderen Relation verweist. Er verbindet inhaltlich zusammengehörige Tupel.
Seien R und S Relationen und α der Primärschlüssel von R. Eine kompatible Attributmenge β aus S kann Fremdschlüssel bezüglich α sein, wenn ihre Werte eine Teilmenge der in R vorkommenden Werte von α sind. Kompatibilität bedeutet gleiche Wertebereiche: dom(α) = dom(β). Diese Forderung gehört zur referentiellen Integrität.
Beziehungen werden folgendermaßen unterschieden:
• 1:1: Jedem Datensatz beider Tabellen ist jeweils höchstens ein Datensatz der anderen Tabelle zugeordnet. Die genaue Kardinalität lautet [0,1]:[0,1].
• 1:n: Einem Datensatz aus R können kein, ein oder mehrere Datensätze aus S zugeordnet sein; zu jedem Datensatz aus S gehört höchstens ein Datensatz aus R. Die Kardinalität lautet [0,1]:[0,*].
• n:m: Auf beiden Seiten können mehrere Datensätze zugeordnet sein. Die Kardinalität lautet [0,]:[0,], wobei * für beliebig viele steht.
Bei 1:1- und 1:n-Beziehungen enthält S den Primärschlüssel von R als Fremdschlüssel; bei einer 1:1-Beziehung wird er in S ebenfalls zum Primärschlüssel. Für eine n:m-Beziehung ist eine eigene Verknüpfungsrelation nötig. Sie enthält die Primärschlüssel beider Ausgangsrelationen als Fremdschlüssel; gemeinsam bilden diese den Primärschlüssel der Verknüpfungsrelation.
In der Tabelle „Literatur“ eignet sich {ISBN} als Primärschlüssel, weil keine zwei Bücher dieselbe ISBN besitzen. {Autor, Buchtitel} ist ebenfalls ein Schlüsselkandidat und wird bei Wahl von {ISBN} zum Alternativschlüssel. Titel oder Autor allein sind nicht eindeutig.
In der Tabelle „Kunde“ wird {Name, Geburtstag} als Schlüssel angenommen. Er ist nur geeignet, solange keine zwei Kunden denselben Namen und Geburtstag haben; eine Kundennummer wäre ein möglicher Surrogatschlüssel. In der Relation „IstChefVon“ bilden {Vorgesetzter, Untergebener} gemeinsam den Schlüssel. Beide Werte können zugleich Fremdschlüssel sein, die auf den Primärschlüssel {Personalnummer} einer Angestelltentabelle verweisen.
Ein Suchschlüssel ist dagegen kein Schlüssel im identifizierenden Sinn: Er dient lediglich als Suchkriterium, sodass mehrere Datensätze denselben Suchschlüsselwert besitzen dürfen.
Lernvideos zu Schlüssel (Datenbank)
4:27
Primärschlüssel & Fremdschlüssel einfach erklärt (SQL lernen)
Fabian Rappert | Data Science Institute · 39.434 Aufrufe
3:35
7. Primärschlüssel, Fremdschlüssel
Hauptquartier::EU · 8.777 Aufrufe
13:06
Kardinalitäten und Primärschlüssel | ERM bei Datenbanken
Sebastian Philippi · 132.320 Aufrufe
5:34
DATENBANKEN GRUNDLAGEN einfach erklärt
IT & Medien einfach erklärt · 69.881 Aufrufe