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?
- AStudentNr
- BKursNr
- 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.