Der Primärschlüssel gibt in Datenbanken eine Tabellenspalte an, die jeder Zeile eine eindeutige Identifikation zuweist.

Was ist ein Primärschlüssel?

Primärschlüssel kann man als Art IDs sehen, mit der man Objekte eindeutig identifizieren kann. In der Modellierung von Datenbanken sind Primärschlüssel maßgeblich, um mehrere Tabellen in einer Datenbank in Beziehung zu setzen.

Abgekürzt wird der Primärschlüssel meist mit PK für „Primary Key“. Dieser ist eine Regel für die Tabelle einer Datenbank, was als Constraint bezeichnet wird. Im Alltag begleiten uns überall Primärschlüssel: Die Steuer-ID, Führerscheinnummer, Matrikelnummer usw.

Hauptmerkmale eines Primärschlüssels

  • In allen Zeilen der Spalte müssen unterschiedliche Werte stehen.
  • Eine Primärschlüssel-Spalte darf keine NULL-Werte enthalten.

Praxisbeispiele

In der Praxis werden häufig einzigartige IDs vergeben. Möchte man z.B. in einem Unternehmen in der Tabelle „Mitarbeiter“ einen Primärschlüssel vergeben, muss man eine Spalte dazu definieren.

Die Nachname-Spalte eignet sich dafür nicht, da im Unternehmen sowohl Max Müller als auch Erika Müller arbeiten.

Die Grundbedingung für Primärschlüssel ist allerdings, dass es keine Dopplungen geben darf. Daher eignet es sich eher, eine neue Spalte namens „Mitarbeiter-ID“ zu erstellen und jedem Mitarbeiter eine individuelle ID zuzuordnen.

CREATE TABLE Mitarbeiter(
	Mitarbeiter-ID INT PRIMARY KEY
	Nachname VARCHAR(25)
	Vorname VARCHAR(25)
	Geburtsdatum DATE
); 

Damit wird eine Tabelle erstellt, die den Namen „Mitarbeiter“ trägt und die folgenden Spalten enthält:

  • „Mitarbeiter-ID“, welche aus Integern (ganze Zahlen) besteht und als Primärschlüssel definiert ist.
  • Nachname und Vorname, welche jeweils aus einem 25 Zeichen langen String (Zeichenkette) bestehen.
  • Das Geburtsdatum, welches in einem Datumsformat wiedergegeben wird.

Zusammengesetzte Primärschlüssel

In einer Bank kann z.B. die Sozialversicherungsnummer als Primärschlüssel ausgewählt werden. Problematisch wird es aber, wenn Kinder ein Bankkonto eröffnen möchten und diese noch keine Sozialversicherungsnummer besitzen. Sie würde den Bankkunden zwar eindeutig identifizieren, allerdings können NULL-Werte existieren. Damit fällt auch das als Primärschlüssel raus. 

Unter diesen Bedingungen kann ein Primärschlüssel auch aus mehreren Spalten bestehen. In diesem Fall spricht man von einem zusammengesetztem Primärschlüssel.

Der Primärschlüssel kann nur bestehen, wenn die Werte in diesen Spalten in derselben Reihenfolge nicht doppelt vorkommen. In diesem Fall dürfen keine doppelten Zeilen mit identischen Werten in den Primärschlüsselspalten existieren. 

Angenommen, wir teilen uns ein Bankkonto mit unserem Mann/unserer Frau. Hat man nur eine Tabelle für die Konten, wäre die Kontonummer als Primärschlüssel nicht sinnvoll, da man hier nur eine einzige Zeile pro Kontonummer haben kann.

Sind die Inhaber aber in der Tabelle gelistet, braucht man ggf. mehrere Zeilen. Hier können wir einfach Konto- und Kundennummer als zusammengesetzten Primärschlüssel nutzen.

CREATE TABLE Bestellungen (
  Kontonummer INT,
  Kundennummer INT,
  PRIMARY KEY (Kontonummer, Kundennummer)
); 

Auch in diesem Fall würde sich in der Mitarbeiter-Tabelle ein zusammengesetzter Primärschlüssel aus Vor- und Nachnamen nicht eignen.

Spätestens wenn der zweite Max Müller in das Unternehmen eintritt, wird die Datenbank eine Fehlermeldung ausgeben und er kann nicht eingefügt werden. Sein Name lässt sich nicht ändern und das gesamte Datenbanksystem für ihn umzuändern wird teuer für das Unternehmen.

Daher ist es im Vorhinein sinnvoll, einen Primärschlüssel auszuwählen, bei dem Dopplungen unmöglich sind.

ARTIKEL TEILEN

2Kommentare

Hast du Fragen? Hinterlasse einen Kommentar!