Primärschlüssel einfach erklärt

Primärschlüssel einfach erklärt
Primärschlüssel einfach erklärt
Für Quiz, Lückentext, Lernkarten und Fortschritt ist JavaScript nötig. Alle Inhalte und Lösungen bleiben direkt lesbar.

Ein Primärschlüssel ist ein Attribut oder eine Kombination mehrerer Attribute, die jeden Datensatz einer Tabelle eindeutig kennzeichnet. Seine Werte müssen eindeutig und immer vorhanden sein. Du lernst hier, einfache und zusammengesetzte Primärschlüssel zu erkennen, geeignete Schlüssel auszuwählen und sie von Fremdschlüsseln zu unterscheiden.

Deine Lernziele

Hake ab, was du schon kannst — und komm am Ende hierher zurück!

Woran erkennst du einen Primärschlüssel?

Eine Tabelle besteht aus Zeilen und Spalten. Jede Zeile beschreibt einen Datensatz, zum Beispiel einen Artikel. Die Spalten enthalten seine Attribute, etwa Artikelnummer, Name und Preis.

Definition

Primärschlüssel

Ein Primärschlüssel ist ein Attribut oder eine geordnete Kombination mehrerer Attribute, deren Wert beziehungsweise Wertekombination jeden Datensatz der Tabelle eindeutig identifiziert.

Ein Primärschlüssel erfüllt zwei notwendige Bedingungen:

  • eindeutig: Kein Schlüsselwert kommt in zwei Datensätzen vor.
  • vollständig: Kein Datensatz hat an dieser Stelle einen fehlenden Wert.

Außerdem sollte sich ein geeigneter Schlüsselwert möglichst nicht ändern.

Artikel_IDArtikelnameEinkaufspreis
1Hut20,99 €
2Regenschirm10,50 €
3Sonnenbrille19,00 €

Artikel_ID ist ein geeigneter Primärschlüssel: Jeder Wert ist vorhanden und kommt genau einmal vor. Einkaufspreis wäre ungeeignet, weil verschiedene Artikel denselben Preis haben könnten.

Merke

Ein Attribut ist nicht schon deshalb ein guter Primärschlüssel, weil seine Werte in einer kleinen Beispieltabelle gerade verschieden sind. Es muss für alle zulässigen Datensätze eindeutig bleiben.

Teste dich
Frage 1 von 1LeichtWelche Bedingung muss jeder Primärschlüssel erfüllen?
Lösung: Jeder Schlüsselwert kennzeichnet genau einen Datensatz. — Entscheidend sind Eindeutigkeit und ein vorhandener Wert, nicht die Bezeichnung oder fachliche Bedeutung des Attributs.
Einfach oder zusammengesetzt?

Ein einfacher Primärschlüssel besteht aus genau einem Attribut. In der Artikeltabelle genügt Artikel_ID allein.

Definition

Zusammengesetzter Primärschlüssel

Ein zusammengesetzter Primärschlüssel besteht aus mehreren Attributen. Erst ihre gemeinsame Wertekombination identifiziert jeden Datensatz eindeutig.

Betrachte Bestellungen:

BestellungsdatumKunden_IDRechnungsbetrag
01.09.2010137731,99 €
01.09.201019991188,45 €
07.09.2010137761,99 €

Das Datum allein ist nicht eindeutig: Am 01.09.2010 gibt es zwei Bestellungen. Auch Kunden_ID allein reicht nicht, weil Kunde 1377 mehrfach bestellt. In den sichtbaren Daten ist jedoch jede Kombination aus Bestellungsdatum und Kunden_ID verschieden.

Beispiel

Um die Zeile mit 31,99 € eindeutig zu bestimmen, brauchst du beide Werte: 01.09.2010 und 1377. Der Schlüssel ist daher in diesem Beispiel zusammengesetzt.

Für eine echte Datenbank müsste zusätzlich geklärt werden, ob derselbe Kunde am selben Tag mehrmals bestellen darf. Falls ja, wäre die Kombination langfristig nicht eindeutig und eine eigene Bestell_ID geeigneter.

Teste dich
Frage 1 von 1MittelIn einer Ausleihtabelle darf dieselbe DVD zu verschiedenen Zeitpunkten mehrfach ausgeliehen werden. Welche Kombination kann einzelne Ausleihvorgänge besser unterscheiden?
Lösung: DVD_Nummer und Ausleihdatum — Ein zusammengesetzter Schlüssel ist sinnvoll, wenn kein einzelnes Attribut genügt, die Kombination aber jeden Vorgang eindeutig bestimmt.
Wie wählst du einen geeigneten Schlüssel aus?

