Das Prüfungspraktikum vom SoSe 2015

Lösen Sie die fol­gen­de Auf­ga­be mit Post­greS­QL.

Use Cases

Es soll ein­fa­che Anwen­dung zur Ver­wal­tung von indi­vi­du­el­len Prü­fun­gen, wie münd­li­chen Prü­fun­gen, Prä­sen­ta­tio­nen o.Ä., rea­li­siert wer­den.

Der Erstel­ler des Prü­fungs­plans kann die zuge­hö­ri­gen Daten erfas­sen, modi­fi­zie­ren und löschen.

Stu­die­ren­de und Prü­fer kön­nen die Prü­fungs­da­ten ein­se­hen. (Auf Authen­ti­fi­zie­rung und DSGVO-Kon­fo­mi­tät wur­de aus Ver­ein­fa­chungs­grün­den ver­zich­tet.)

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: u_id, r_id, fach}
{FK: p_id -> professor(p_id)}
{FK: s_id -> studiengang(s_id)}

Ein Stu­di­en­gang hat einen ein­deu­ti­gen Iden­ti­fi­ka­tor stg_id sowie einen Namen und einen Abschluss ('BA', 'MA', 'BSc' etc.). Dar­über hin­aus gibt es für jeden Stu­di­en­gang ein ein­deu­ti­ges Kür­zel, wie. z.B. 'IAM'.

Ein Pro­fes­sor hat einen ein­deu­ti­gen Iden­ti­fi­ka­tor p_id, einen Namen, eine URL, unter der Infor­ma­tio­nen zu ihm zu fin­den sind, sowie optio­nal eine E‑Mail-Adres­se.

Von einen Stu­den­ten sind sein ein­deu­ti­ger Iden­ti­fi­ka­tor s_id, sein Name, sein Wohn­ort und (mit­tels eines Fremd­schlüs­sels) sein Stu­di­en­gang bekannt.

Stu­den­ten wer­den von Pro­fes­so­ren indi­vi­du­ell oder in Klein­grup­pen geprüft. Von jeder Prü­fung sind (mit­tels Fremd­schlüs­seln) der prü­fen­de Pro­fes­sor und der zu prü­fen­de Stu­dent bekannt. Dar­über hin­aus wer­den das Fach sowie optio­nal der Raum, der Beginn der Prü­fung (von) und die Dau­er gespei­chert.

Eine Prü­fung ist durch Pro­fes­sor, Stu­dent und das Fach ein­deu­tig fest­ge­legt. (Das heißt, der Inhalt der Daten­bank ist auf ein Semes­ter beschränkt.)

Beach­ten Sie, dass die­ses Modell ver­al­tet ist. 2015 gab es im drit­ten Semes­ter noch Stu­di­en­ar­bei­ten. Das hat­te für ein Modul diver­se Ein­zel­prü­fun­gen mit je ein bis drei Teil­neh­mern zur Fol­ge. Im aktu­el­len Stu­di­en­gang gibt es in der Infor­ma­tik dage­gen eher Online­klau­su­ren und damit nur einen ein­zi­gen Prü­fungs­ter­min je Modul.

Aufgabe

Erstel­len Sie zunächst eine zuge­hö­ri­ge Daten­bank: pruefung_create.sql.

Lösen Sie dann die Auf­ga­ben, die Sie in der Datei pruefung_aufgabe.sql vor­fin­den. Kopie­ren Sie die­se Datei auf Ihren Rech­ner und tra­gen Sie Ihre Lösun­gen in die­se Datei ein.

Ach­ten Sie bit­te dar­auf, dass Ihre SQL-Anfra­gen für jeden gül­ti­gen Daten­be­stand genau die gewünsch­ten Infor­ma­tio­nen als Ergeb­nis aus­ge­ben, nicht mehr und nicht weni­ger.

Mus­terlö­sung