Das Prüfungspraktikum vom SoSe 2015
Lösen Sie die folgende Aufgabe mit PostgreSQL.
Use Cases
Es soll einfache Anwendung zur Verwaltung von individuellen Prüfungen, wie mündlichen Prüfungen, Präsentationen o.Ä., realisiert werden.
Der Ersteller des Prüfungsplans kann die zugehörigen Daten erfassen, modifizieren und löschen.
Studierende und Prüfer können die Prüfungsdaten einsehen. (Auf Authentifizierung und DSGVO-Konfomität wurde aus Vereinfachungsgründen verzichtet.)
Datenmodell

Datenbankschema
studiengang: stg_id, name, kuerzel, abschluss {PK: stg_id; UNIQUE: kuerzel} professor: p_id, name, url, email* {PK: p_id; UNIQUE: email} student: s_id, stg_id, name, wohnort {PK: s_id; FK: stg_id -> studiengang(stg_id)} prueft: p_id, s_id, fach, raum*, beginn*, dauer* {PK: p_id, s_id, fach} {FK: p_id -> professor(p_id)} {FK: s_id -> studiengang(s_id)}
Ein Studiengang hat einen eindeutigen Identifikator stg_id
sowie einen Namen und einen Abschluss ('BA'
, 'MA'
, 'BSc'
etc.). Darüber hinaus gibt es für jeden Studiengang ein eindeutiges Kürzel, wie. z.B. 'IAM'
.
Ein Professor hat einen eindeutigen Identifikator p_id
, einen Namen, eine URL, unter der Informationen zu ihm zu finden sind, sowie optional eine E‑Mail-Adresse.
Von einen Studenten sind sein eindeutiger Identifikator s_id
, sein Name, sein Wohnort und (mittels eines Fremdschlüssels) sein Studiengang bekannt.
Studenten werden von Professoren individuell oder in Kleingruppen geprüft. Von jeder Prüfung sind (mittels Fremdschlüsseln) der prüfende Professor und der zu prüfende Student bekannt. Darüber hinaus werden das Fach sowie optional der Raum, der Beginn der Prüfung (von
) und die Dauer gespeichert. (Das Datenmodell sollte verbessert werden, indem fach
und raum
als Enum-Tabellen angelegt werden.)
Eine Prüfung ist durch Professor, Student und das Fach eindeutig festgelegt. (Das heißt, der Inhalt der Datenbank ist auf ein Semester beschränkt.)
Aufgabe
Erstellen Sie zunächst eine zugehörige Datenbank: pruefung_create.sql
. (Die Daten sind veraltet: Sie beziehen sich auf die alte IAM-SPO und Professoren, die damals unterrichtet haben.)
Lösen Sie dann die Aufgaben, die Sie in der Datei pruefung_aufgabe.sql
vorfinden. Kopieren Sie diese Datei auf Ihren Rechner und tragen Sie Ihre Lösungen in diese Datei ein.
Achten Sie bitte darauf, dass Ihre SQL-Anfragen für jeden gültigen Datenbestand genau die gewünschten Informationen als Ergebnis ausgeben, nicht mehr und nicht weniger.
Musterlösung: pruefung_aufgabe_loesung.sql