Datenbank-Programmierung

Informationen zur Prüfung (Modulleistung)

Die Prüfung wird voraussichtlich als Hausarbeit/Projekt (75%) und Online-Kurzklausur (25%) erfolgen. Das ist eine Abweichung von der Modulbeschreibung, die eine mündliche/schriftliche/elektronische Prüfung vorsieht, aber keine Hausarbeit. Im Moment ist das Corona geschuldet: Es soll eine Präsenzprüfung vermieden werden. Möglicherweise ist ein kleines Projekt für die Lernziele dieses Moduls aber auch passender. Je nach Erfahrungen wird angestrebt, die Prüfungsform für das Modul dauerhaft zu ändern.

Der Grund für die Kurzklausur ist, dass nicht alle Themen der Vorlesung gut über das Projekt abgeprüft werden können (z.B. parallele Zugriffe auf die Datenbank). Es ist aber nicht ausgeschlossen, dass es auch eine gewisse inhaltliche Überlappung mit dem Projekt gibt (die Kompetenzen zur Beantwortung eher theoretischer Fragen sind etwas anders). Sie werden bei der Kurzklausur aber sicher keinen Java-Quellcode entwickeln müssen, während das beim Projekt unbedingt nötig ist.

Von der ersten Vorlesung an wurden folgende Termine genannt:

  • Freitag, 13.08.2021, 12:00: Spätester Abgabetermin für die Hausarbeit zum Projekt.
  • Montag, 16.08.2021, 10:30–11:30: Kurzklausur.

Da es keine Einsprüche gegeben hat, sind diese Termine jetzt fest. Für die Kurzklausur kann man sich auch schon im Löwenportal anmelden.

Wie es Vorschrift ist, gibt es auch einen zweiten Prüfungstermin. Momentan ist eine Papier-Klausur in Präsenz am 27.09.2021 (10:30-12:30) geplant (keine Hausarbeit). Dieser Termin ist besonders unsicher. Bei sehr wenig Teilnehmern wären auch mündliche Prüfungen möglich.

Anforderungen an das Projekt:

Die folgenden Anforderungen sollen nur einen ungefähren Eindruck vermitteln. Es gibt später eine genaue Liste der Anforderungen und mehr Informationen zu den Bewertungskriterien.

  • Sie können sich selbst eine Anwendung aussuchen, müssen Ihr konkretes Projekt aber mit dem Übungsleiter absprechen. Selbstverständlich müssen Sie alle verwendeten Quellen offenlegen, und eine Selbständigkeitserklärung unterschreiben.
  • Für das Projekt muss PostgreSQL verwendet werden.
  • Die Datenbank soll 4–7 Tabellen enthalten (ideal wären 5). In der entsprechenden ER-Ansicht müssen 1:n und n:m-Beziehungen vorkommen. Die Struktur soll also nicht ganz simpel sein. Sie sollen gute Datentypen für die Spalten wählen, CHECK-Constraints verwenden, und mindestens eine Sequenz benutzen (zur Erzeugung eindeutiger Schlüsselwerte). Sie sollen Ihr Schema ausreichend dokumentieren.
  • Sie sollen ein oder mehrere Beispielzustände entwickeln. Eventuell wird auch ein Programm zum Erzeugen eines großen Beispielzustands (z.B. mit zufälligen Daten) gefordert.
  • Sie sollen Zugriffsrechte für mindestens zwei verschiedene Nutzer (mit unterschiedlichen Rechten) definieren.
  • Sie sollen mindestens eine Sicht definieren (z.B. für eingeschränkte Zugriffe eines Nutzers oder als bequeme Abkürzung).
  • Sie sollen mindestens einen Trigger zur Integritätsüberwachung entwickeln (in PL/pgSQL). Eventuell auch Funktionen in dieser Sprache (die im PostgreSQL-Server ausgeführt wird).
  • Sie sollen mindestens ein psql-Skript entwickeln (z.B. zum Export von Daten als HTML oder LaTeX Tabelle).
  • Sie sollen ein Java-Programm mit Datenbank-Zugriff über JDBC entwickeln. Dieses muss Updates und Anfragen enthalten. Erwartet werden ca. 200–400 Zeilen. Das Java-Programm muss mit maven [Wikipedia] gebaut werden.
  • Das Java-Programm und/oder psql-Skript müssen Anfragen mit fortgeschrittenen Konstrukten enthalten, die in der Vorlesung behandelt wurden. Selbstverständlich müssen auch Update-Befehle vorkommen.
  • Sie sollten mindestens einen Index anlegen, und erläutern, warum er für mindestens eine Ihrer Anfragen nützlich ist.
  • Der Quellcode muss mit Git (einer Versionsverwaltung) [Wikipedia] im Repository https://gitlab-bs.kube.informatik.uni-halle.de/ verwaltet werden. Er muss im Laufe der Zeit "natürlich gewachsen" sein (mit sinnvollen Commits). Dies ist eine Maßnahme, die Plagiate erschweren soll. Außerdem ist Git ein wirklich nützliches Werkzeug, das Sie unbedingt kennen bzw. kennenlernen sollten. Natürlich werden Sie dabei in der Übung unterstützt. Sourcetree wäre ein freier Git Client für Windows und Mac (mit GUI).
  • Alles muss im abzugebenen Bericht gut dokumentiert und erklärt sein. Erwartet werden ca. 12–20 Seiten plus Java-Code und Testausgaben in Anhängen. Der wichtigste SQL-Code zählt zu den 12–20 Seiten.

