Definition

Schlüssel (Datenbank)

Was ist ein Datenbankschlüssel in einer relationalen Datenbank?

Datenbankschlüssel sind wesentliche Komponenten eines relationalen Datenbankmanagementsystems (RDBMS). Datenbankschlüssel werden verwendet, um identifizierende Attribute in den Zeilen von Datenbanktabellen anzugeben, damit die Daten für die Verwendung in Anwendungen sortiert und organisiert werden können. Sie stellen auch Verknüpfungen zwischen verschiedenen Tabellen her, um Datenduplikate zu reduzieren, und lassen dabei alle Daten in einer Tabelle wie eine einzige Entität aussehen.

Warum sind Datenbankschlüssel notwendig?

Datenbankschlüssel bieten Organisationen bei der Verwaltung von Datenbanktabellen mehrere Vorteile. In großen Datenbanken können Hunderte oder Tausende von Datenzeilen vorhanden sein, die manchmal Duplikate enthalten. Ohne einen Datenbankschlüssel kann es schwierig oder zeitaufwendig sein, die eindeutige Datenzeile bei Bedarf genau zu finden. Ein einzelner Datenbankschlüssel kann die spezifische Zeile von Interesse schnell identifizieren.

Außerdem können Datenbankschlüssel mehrere Zeilen identifizieren und Beziehungen zwischen Datentabellen aufzeigen. Einige der acht im Folgenden behandelten Datenbankschlüssel verwenden einen einzelnen Identifikator zum Auffinden von Daten, während andere mehrere Attribute zusammen als Schlüssel verwenden können.

Arten von Datenbankschlüsseln

Es gibt verschiedene Arten von Datenbankschlüsseln, die in einem Datenbankmanagementsystem (DBMS) unterschiedlichen Zwecken dienen, darunter Primär-, Super-, Fremd- und Kandidatenschlüssel. Sehen wir uns jeden dieser Schlüssel und die Beziehungen und Unterschiede zwischen ihnen an.

Die wichtigsten Arten von Schlüsseln in einem DBMS sind:

  1. Primärschlüssel
  2. Kandidatenschlüssel
  3. Superschlüssel
  4. Fremdschlüssel
  5. Alternativschlüssel
  6. Ersatzschlüssel
  7. Zusammengesetzter Schlüssel
  8. Verbundschlüssel

Nachfolgend finden Sie eine Beschreibung dieser Datenbankschlüssel.

Abbildung 1: Details zu vier häufig verwendeten Datenbankschlüsseln.
Abbildung 1: Details zu vier häufig verwendeten Datenbankschlüsseln.

1. Primärschlüssel

Ein Primärschlüssel ist eine Spalte – oder eine Gruppe von Spalten – in einer Tabelle, die die Datenzeilen in dieser Tabelle eindeutig identifiziert. In der folgenden Tabelle ist beispielsweise Kundennummer der Primärschlüssel. Die Kundennummer zeigt eine eindeutige Nummer an, die den Kunden zugeordnet ist.

KUNDE
Kundennummer Vorname Nachname
1 Bettina Meier
2 Sandra Schmidt
3 Max Maier
4 Claudia Schulz

Die in der Primärschlüsselspalte platzierten Datenwerte müssen für jede Datenzeile eindeutig sein; es dürfen keine Duplikate verwendet werden. Außerdem sind Nullwerte in Primärschlüsselspalten nicht zulässig.

Es ist möglich, eine oder mehrere Spalten als Primärschlüssel zu verwenden; aber wie entscheiden Sie, welche Spalten – und wie viele – Sie auswählen sollen?

Nun, es gibt Fälle, in denen es ratsam oder notwendig ist, mehrere Spalten zu verwenden. Wenn Sie jedoch keinen unmittelbaren Grund für die Verwendung mehrerer Spalten erkennen können, verwenden Sie eine. Dies ist keine absolute Regel, sondern lediglich ein Tipp.