Prüfe mögliche Primärschlüssel in dieser Reihenfolge:

  1. Ist jeder Wert vorhanden? Ein fehlender Schlüsselwert ist nicht erlaubt.
  2. Ist jeder Wert eindeutig? Suche gezielt nach Wiederholungen.
  3. Bleibt die Eindeutigkeit auch bei neuen Datensätzen erhalten? Eine kleine Tabelle kann täuschen.
  4. Ist der Wert möglichst stabil? Ein Schlüssel sollte sich nach Möglichkeit nicht ändern.
  5. Genügt ein Attribut? Wenn nicht, prüfe eine notwendige Kombination oder verwende einen künstlichen Schlüssel.
Definition

Natürlicher Schlüssel

Ein natürlicher Schlüssel verwendet ein bereits vorhandenes, fachlich bedeutungsvolles Attribut, sofern es eindeutig und vollständig ist.

Definition

Ersatzschlüssel

Ein Ersatzschlüssel ist ein eigens erzeugtes Attribut ohne aus den Fachdaten abgeleitete Bedeutung, zum Beispiel eine automatisch vergebene Kunden_ID.

Namen und Geburtsdaten sind oft problematisch: Verschiedene Personen können gleich heißen oder dasselbe Geburtsdatum haben. Selbst eine Kombination, die in den vorhandenen Zeilen eindeutig ist, muss bei späteren Einträgen nicht eindeutig bleiben. Eine künstliche ID vermeidet dieses Problem, sofern jeder erzeugte Wert nur einmal vergeben wird.

Beispiel

Eine Lagertabelle besitzt die Attribute Artikelpreis, Artikelname, Artikelnummer und Regalnummer.

Artikelpreis kann sich wiederholen und ändern. Derselbe Artikelname könnte mehrfach verwendet werden. In einem Regal liegen mehrere Artikel. Eine eindeutig vergebene Artikelnummer ist deshalb der überzeugendste Primärschlüssel.

Lückentext

Wähle in jeder Lücke die passende Form und prüfe anschließend deine Antworten.

Ein Primärschlüssel muss jeden Datensatz kennzeichnen. Fehlt ein geeigneter natürlicher Schlüssel, kann eine künstlich erzeugte verwendet werden. Besteht der Schlüssel aus mehreren Attributen, muss ihre gemeinsame eindeutig sein.

Lösungen: Lücke 1: eindeutig; Lücke 2: ID; Lücke 3: Wertekombination. Prüfe immer Eindeutigkeit und Vollständigkeit. Bei einem zusammengesetzten Schlüssel gilt die Eindeutigkeit für die gesamte Kombination.
Wie unterscheiden sich Primär- und Fremdschlüssel?

Primär- und Fremdschlüssel haben unterschiedliche Aufgaben.

PrimärschlüsselFremdschlüssel
identifiziert eine Zeile seiner Tabelle eindeutigverweist auf den Primärschlüssel einer anderen Tabelle
darf in seiner Tabelle nicht doppelt vorkommendarf je nach Beziehung mehrfach vorkommen
muss für jeden Datensatz vorhanden seinverbindet zusammengehörige Datensätze verschiedener Tabellen

Angenommen, die Tabelle Kunden verwendet Kunden_ID als Primärschlüssel. In der Tabelle Bestellungen steht dieselbe Kunden_ID als Fremdschlüssel:

Bestell_IDKunden_IDProdukt_ID
1001001002
1002002003
1003001001

Die Kunden_ID 001 darf in Bestellungen mehrfach auftreten, weil ein Kunde mehrere Bestellungen tätigen kann. Jeder dort eingetragene Fremdschlüsselwert muss jedoch zu einer vorhandenen Kunden_ID in der Kundentabelle passen.

Definition

Referenzielle Integrität

Referenzielle Integrität bedeutet hier: Ein Fremdschlüsselwert verweist auf einen tatsächlich vorhandenen Primärschlüsselwert. So entstehen keine Bestellungen für nicht vorhandene Kunden.

Teste dich
Frage 1 von 1MittelWarum darf Kunden_ID in der Bestellungstabelle mehrfach vorkommen?
Lösung: Ein Kunde kann mehrere Bestellungen haben. — Die Rolle eines Attributs hängt von der Tabelle ab: In Kunden identifiziert die ID einen Kunden, in Bestellungen stellt sie die Verbindung zu diesem Kunden her.
Wie wird ein Primärschlüssel in SQL festgelegt?

