Warning: include_once(/var/www/html/pmwiki-2.2.86/cookbook/soap4pmwiki/soap4pmwiki.php): failed to open stream: No such file or directory in /var/www/html/fields/dbp13/local/config.php on line 4

Warning: include_once(): Failed opening '/var/www/html/pmwiki-2.2.86/cookbook/soap4pmwiki/soap4pmwiki.php' for inclusion (include_path='.:/opt/php/lib/php') in /var/www/html/fields/dbp13/local/config.php on line 4

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/fields/dbp13/local/config.php:4) in /var/www/html/pmwiki-2.2.86/pmwiki.php on line 1250
Datenbankpraktikum SS 2013 - Datenvisualisierung - Abschluesse

Migration der Abschlüsse

Swen Wenzel

Die Query

Um an die aktuellsten Daten für die Abschlüsse heranzukommen, werden diese nach Matrikelnummer und Studiengang gruppiert und die Daten ermittelt bei denen das Semester und die Versuchsnummer am höchsten ist. Hierbei ist wichtig, dass zusäztlich zur Versuchsnummer auch das Semester mit ausgewählt wird, da dieses als Vorfilter für die nicht indizierten Versuchsnummern die Query erst ermöglicht.
Außerdem wird auch diese Query nach Matrikelnummer aufsteigend sortiert, um die Studenten besser vorab laden zu können.
Und es werden nur solche Datensätze abgerufen, die entweder den Status "bestanden" oder "entgültig nicht bestanden" haben, damit auch nur tatsächliche Abschlüsse migriert werden und keine Daten von Studenten die noch in der Prüfungsphase sind.

Bearbeiten der Datensätze

Die Query liefert ca. 26000 Datensätze. Auch diese werden in Gruppen zu 10000 bearbeitet.
Da es aber wesentlich weniger Datensätze als Studenten gibt, kann es passieren, dass pro Gruppe mehr als 10000 Studenten im Bereich der Matrikelnummern liegen.
Also müssen auch die Studenten die zu einer Abschlussgruppe gehören in Gruppen abgerufen werden. ActiveRecord ermöglicht zwar das Abrufen von Entities in Gruppen allerdings nur zusammen mit einem Codeblock der diese direkt der Reihe nach bearbeitet. Wir wollen aber die nächste Gruppe erst auf Anfrage bekommen, weswegen wir uns die Query vorab zusammenbauen und nacheinander mit unterschiedlichen limits ausführen. Die nächste Studentengruppe wird dann jeweils geladen, wenn die Matrikelnummer des aktuellen Abschlussgruppeneintrags größer als die höchste Matrikelnummer in der Studentengruppe ist. Außerdem wird für jeden Studenten, der nicht in der aktuellen Studentengruppe ist sicherheitshalber noch mal die Datenbank konsultiert bevor ein Fehler wegen einem fehlenden Studenten geworfen wird.
Wie bei den anderen großen Queries werden auch hier die erstellen Abschlüsse in einem Array abgespeichert und am Ende jeder Gruppe gemeinsam innerhalb einer Transaktion in die Applikationsdatenbank übertragen.

Die Noten

Die Noten reichen von null bis neun, was nicht unbedingt hilfreich ist. Daher hat man sich mit Frau Dalinghaus in Verbindung gesetzt, welche die Noten erklären konnte.
0 steht für "summa cum laude", den besten Abschluss bei einer Promotion.
7 steht für "vollbefriedigend" und kann mit einer 3,5 gleichgesetzt werden.
8 steht für "bestanden mit unbekannter Note" und kann mit einer 3,0 gleichgesetzt werden.
9 steht für "entgültig nicht bestanden" und wird von uns mit einer 5,3 gleichgesetzt.
Es gibt noch weitere Noten die außerhalb des Intervalls [1,5] liegen. Von diesen werden alle die kleiner als eins sind beibehalten und alle die größer als fünf sind auf 5,3 gemappt.


Page last modified on August 23, 2013, at 07:00 PM