Der Primärschlüssel

Der Primärschlüssel

In Heft 6 hast du gesehen, dass selbst Name und Land nicht immer ausreichen, um einen Ort eindeutig zu finden. Datenbanken benötigen deshalb ein Merkmal, das jeden Datensatz zuverlässig identifiziert.

Merke

Ein Primärschlüssel einer Tabelle ist ein Attribut oder eine Kombination von Attributen, mit der jeder Datensatz eindeutig identifiziert werden kann. Der Schlüssel ist minimal: Man kann kein Attribut weglassen, ohne dass die Eindeutigkeit verloren geht.

Wenn natürliche Attribute nicht ausreichen, verwendet man häufig einen künstlichen Primärschlüssel, zum Beispiel eine Ortsnummer.

Im Schema erkennst du einen Primärschlüssel am Schlüsselsymbol 🔑. Fahre mit der Maus über den Begriff oder fokussiere ihn mit der Tastatur, um Schlüssel, Schema und Datensätze hervorzuheben.

land
  • 🔑LNR TEXT
  • Name TEXT
  • Kontinent TEXT
  • Einwohner REAL
LNRNameKontinentEinwohner
DDeutschlandEuropa82.17
IItalienEuropa60.78
CHSchweizEuropa8.18
AÖsterreichEuropa8.51

In der Tabelle land übernimmt LNR diese Aufgabe. Jeder Wert kommt nur einmal vor; so lässt sich Österreich unabhängig von der Schreibweise des Namens finden.

SELECT * FROM land WHERE LNR = 'A'
LNRNameEinwohnerFlaecheHauptstadtKontinentKontinentFlaecheKontinentEinwohner
AÖsterreich8.5183879WienEuropa10733
Lückentext
Ein Primärschlüssel ist ein Attribut oder eine Kombination von Attributen, deren Wert jeden einer Tabelle identifiziert.
Multiple Choice

Die Tabelle ort hat keinen Primärschlüssel. Welche Lösung ist am besten?

Merke: Schlüssel aus mehreren Attributen

Manchmal ist kein einzelnes Attribut eindeutig, aber eine Kombination ist es. Dann bilden mehrere Attribute zusammen den Primärschlüssel. Im Schema tragen alle diese Attribute das Schlüsselsymbol 🔑.

Beispiel: In der Tabelle note steht, welche Note eine Schülerin oder ein Schüler in welchem Fach hat. Die Schülernummer SNR allein ist nicht eindeutig, ebenso wenig das Fach. Erst SNR und Fach zusammen bestimmen einen Datensatz eindeutig – und man kann keines von beiden weglassen.

note
  • 🔑SNR INTEGER
  • 🔑Fach TEXT
  • Note INTEGER
SNRFachNote
1Mathe2
1Informatik1
2Mathe3
2Informatik2
3Mathe2

Fahre mit der Maus über die Begriffe: SNR und Fach wiederholen sich für sich genommen, die Paare aus beiden nie.

Fehler in den Daten

Die terra-Datenbank enthält absichtlich Fehler. Finde sie!

Aufgabe 5 🗄 terra (Länder und Orte)
Gib Name und Einwohner aller Länder aus, die in Europa liegen und mehr als 5 Millionen Einwohner haben – die bevölkerungsreichsten zuerst.
Datenbankschema „terra (Länder und Orte)“ anzeigen
land (197 Datensätze)
  • 🔑 LNR varchar(4)
  • Name varchar(50)
  • Einwohner decimal(20,2)
  • Flaeche int(11)
  • Hauptstadt varchar(30)
  • Kontinent varchar(15)
  • KontinentFlaeche int(11)
  • KontinentEinwohner int(11)
ort (26851 Datensätze)
  • Name varchar(30)
  • Land varchar(50)
  • Einwohner int(11)
  • Laenge decimal(10,4)
  • Breite decimal(10,4)

🔑 Primärschlüssel · → Fremdschlüssel (verweist auf Tabelle.Attribut)

Struktur vorgeben:

Ohne Anmeldung wird deine Abfrage nicht gespeichert.

Freitext

Ein großes Land fehlt eindeutig in der Liste. Welches ist es? Welchen Grund könnte das haben?

💡 Zum Speichern deiner Antwort bitte einloggen.
Aufgabe 6 🗄 terra (Länder und Orte)
Untersuche die Kontinent-Daten: Gib Kontinent, KontinentFlaeche und KontinentEinwohner aus – jede Kombination nur einmal.
Datenbankschema „terra (Länder und Orte)“ anzeigen
land (197 Datensätze)
  • 🔑 LNR varchar(4)
  • Name varchar(50)
  • Einwohner decimal(20,2)
  • Flaeche int(11)
  • Hauptstadt varchar(30)
  • Kontinent varchar(15)
  • KontinentFlaeche int(11)
  • KontinentEinwohner int(11)
ort (26851 Datensätze)
  • Name varchar(30)
  • Land varchar(50)
  • Einwohner int(11)
  • Laenge decimal(10,4)
  • Breite decimal(10,4)

🔑 Primärschlüssel · → Fremdschlüssel (verweist auf Tabelle.Attribut)

Struktur vorgeben:

Ohne Anmeldung wird deine Abfrage nicht gespeichert.

Freitext

Welche weiteren Fehler fallen dir auf? Welche Ursache könnten sie haben, und wie könnte man sie verhindern?

💡 Zum Speichern deiner Antwort bitte einloggen.

Ausblick

Die Kontinent-Daten stehen in terra bei jedem Land noch einmal – und genau dabei sind die Fehler entstanden. Im nächsten Kapitel teilst du die Daten auf mehrere Tabellen auf und verbindest sie über Schlüssel.

✏️ Übungen zu diesem Kapitel

4 freiwillige Aufgaben zum Üben und Weiterdenken.

Zu den Übungen →