[Uni












Diplomarbeit: Codeerzeugung für AODB


AODB ist ein neu entwickeltes, relationales Datenbanksystem, dass speziell auf Data-Warehousing-Anwendungen zugeschnitten ist. Es zeichnet sich durch hohe Anfrage-Leistung aus. Es besteht zunächst aus einem Laufzeitsystem. Dieses Laufzeitsystem beinhaltet u.a. eine Implementierung einer erweiterten relationalen Algebra dar. Ein wesentlicher Punkt ist bei dieser Implementierung die Art, in der die Parameter an die algebraischen Operatoren weitergereicht werden. Eine Selektion zum Beispiel bekommt als Parameter ein Selektionsprädikat. Dieses Prädikat kann als Operatorbaum angegeben werden, der dann zur Laufzeit interpretiert werden muss. Dies ist natürlich sehr langsam. Am anderen Ende des Spektrums befindet sich die Übersetzung in Maschinencode. Das ist sehr effizient, aber auch sehr aufwendig und die Codeerzeugung ist damit nicht portierbar. In AODB haben wir daher einen anderen Ansatz gewählt: Die Parameter der algebraischen Operatoren werden als AVM Programme dargestellt. Dabei ist AVM die AODB Virtual Machine. Die Idee ist die gleiche wie bei Java: Eine abstrakte Maschine (in Java die Java Virtual Machine) interpretiert einen entsprechenden Code. AVM unterscheidet sich von der Java Virtual Machine (JVM) durch zwei wesentliche Eigenschaften. Zum einen wurden Fehler, die beim Design der JVM gemacht wurden und zu Ineffizienzen führen vermieden, zum anderen wurde der Befehlssatz speziell auf Datenbankanwendungen zugeschnitten.

Neben dem AODB Laufzeitsystem wird zur Zeit ein Anfrageoptimierer implementiert. Um diesen für das AODB Laufzeitsystem nutzbar zu machen, muss eine Codegenerierung implementiert werden, die die interne Darstellung eines Plans im Optimierer (algebraische Ausdrücke und Operatorbäume für die Parameter) umwandelt in einen entsprechenden Plan, den das Laufzeitsystem versteht. Dies ist die Aufgabe der Diplomarbeit. Ein Prototyp dieser Codegenerierung besteht bereits. Dieser kann als Grundlage verwendet werden.

Der/Die Kandidat/in sollte gute Kenntnisse in C++ mitbringen. Das in der Datenbank I Vorlesung erworbene Wissen kann nicht schaden.


Interessenten melden sich bitte via email (moer@pi3.informatik.uni-mannheim.de) oder direkt (D 7, Raum 408) bei Guido Moerkotte