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 - Studiengaenge

Migration der Studiengänge

Swen Wenzel

Die Queries

Bei dem Abrufen der Studiengänge aus dem Datawarehouse wird genauso vorgegangen wie bei dem Abrufen der Studenten mit dem Unterschied, dass diesmal nicht nur nach der Matrikelnummer sondern auch nach Studiengang gruppiert wird.
Ist dann das Letzte Semester für jeden Studiengang eines Studenten Gefunden wird zusätzlich nach dem Fach gruppiert. Das geschieht erst an dieser Stelle, damit Fächer rausfallen, die der Student gar nicht mehr studiert, weil er sich zum Beispiel umentschieden hat.
So bekommt man eine Eindeutige Kombination aus Student, Studiengang und Studienfach.
Schließlich werden die Datensätze noch nach Matrikelnummer aufsteigend sortiert, um die zugehörigen Studenten vorab laden zu können.

Die Bearbeitung

Diese Query ist mit ungefähr 120000 Datensätzen sogar noch etwas größer als die der Studenten und wird daher ebenfalls in Gruppen zu 10000 bearbeitet.
Um nicht für jeden Datensatz den zugehörigen Studenten einzeln laden zu müssen, werden die Datensätze nach Matrikelnummer sortiert abgerufen.
Das hat den Vorteil, dass man nun alle Studenten deren Matrikelnummer im Bereich der Datengruppe liegt vorab laden und auch in einem Hash speichern kann, der zusätzlich zu den Studenten auch deren bereits vorhandene Studiengänge beinhaltet.
Dann werden auch noch die Studienfächer vorab geladen, welche eindeutig anhand einer künstlichen ID identifiziert werden können, die sich aus den Warehouse IDs des jeweiligen Fachs und der zugehörigen Lehreinheit zusammensetzt.
Somit hat man die häufig gebrauchten Objekte (Student, Study und Discipline) im Arbeitsspeicher und kann relativ schnell über die Studiengänge iterieren ohne permanent die Datenbank konsultieren zu müssen.
Wird ein Studiengang neu angelegt, wird er sowohl in den Hash eingetragen als auch zum späteren Abspeichern in einem Array gespeichert.
Existiert der Studiengang für den aktuellen Datensatz bereits, enthält aber das Fach noch nicht, wird dieses Fach einfach eingetragen und der Studiengang ebenfalls in das Array eingetragen.
Schließlich wird, ähnlich wie bei den Studenten, jeder Eintrag aus dem Array innerhalb einer Transaktion abgespeichert.

Die Abschlussart

Das ER-Diagramm sieht für jeden Studiengang eine Abschlussart vor.
Da es aber 56 verschiedene Abschlussarten gibt, müssen diese anhand eines Mappings zusammengefasst werden.
Hierfür eignet sich das Attribut ABINT_ASTAT der Tabelle DIM_ABSCHLUESSE, dass bereits viele Abschlussarten vereinigt, wodurch nur noch 22 Zahlen, wie im Anschluss dargestellt, gemappt werden müssen.

ABINT_ASTAT kind_of_degree
01, 33, 47, 82->Beachelor
08->Referendarexamen
94->Zertifikat
97->Kein Abschluss
30, 58, 64, 66, 88, 99->Master
21, 22, 23, 25, 27, 40->Lehramt
02->Magister
06->Promotion
11->Diplom

Nach dem Praktikum hat man festgestellt, dass die Studenten teilweise mehrere Abschlussarten pro Studiengang haben. Diese richten sich dann nach den Fächern innerhalb eines Studiengangs.
Leider war das aus der schwachen Dokumentation der Warehousedatenbank nicht unmittelbar ersichtlich daher ermöglicht es die Applikationsdatenbank nicht mehrere Abschüsse pro Studiengang einzutragen.
Im Gegenteil, es wird für jedes Fach pro Studiengang der gleiche Abschluss angenommen, weswegen es zum Beispiel Referendariatsexamen in den Fachbereichen Sozialwissenschaften und Wirtschaftswissenschafen gibt (Durch diese Tatsache ist das Problem erst aufgefallen).


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