Grundlagen der Datenbanken

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.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen der Datenbanken

  1. 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?
  2. SQL-Anweisungen werden in Datendefinitionssprache (DDL), Datenmanipulationssprache (DML) und Datenkontrollsprache (DCL) eingeteilt. Welche Anweisung gehört zur DDL?
  3. Eine Produkttabelle enthält fünf Zeilen (Name, Preis): (Stift, 120), (Heft, 250), (Radierer, 80), (Ordner, 300), (Lineal, 150). Welche Antwort zeigt in der richtigen Reihenfolge die Zeilen, die SELECT Name FROM Produkt WHERE Preis >= 150 ORDER BY Preis DESC zurückgibt?
  4. Die Spalte Abteilung einer Mitarbeitertabelle enthält von der obersten Zeile an die Werte Vertrieb, Entwicklung, Vertrieb, Verwaltung, Entwicklung, Vertrieb (insgesamt 6 Zeilen). Wie viele Zeilen liefert SELECT DISTINCT Abteilung FROM Mitarbeiter?
  5. Was ist das Ergebnis, wenn in SQL DELETE FROM Mitarbeiter ohne WHERE-Klausel ausgeführt wird?