Beachten Sie, dass bei einer Hausarbeit natürlich auch mit berücksichtigt wird, ob Sie sich "Mühe gegeben" haben. Wenn Sie überall die Spezifikation gerade so erfüllt haben, dürfen Sie nicht zu enttäuscht sein, wenn Sie keine 1.0 bekommen. Es ist aber auch nicht so, dass große Quantität automatisch zu einer guten Note führt. Auch die Qualität muss stimmen, und "klein, aber fein" könnte zu einer besseren Note als "groß und chaotisch" führen. Unser Ziel ist, dass ein relativ großer Teil des Vorlesungsstoffes in Ihrem Projekt auch angewendet wird (und natürlich korrekt).

Die Anforderungen werden voraussichtlich nochmals überarbeitet, weiter präzisiert und in den Übungen ausführlich besprochen.

Hausaufgaben / Übungen (Studienleistung):

Es gibt wöchentliche Hausaufgaben. Diese sind einzeln zu bearbeiten. Insgesamt müssen 50% der Punkte erworben werden.

Es gibt keine Anwesenheitspflicht zu den Übungen (außer bei Plagiatsverdacht, s.u). Die eigentlichen Übungen sind die Lehrvideos zum Mitmachen (d.h. es wird erwartet, dass Sie gelegentlich die "Pause"-Taste drücken, und etwas selbst ausprobieren). Die Videokonferenz der Übung ist eher eine Sprechstunde für Fragen, oder um Hilfe beim Projekt zu bekommen. Die Tutoren werden auch anwesend sein, und es wird "Breakout"-Räume geben, so dass Sie recht individuelle Hilfe bekommen können, oder sich auch mit anderen Teilnehmern austauschen.

Häufig sind die Inhalte der Lehrvideos eine wichtige Grundlage für die Hausaufgaben. Wenn Sie sich die Lehrvideos nicht anschauen, und die eingestreuten Übungsaufgaben nicht machen, müssen Sie damit rechnen, dass Sie deutlich länger brauchen, um die Hausaufgaben zu bearbeiten (und die Hausaufgaben sind Pflicht).

Plagiate sind kein Kavaliersdelikt! Bei "zu ähnlichen Abgaben" bekommen alle Beteiligten 0 Punkte. Im Wiederholungsfall droht der Ausschluss von der Vorlesung. Es ist gut, sich gegenseitig bei Problemen zu helfen, aber das besteht nicht im Verschicken einer fertigen Lösung. Wenn es Grund zur Annahme gibt, dass Plagiate vorkommen, werden auch die etwas verschwommenen Regeln zur aktiven Mitarbeit in den Übungen mit voller Härte durchgezogen, weil wir natürlich prüfen müssen, dass die Lösungen auch vom Einsender stammen. Dann kann die Teilnahme an der Übung doch zur Pflicht werden. Ersparen Sie uns allen den Ärger, so dass wir uns auf die spannenden Inhalte konzentrieren können. Wer nicht arbeitet, wird auch nichts lernen.

Prof. Dr. Stefan Brass
Impressum