|
[ Topic proposals for theses and student assistants. In German. ]
Im Rahmen unserer Forschungsprojekte Pathfinder, Ferry und Nautilus 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/Melanie vorbei. Wir freuen uns auf die Zusammenarbeit.
|
Thema |
Bearbeitet durch |
| 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. |
Florian Maier |
| 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ührungs- und Optimierungsstrategien für LINQ-Queries. |
Simone Bonetti |
| 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 von PostgreSQL selbst benätigt werden, ist eine offene Frage. |
Martin Luik |
| 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). |
Hans-Joachim Ruschewey, Fabian Kliebhan |
| 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. |
Joffrey Fitz |
| 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. |
|
| 10. |
Programmiersprachen-Interfaces für Pathfinder In der Programmiersprache C geschriebene Komponenten unseres Query Compilers Pathfinder sollen in Form einer dynamischen oder statischen Library direkt aus anderen Programmiersprachen wie Ruby, C#, Java, O'Caml und Haskell heraus aufgerufen werden können. Dazu müsste zunächst eine Einarbeitung in die vorhandenen Techniken (Ruby-FFI, C#-InteropServices, Java-JNI, OCaml-FFI, Haskell-FFI) für solche Foreign Function Calls stattfinden, um diese dann schliesslich für und in Ruby, C#, Java, O'Caml und Haskell zu implementieren. Idealerweise entwickelt diese Arbeit einen Code-Generator, der den benötigen "Glue Code" automatisch aus C-Header-Files von Pathfinder (oder einer anderen abstrakten Beschreibung) generiert. |
|
| 11. |
Datenbankgestützte Analyse von Metagenomikdaten
Die Vielfalt der mikrobiellen Welt ist überwältigend, doch die allermeisten Mikroben lassen sich nicht kultivieren und können deshalb nicht im Labor untersucht werden. Um dieses Problem zu umgehen, werden in der Metagenomik Gemeinschaften von Mikroben mittels Sequenzierung und bioinformatischer Analyse untersucht. Hierbei fallen sehr große Mengen von Daten an, typischerweise im Bereich mehrerer Gigabytes.
Ein wichtiges Werkzeug fuer die Analyse von Metagenomikdaten ist MEGAN, welches eine taxonomische und funktionale Klassifikation solcher Daten erlaubt. MEGAN benutzt derzeit lediglich Files, um Metagenomikdaten effizient zu speichern. Thema dieser Diplom-/Masterarbeit ist es, Metagenomikdaten in tabellarische Form zu bringen, um dann ein relationales Datenbanksystem zur effizienten Extraktion von Reads und Matches sowie zur Datenanalyse (bspw. Klassifikation) einzusetzen. Hier sollte sich ein signifikanter Performancevorteil erreichen lassen.
Voraussetzungen: Kenntnisse im Bereich relationaler Datenbanken wären vorteilhaft. Der bioinformatische Hintergrund kann on the fly erworben werden.
|
|
| 12. |
Database-Supported Lab Notebook
Project documentation is an important part of any research effort. However, there is no standardized way to document experimental data in research. The raw data, saved to a hard drive, often comprises the only information stored about an experiment. Many other pieces of information related to the raw data, the metadata of the experiment, are at best documented in a lab notebook, and therefore not easily accessible for data mining, or in the worst case not documented at all.
The goal of this project is the development of a flexible database interface that can be used for the extensive documentation of electrophysiological data. The project can build upon existing efforts to establish such a database, called LabLog. LadbLog is based on a relational MySQL database and inplemented in Java; XML is used to interact with external programs. Although the primary focus of the project is to design an easy-to-use, as-automated-as-possible interface between the researcher, the experiment and the database, it might also involve interaction with the designers of LabLog which is under ongoing development.
One major difficulty in the design of such a database is the fuzzy nature of the information to be stored. The needs will depend strongly on the particular research project, and not all requirements might be initially known and anticipated. At the Centre for Integrative Neuroscience (CIN), we are looking for a person who is knowledgeable in the design and maintenance of databases, and who is open-minded and flexible to develop a sense for the practical needs in a research setting. The project will be pursued in very close interaction with several research groups working on very different cutting-edge research projects within the neurosciences.
|
|
|
13.
|
Effiziente Generierung von Erklärungen in Nautilus
Nautilus bietet Datenbankentwicklern die Möglichkeit, sich das Fehlen von Daten erläutern zu lassen. Problematisch ist momentan, dass der Algorithmus, der die Erklärungen generiert ineffizient ist, da zunächst alle Möglichkeiten berechnet werden bevor diese gefiltert werden. Ziel der Arbeit ist, Methoden zu entwickeln und zu implementieren, die den Prozess der Erklärungsgenerierung beschleunigen. Denkbare Lösungsansätze sind z.B., nicht alle Möglichkeiten zu berechnen sondern vor der Berechnung bereits zu filtern, oder die Berechnung einer Möglichkeit effizienter zu lösen.
|
|
|
14.
|
Vergleich verschiedener Algorithmen zur Erklärung fehlender Daten
In den letzten Monaten wurden verschiedene Algorithmen vorgestellt, um fehlende Daten in Anfrage- bzw. Transformationsergebnissen zu erklären. Ziel dieser Arbeit ist, verschiedene Ansätze zu analysieren. Zur Analyse gehören sowohl eine theoretische Betrachtung als auch eine experimentelle Vergleichsstudie. Zur Durchführung des experimentellen Teils ist ggf. die Implementierung von Algorithmen nötig.
|
|
15.
|
Erklären fehlender aggregierter Daten in Nautilus
Nautilus bietet Datenbankentwicklern die Möglichkeit, sich das Fehlen von Daten in Anfrageergebnisseen erläutern zu lassen. Bisher beschränken sich fie Anfragen jedoch auf SQL Anfragen, die nur aus Selektion, Projektion, Join, und Union bestehen. Ziel der Arbeit ist, den bestehenden Algorithmus zu erweitern um zukünftig auch Aggregation und Gruppierung zu unterstützen.
|
|
16.
|
Visualisierung der Nautilus Analysephase
Um fehlende Daten zu erläutern, generiert Nautilus eine Vielzahl von alternativen Erklärungen. Aktuell werden diese als eine lange Liste ausgegeben. Ziel der Arbeit ist, die Menge der Erklärungen im aktuellen Eclipse Plugin geeigneter darzustellen um somit die Usability von Nautilus zu erhöhen.
|
|
|