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.

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

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.

Musterlösung