Q2 Datenbanken

Primärschlüssel bestimmen

Lösung geprüft

Die Aufgabe der heutigen Stunde ist der Primärschlüssel! Jede Tabelle braucht ein Attribut, mit dem sich jede Zeile eindeutig identifizieren lässt. Klingt einfach, ist es aber nicht immer – bei einer der Tabellen gibt es nämlich gar keinen brauchbaren.

Die Aufgabenstellung lautet

DB_01-2: Welches Attribut wäre ein geeigneter Primärschlüssel?
LAGERBESTAND: Artikelpreis, Artikelname, Artikelnummer, Regalnummer
KUNDEN: LaufendeNummer, Kundename, Kundevorname, Kundegeburtsdatum

DB_01-3: Welche Attribute wären ein geeigneter ZUSAMMENGESETZTER PRIMÄRSCHLÜSSEL?
„Flüge der Lufthansa": Pilotvorname, Pilotnachname, Flugzeuggewicht, Flugzeugnummer, Datum, AusweisnummerPilot
„Ausleihvorgänge" DVD-Verleih: DVD-Nummer, Filiale, DVD-Erscheinungsjahr, Kundennummer, Kundenachname, Rueckgabedatum, Ausleihdatum

DB_01-4: Bestimmen Sie den Primärschlüssel (einfach oder zusammengesetzt) für sechs gegebene Tabellen.

Was ein Primärschlüssel leisten muss

  1. Eindeutig: Kein Wert darf zweimal vorkommen.
  2. Immer vorhanden: Er darf nie leer (NULL) sein.
  3. Unveränderlich: Er sollte sich nie ändern, denn andere Tabellen verweisen darauf.

DB_01-2 – Einfache Primärschlüssel

TabellePrimärschlüsselWarum die anderen nicht taugen
LAGERBESTANDArtikelnummerPreise wiederholen sich ständig, zwei Artikel können gleich heißen, und in einem Regal liegen viele Artikel.
KUNDENLaufendeNummerNamen und Vornamen sind nicht eindeutig – zwei Kunden können Peter Müller heißen. Auch Name plus Geburtsdatum ist nicht sicher.

Bei den Kunden sieht man den wichtigsten Grundsatz: echte Daten taugen fast nie als Schlüssel. Namen wiederholen sich, Leute heiraten und ändern ihren Nachnamen, Adressen ändern sich. Deshalb nimmt man eine künstliche, durchlaufende Nummer.

DB_01-3 – Zusammengesetzte Primärschlüssel

Flüge der Lufthansa

Flugzeugnummer + Datum

Eine Flugzeugnummer allein reicht nicht – dasselbe Flugzeug fliegt an vielen Tagen. Ein Datum allein reicht auch nicht, an einem Tag starten hunderte Flüge. Erst beides zusammen macht die Zeile eindeutig.

Das gilt allerdings nur unter der Annahme, dass ein Flugzeug pro Tag genau einen Flug macht. Fliegt es morgens und abends, bräuchte man noch die Uhrzeit dazu. Solche Annahmen sollte man in der Antwort dazuschreiben.

Ausleihvorgänge im DVD-Verleih

DVD-Nummer + Ausleihdatum

Dieselbe DVD wird über die Jahre oft ausgeliehen, aber an einem bestimmten Tag nur einmal. Die Kundennummer braucht man nicht dazu – wenn DVD und Datum feststehen, steht der Kunde sowieso fest.

Rueckgabedatum taugt nicht, weil es beim Ausleihen noch leer ist. Und ein Primärschlüssel darf nie leer sein.

DB_01-4 – Die sechs Tabellen

TabellePrimärschlüsselBegründung
AKundenkunde_idEindeutige Nummer, genau dafür gedacht
BLagerbestandartikel_nummerRegalnummer und Anzahl sind nicht eindeutig
CAusleihvorgängedvd_id + ausleihdatum (zusammengesetzt)Wie oben: eine DVD an einem Tag nur einmal
DFahrräderfahrrad_idFarbe, Hersteller und Gangschaltung wiederholen sich
EBestellungenkunde_id + bestelldatum (zusammengesetzt)Es gibt keine Bestellnummer. Gilt nur, solange ein Kunde pro Tag höchstens einmal bestellt.
FBücherkeiner geeignet!siehe unten

F) Bücher – die Falle

Die Tabelle hat buchtitel, erscheinungsjahr, autor_name, preis und seitenzahl. Kein einziges davon ist eindeutig:

Die richtige Antwort ist deshalb: Hier gibt es keinen geeigneten Primärschlüssel. Man muss einen hinzufügen – entweder eine künstliche buch_id oder die ISBN, die es für genau diesen Zweck gibt.

Genau darauf zielt die Aufgabe ab. Es ist völlig normal, dass eine gegebene Tabelle keinen brauchbaren Schlüssel enthält – dann ist das eine Erkenntnis und kein Fehler.

Einfach oder zusammengesetzt – wann was?

EinfachZusammengesetzt
Besteht auseinem Attributzwei oder mehr Attributen
Typisch beiTabellen mit eigener IDVerknüpfungstabellen und Vorgängen (Ausleihe, Bestellung, Flug)
Vorteilkurz, einfach zu referenzierenkommt ohne künstliche ID aus
Nachteilbraucht ein zusätzliches AttributFremdschlüssel darauf werden umständlich

In der Praxis gibt man fast jeder Tabelle eine einfache id, auch wenn ein zusammengesetzter Schlüssel möglich wäre. Das macht alles Weitere einfacher. In der Klausur wird aber genau das abgefragt, was in den gegebenen Spalten steht – also ohne eigene Erfindung antworten und stattdessen dazuschreiben, dass eine ID fehlt.

Aufgabe suchen

Tippe los. Strg+K öffnet die Suche von überall.

Zuletzt angesehen

Werbung