Primärschlüssel, die aus einzelnen Spalten bestehen, sind jedoch in der Regel einfacher zu pflegen und schneller in der Anwendung. Das bedeutet, dass Sie bei einer Datenbankabfrage in der Regel schneller eine Antwort erhalten, wenn die Tabellen einen einzelnen Primärschlüssel aus einer einzelnen Spalte haben.

Die nächste Frage, die Sie sich stellen sollten, ist, welche Spalte Sie auswählen sollten. Die einfachste Methode, eine Spalte als Primärschlüssel auszuwählen – und eine Methode, die häufig angewendet wird – besteht darin, die Datenbank automatisch eine eindeutige Nummer für jede Zeile zuweisen zu lassen.

2. Kandidatenschlüssel (auch Schlüsselkandidat)

Oft gibt es nur eine Wahl für den Primärschlüssel, wie im obigen Fall. Wenn es jedoch mehrere Datenbankschlüssel gibt, können diese als Kandidatenschlüssel bezeichnet werden – der Name spiegelt wider, dass sie Kandidaten für die verantwortungsvolle Aufgabe des Primärschlüssels sind.

Ein Kandidatenschlüssel ist eine Spalte, die alle Anforderungen eines Primärschlüssels erfüllt. Mit anderen Worten: Sie hat das Potenzial, ein Primärschlüssel zu sein, wie die Spalte Kundennummer. Andererseits ist in einer Tabelle mit Kunden oder Mitarbeitern eine Spalte wie Vorname eindeutig ein schlechter Kandidat für einen Primärschlüssel, da man die Vornamen von Personen nicht kontrollieren kann.

Wenn ein Kandidatenschlüssel nicht der Primärschlüssel der Beziehung ist, wird er als eindeutiger Schlüssel bezeichnet. Im Gegensatz zu Primärschlüsseln kann ein eindeutiger Schlüssel Nullwerte in seiner Tabelle akzeptieren.

3. Superschlüssel

Ein Superschlüssel ist ein Satz von Attributen, die jeweils eine Zeile in der Datentabelle eindeutig identifizieren können. Wenn man nun die obige Definition zugrunde legt, dass ein Primärschlüssel aus mehr als einer Spalte bestehen kann und die Zeilen eindeutig identifizieren muss, wählt man beispielsweise Kundennummer und eine Spalte mit Kundentelefonnummern als Primärschlüssel. Damit ist die Anforderung erfüllt, aber es ist eindeutig unsinnig, weil es die Komplexität ohne Grund erhöht.

Es ist auch ein gutes Beispiel für einen Superschlüssel mit mehreren eindeutigen Kennungen. Super ist in diesem Fall jedoch kein Synonym für großartig, sondern eine Abkürzung für supernumerary (überzählig). Es wird empfohlen, Superschlüssel in Datenbanksystemen zu vermeiden.

4. Fremdschlüssel

Fremdschlüssel sind Spalten, die auf Primärschlüsselspalten in anderen Datenbanktabellen verweisen. So ist beispielsweise Bestellnummer der Primärschlüssel der untenstehenden Tabelle BESTELLUNGEN und Kundennr ein Fremdschlüssel, der auf den Primärschlüssel in der Tabelle KUNDEN verweist.

BESTELLUNGEN
Bestellnummer Mitarbeiternummer Kundennummer Lieferant Preis Artikel
1 1 42 Meier 235 Euro Schreibtisch
2 4 1 Schulz 234 Euro Stuhl
3 1 68 Meier 415 Euro Tisch
4 2 112 Schulz 350 Euro Lampe
5 3 42 Schulz 234 Euro Stuhl
6 2 112 Meier 350 Euro Lampe
7 2 42 Schulz 235 Euro Schreibtisch

Fremdschlüssel müssen nicht auf einen Primärschlüssel verweisen. Die einzige echte Anforderung an die Spalte, auf die ein Fremdschlüssel verweist, ist, dass sie eindeutige Werte enthalten muss. Stellen Sie sich zum Beispiel vor, dass unsere Mitarbeitertabelle wie die untenstehende Tabelle MITARBEITER aussehen würde.

