Was ist Primärschlüssel?

Spalte oder Spaltenkombination, mit der eine Zeile einer Tabelle eindeutig identifiziert wird. Sie unterliegt den Bedingungen, dass sich ihre Werte nicht wiederholen und nicht NULL sein dürfen. Der Primärschlüssel wird aus den minimalen Spaltenkombinationen ausgewählt, die eine Zeile eindeutig identifizieren können (Schlüsselkandidaten).

Japanische Bezeichnung: 主キー

„Primärschlüssel“ kommt in 8 Übungsfragen aus 1 Themen vor, z. B. Grundlagen der Datenbanken.

Fachgebiet: Grundlagen der Datenbanken

Jetzt üben: Fragen zu Primärschlüssel

Welche Bedingung muss die Spalte (oder Spaltenkombination) erfüllen, die in einer Tabelle einer relationalen Datenbank als Primärschlüssel festgelegt wird?

  1. AIhre Werte müssen Zahlen sein
  2. BSie muss die erste Spalte der Tabelle sein
  3. CIhre Werte dürfen sich innerhalb der Tabelle nicht wiederholen und dürfen nicht NULL sein
Antwort und Erläuterung anzeigen

Antwort: C. Ihre Werte dürfen sich innerhalb der Tabelle nicht wiederholen und dürfen nicht NULL sein

Ein Primärschlüssel ist eine Spalte oder Spaltenkombination, mit der eine Zeile einer Tabelle eindeutig identifiziert wird. Seine Werte dürfen daher nicht mit denen einer anderen Zeile übereinstimmen (Eindeutigkeit), und auch NULL, das einen unbekannten Wert darstellt, ist nicht erlaubt (NOT NULL). Wird in SQL bei CREATE TABLE ein PRIMARY KEY angegeben, setzt das DBMS (Datenbankmanagementsystem) diese beiden Bedingungen durch, und jeder Versuch, einen doppelten Wert oder NULL einzufügen, endet mit einem Fehler. Ein Primärschlüssel kann Zahlen wie Personalnummern oder Zeichenketten enthalten, und für seine Spaltenposition gibt es keine Regel. Eine minimale Spaltenkombination, die eine Zeile eindeutig identifizieren kann, heißt Schlüsselkandidat, und der Primärschlüssel ist der unter den Schlüsselkandidaten ausgewählte.

Eine Belegungstabelle (StudentNr, KursNr, Note) hält fest, welcher Studierende welchen Kurs mit welcher Note belegt hat. Ein Studierender belegt mehrere Kurse, und ein Kurs wird von mehreren Studierenden belegt. Welcher Primärschlüssel ist für diese Tabelle geeignet, wenn sich derselbe Studierende nie zweimal für denselben Kurs anmeldet?

  1. AStudentNr
  2. BKursNr
  3. CDie Kombination aus StudentNr und KursNr
Antwort und Erläuterung anzeigen

Antwort: C. Die Kombination aus StudentNr und KursNr

Da ein Studierender mehrere Kurse belegt, kommt derselbe Wert von StudentNr in mehreren Zeilen vor und kann eine Zeile nicht eindeutig identifizieren. Ebenso ist KursNr allein nicht eindeutig, weil ein Kurs von mehreren Studierenden belegt wird. Die Kombination aus StudentNr und KursNr bestimmt dagegen genau eine Zeile, da sich derselbe Studierende nie zweimal für denselben Kurs anmeldet. Ein solcher aus mehreren Spalten bestehender Primärschlüssel heißt zusammengesetzter Schlüssel und wird in SQL durch Aufzählen der Spalten angegeben, etwa PRIMARY KEY (StudentNr, KursNr). StudentNr und KursNr der Belegungstabelle sind zugleich Fremdschlüssel, die auf die Primärschlüssel der Studierenden- bzw. der Kurstabelle verweisen, und die Tabelle bildet die Viele-zu-viele-Beziehung zwischen Studierenden und Kursen ab.

„Primärschlüssel“ in den Erläuterungen

Fragen mit „Primärschlüssel“ (8)

  1. Welche Bedingung muss die Spalte (oder Spaltenkombination) erfüllen, die in einer Tabelle einer relationalen Datenbank als Primärschlüssel festgelegt wird?
  2. Eine Belegungstabelle (StudentNr, KursNr, Note) hält fest, welcher Studierende welchen Kurs mit welcher Note belegt hat. Ein Studierender belegt mehrere Kurse, und ein Kurs wird von mehreren Studierenden belegt. Welcher Primärschlüssel ist für diese Tabelle geeignet, wenn sich derselbe Studierende nie zweimal für denselben Kurs anmeldet?
  3. Der Primärschlüssel einer Kundentabelle (KundenID, Name) ist KundenID, und KundenID in einer Bestelltabelle (BestellID, KundenID) ist als Fremdschlüssel definiert, der auf KundenID der Kundentabelle verweist. Die Kundentabelle enthält nur die Zeilen mit KundenID 'C1' und 'C2'. Was geschieht, wenn in diesem Zustand INSERT INTO Bestellung VALUES ('O9', 'C5') ausgeführt wird?
  4. Der Primärschlüssel einer Auftragstabelle (AuftragsNr, ArtikelNr, Menge, KundenNr, Kundenname) ist {AuftragsNr, ArtikelNr}, und ihre funktionalen Abhängigkeiten sind {AuftragsNr, ArtikelNr} → Menge, AuftragsNr → KundenNr und KundenNr → Kundenname. Welches ist das richtige Ergebnis, wenn diese Tabelle bis zur dritten Normalform normalisiert wird?
  5. Der Primärschlüssel einer Mitarbeitertabelle (MitarbeiterNr, Name, Abteilungscode, Abteilungsname) ist MitarbeiterNr, und jede Spalte enthält nur einen einzigen Wert. Die funktionalen Abhängigkeiten sind MitarbeiterNr → Name, MitarbeiterNr → Abteilungscode und Abteilungscode → Abteilungsname. Welche Aussage über die Normalform dieser Tabelle ist richtig?
  6. Welcher Begriff der relationalen Datenbanken bezeichnet eine Zeile einer Tabelle (Relation)?
  7. In einer Mitarbeitertabelle (MitarbeiterNr, EMail, Name, Abteilung) sind MitarbeiterNr und EMail für jeden Mitarbeiter verschieden und nie NULL. Name und Abteilung können mit denen anderer Mitarbeiter übereinstimmen. Welche Antwort nennt alle Schlüsselkandidaten dieser Tabelle?
  8. In einem E-R-Diagramm besteht zwischen Studierenden und Kursen eine Viele-zu-viele-Beziehung: Ein Studierender belegt mehrere Kurse, und ein Kurs wird von mehreren Studierenden belegt. Wie lässt sich diese Beziehung mit Tabellen einer relationalen Datenbank geeignet umsetzen?

Verwandte Begriffe

Fremdschlüssel SQL Dritte Normalform (3NF) Relationale Datenbank E-R-Diagramm (Entity-Relationship-Diagramm) ACID-Eigenschaften Index (Datenbankindex) Isolationslevel Normalisierung NoSQL

Zur Glossarübersicht