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 werden.

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 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 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. (Das Daten­mo­dell soll­te ver­bes­sert wer­den, indem fach und raum als Enum-Tabel­len ange­legt werden.)

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.)

Aufgabe

Erstel­len Sie zunächst eine zuge­hö­ri­ge Daten­bank: pruefung_create.sql. (Die Daten sind ver­al­tet: Sie bezie­hen sich auf die alte IAM-SPO und Pro­fes­so­ren, die damals unter­rich­tet haben.)

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 weniger.

Mus­ter­lö­sung: pruefung_aufgabe_loesung.sql