|
[ Topic proposals for theses and student assistants. In German. ]
Im Rahmen unserer Forschungsprojekte Pathfinder und Ferry gibt es eine Reihe interessanter Themen, die sich — je nach Umfang — für Studien-, Bachelor-, Master- und Diplomarbeiten eignen. Desweiteren gibt es auch immer wieder kleinere und größere Aufgaben, deren Ergebnis wir gerne zur Unterstützung der Lehre einsetzen würden.
Die folgende Liste steht stellvertretend für den Stil der Aufgaben, die wir euch bieten können. Viele weitere Themen sind vereinbar. Bitte sprecht uns an und schaut einfach bei Jan/Manuel/Tom vorbei. Wir freuen uns auf die Zusammenarbeit.
| 1. |
Übersetzung (einer Teilmenge) von Ruby nach Ferry Die Sprache Ferry bildet eine Brücke zwischen der Welt der Anfrage- und Programmiersprachen. Bestimmte Fragmente der Skriptsprache Ruby sollten sich in Ferry-Ausdrücke übersetzen lassen. Das würde die Möglichkeit eröffnen, diese Programmfragmente mit Unterstützung von (relationaler) Datenbanktechnologie auszuführen. Falls Programme signifikante Mengen von Daten bewegen, kann der Performance-Gewinn beträchtlich sein. |
| 2. |
Übersetzung (einer Teilmenge) von LINQ nach Ferry Microsofts in C# und Visual Basic eingebette Anfragesprache LINQ (Language Integrated Query) sollte sich recht problemlos auf die durch uns entwickelte Sprache Ferry — ein Hybrid aus Anfrage- und Programmiersprache — abbilden lassen. Das ermöglicht die Entwicklung neuer Ausführungss- und Optimierungsstrategien für LINQ-Queries. |
| 3. |
Konstruktion eines PostgreSQL-Code-Generators für Pathfinder Unser XQuery-Compiler besitzt einen Code-Generator, der derzeit SQL-Code zur Ausführung auf IBM DB2 erzeugt. Durch Adaption dieses Code-Generators sollte auch Code für das freie RDBMS PostgreSQL erzeugbar sein. Welche Indexstrukturen zum Einsatz kommen sollten und ob dazu Änderungen am Datenbankkern von PostgreSQL selbst benötigt werden, ist eine offene Frage. |
| 4. |
Compilation (einer Teilmenge) von SQL in Pathfinder's relationale Algebra Wir experimentieren mit neuen Techniken zur Übersetzung von SQL in eine relationale Algebra. Die entstehenden Übersetzungen (1) sind besonders zugänglich für Optimierungen, (2) lassen sich gut auf eine Vielzahl von (Datenbank–)Back-Ends abbilden und (3) erlauben die Konstruktion neuer Systeme (bspw. SQL/XML-Prozessoren oder deklarative SQL-Debugger). |
| 5. |
Kompakte Speicherung/Kompression von XQuery String Values in IBM DB2 V9 Kompressionstechniken, die seit kurzem im relationalen Datennanksystem IBM DB2 verfügbar sind, können eingesetzt werden, um die für die Auswertung von XQuery-Anfragen wichtigen String Values von XML-Knoten in der Datenbank direkt zu speichern, anstatt diese aufwändig zur Laufzeit der Anfrage wiederholt zu berechnen. Wir versprechen uns einen signifkanten Laufzeitvorteil.
|
| 6. |
Entwurf, Implementation und Dokumentation einer Ruby on Rails-Praktikumsaufgabe In kommenden Semestern wollen wir Datenbankpraktika durchführen, die u.a. das Web-Applikations-Framework Ruby on Rails zum Inhalt haben werden. Mit Ruby on Rails lassen sich datenbankgestützte Web-Applikationen in kürzester Zeit entwickeln. Eine derartige Applikation wollen wir zuvor exemplarisch konzipieren und implementieren lassen. Über die eigentliche Applikation können wir uns bei Arbeitsbeginn verständigen. |
| 7. |
Web 2.0–basierter Demonstrator für Ferry (Einsatz von Google Web Toolkit) Für unsere Datenbankprogrammiersprache Ferry existiert derzeit die in Java implementierte interaktive Demonstrationsumgebung FerryDeck. Dieser Demonstrator soll mittels des Google Web Toolkit (Googles AJAX-basiertes UI-Toolkit) re-implementiert werden, so dass wir Ferry — dann lediglich mit Hilfe eines Web-Browsers — auf Konferenzen / in der Lehre demonstrieren können. Hierzu ist die Kenntnis von Ferry selbst keine Voraussetzung. |
| 8. |
Integration von Ferrys Compilationstechniken in Links Wir wollen die Compilationstechniken in Ferry nutzen, um eine deutlich grössere Teilmenge der Sprache Links — konzipiert zur datenbankgestützten Entwicklung von Websites — in deutlich effizienteren SQL–Code übersetzen zu können. Dazu muss der in O'Caml geschriebene Links-Compiler modifiziert werden. Kenntnisse einer funktionalen Programmiersprache wären hier hilfreich. |
| 9. |
Static Typing for Ferry Unser Ferry-Compiler führt derzeit noch keine statische Typisierung durch. Dies sollte sich in den bereits bestehenden Compiler (derzeit implementiert in der funktionalen Programmiersprache Haskell) relativ einfach integrieren lassen. |
|