Beim Erstellen einer Tabelle kann SQL den Primärschlüssel direkt festlegen. Das folgende Schema beschreibt eine Mitarbeitertabelle:

CREATE TABLE EMP (ID INT NOT NULL, FIRSTNME VARCHAR(15) NOT NULL, LASTNAME VARCHAR(15) NOT NULL, PRIMARY KEY (ID));

ID ist eine Ganzzahl und wird mit PRIMARY KEY (ID) als Primärschlüssel festgelegt. NOT NULL drückt aus, dass kein Wert fehlen darf.

Bei einer Kundentabelle ist auch die verkürzte Schreibweise direkt am Attribut möglich:

CREATE TABLE Kunden (Kunden_ID INT PRIMARY KEY, Name VARCHAR(100));

Ein Fremdschlüssel in einer Bestellungstabelle kann mit einem Verweis ergänzt werden:

FOREIGN KEY (Kunden_ID) REFERENCES Kunden(Kunden_ID)

Damit zeigt Bestellungen.Kunden_ID auf den Primärschlüssel Kunden.Kunden_ID.

Gut zu wissen

Datenbanksysteme können für einen Primärschlüssel einen eindeutigen Index anlegen oder voraussetzen. Ein Index kann das gezielte Auffinden von Zeilen beschleunigen. Die Hauptaufgabe des Primärschlüssels bleibt jedoch die eindeutige Identifikation.

Teste dich
Frage 1 von 1SchwerEine Tabelle Bücher enthält nur Titel, Erscheinungsjahr, Autor, Preis und Seitenzahl. Warum lässt sich daraus kein sicherer Primärschlüssel bestimmen?
Lösung: Die Angaben garantieren weder einzeln noch gemeinsam dauerhaft die Eindeutigkeit jedes Buchdatensatzes. — Aus Beispieldaten allein darfst du keine dauerhafte Eindeutigkeit ableiten. Eine eigens vergebene Buch_ID könnte die fehlende sichere Identifikation ergänzen.
Karteikasten
Karteikasten

Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.

Alles auf einen Blick
Mindmap
  • Primärschlüssel
    • Bedingungen: eindeutig, immer vorhanden, möglichst stabil
    • Aufbau: einfach oder zusammengesetzt
    • Herkunft: natürlicher Schlüssel oder künstlicher Ersatzschlüssel
    • Beziehungen: Fremdschlüssel verweisen auf Primärschlüssel
    • Integrität: ungültige Fremdschlüsselverweise verhindern
    • Auswahl: künftige Datensätze prüfen und bei Bedarf eine eigene ID verwenden
Abschluss-Check
Teste dich
Frage 1 von 3LeichtWelche Aussage beschreibt einen Primärschlüssel richtig?
Lösung: Er identifiziert jeden Datensatz seiner Tabelle eindeutig. — Ein Primärschlüssel kann einfach oder zusammengesetzt sein. Entscheidend sind Eindeutigkeit und Vollständigkeit.
Frage 2 von 3MittelEine Kundentabelle enthält Kunden_ID, Nachname, Wohnort und Geburtsdatum. Welches Attribut ist am ehesten als Primärschlüssel geeignet?
Lösung: die eindeutig vergebene Kunden_ID — Eine eigens eindeutig vergebene ID unterscheidet die Datensätze zuverlässiger als Merkmale, die sich wiederholen oder ändern können.
Frage 3 von 3SchwerEine Tabelle verwendet die Kombination aus Kunden_ID und Datum als Primärschlüssel. Nun darf ein Kunde mehrere Bestellungen am selben Tag aufgeben. Was folgt daraus?
Lösung: Die Kombination ist nicht mehr sicher eindeutig; eine zusätzliche oder eigene Bestell-ID wird benötigt. — Ein Primärschlüssel muss auch alle künftig zulässigen Datensätze unterscheiden. Ändern sich die fachlichen Regeln, muss die Schlüsselwahl erneut geprüft werden.

Wenn du bei einer Tabelle einen Primärschlüssel suchst, frage zuerst: Welche Angabe unterscheidet jede erlaubte Zeile dauerhaft und ist immer vorhanden? Reicht kein einzelnes Attribut, prüfst du eine notwendige Kombination oder führst einen künstlichen Ersatzschlüssel ein.

Passend dazu