MITARBEITER
Versicherungsnummer Mitarbeiternummer Vorname Nachname Geburtsdatum Einstellungsdatum
1234 5678910 1 Martin Schmidt 12. April 1966 01. Mai 1999
1234 5678911 2 Claudia Meier 21. Mai 1977 01. Januar 2000
1234 5678912 3 Stefan Huber 01. Mai 1977 01. April 2002
1234 5678913 4 Karin Schmidt 03. April 1966 01. April 2002
1234 5678914 5 Tim Schulze 12. April 1966 01. April 2002
1234 5678915 6 Sven Müller 01. Mai 1967 01. Mai 2004

Die Versicherungsnummer ist eigentlich der Primärschlüssel der Tabelle, aber wir vergeben auch eine eindeutige Mitarbeiternummer für jede Person. Unter diesen Umständen kann BESTELLUNG.Mitarbeiternummer ein Fremdschlüssel sein, der auf MITARBEITER.Mitarbeiternummer verweist, obwohl die letztere Spalte kein Primärschlüssel ist. Die eigentliche Regel ist also etwas subtiler: Ein Fremdschlüssel muss auf einen Kandidatenschlüssel verweisen. In der Praxis verweisen Fremdschlüssel in einem Datenbankmanagementsystem aber fast immer auf Primärschlüssel.

5. Alternativschlüssel

Ein Alternativschlüssel ist im Wesentlichen jeder Schlüssel in einer Datentabelle, der nicht der Primärschlüssel ist. Denken Sie daran, dass nur ein Schlüssel als Primärschlüssel festgelegt werden kann. Sobald der Primärschlüssel festgelegt ist, gelten alle anderen als Alternativschlüssel. Im obigen Beispiel ist die Sozialversicherungsnummer der identifizierte Primärschlüssel und alle anderen Schlüssel sind Sekundärschlüssel.

6. Ersatzschlüssel

Ein Ersatzschlüssel ist ein künstlicher Schlüssel, der ausschließlich für die Datenanalyse erstellt wird. Er wird manchmal auch als synthetischer Schlüssel oder Pseudoschlüssel bezeichnet, da er nicht aus Anwendungsdaten abgeleitet wird. Stattdessen wird er verwendet, um jeden Datensatz in der Datenbank zu identifizieren.

7. Zusammengesetzter Schlüssel

Ein zusammengesetzter Schlüssel ist ein Schlüssel, der mehr als ein Attribut hat. Jeder Superschlüssel, Primärschlüssel oder Kandidatenschlüssel kann ein zusammengesetzter Schlüssel sein, solange er die Anforderung erfüllt, mehr als ein Attribut zu haben. Durch die Kombination von zwei oder mehr Spalten in einer Tabelle zu einem Schlüssel wird sichergestellt, dass der Schlüssel auf eine bestimmte Datenzeile verweist. Dies ist die Hauptanwendung von zusammengesetzten Schlüsseln. Eine Datenbank, die Adressen nachverfolgt, könnte den Straßennamen und die Hausnummer als zusammengesetzten Schlüssel verwenden.

8. Verbundschlüssel

Ein Verbundschlüssel ist eine bestimmte Art von zusammengesetztem Schlüssel, bei dem jedes Attribut ein Fremdschlüssel ist – beispielsweise eine Tabelle, die die Einschreibung von Studenten verfolgt. Es können bereits Tabellen für die Studenten-ID und die Kurs-ID vorhanden sein, die zusammen den zusammengesetzten Schlüssel für die Einschreibung bilden.

Während Datenbankschlüssel bei der Organisation und Sortierung von Daten helfen, ist es für Organisationen wichtig, das Datenbankmanagementsystem auszuwählen, das ihren Datenanforderungen am besten entspricht.

 

Anmerkung des Herausgebers: Die meisten dieser Informationen stammen aus dem Buch Inside Relational Databases, das Mark Whitehorn zusammen mit Bill Marklyn verfasst hat und das vom Springer-Verlag veröffentlicht wurde.

Diese Definition wurde zuletzt im Januar 2025 aktualisiert

Erfahren Sie mehr über Datenbanken