Informatik I

Informatik I

Einführung in die Informatik
und die systematische Programmkonstruktion


Advanced
Functional Programming

Fun with functions and Haskell

Abgeschlossene Diplom-, Master- und Bachelor-Arbeiten Print

 

Universität Tübingen

 

Thema

TryDSH - Webanwendung

Database Supported Haskell (DSH) ermöglicht Programme, die auf einer großen Menge an Daten operieren, direkt in relationalen Datenbankmanagementsystemen (RDBMS) auszuführen. Dadurch ergeben sich große Performancevorteile, da Datenbanken für große Datenmengen optimiert sind. TryDSH bietet, auf DSH aufbauend, dem Benutzer eine Webanwendung, mit der DSH direkt ausprobiert werden kann. Dabei können die benötigten Daten zuvor über das Webinterface hochgeladen werden, um anschließend auf diesen Daten operierende Haskell-Programme direkt in der Datenbank auszuführen.
  • TryDSH. Tim Digel, Studienarbeit, November 2011

Web-based editor for algebraic plans

Ferry programs output table algebra plans as an intermediate result during compilation. We would like to have a web-based tool that can be used to edit or create these plans and help us debug them. On the client-side we would like to have some HTML/javascript implementation (AJAX). On the server-side a Haskell implementation would be preferred (but Java (Google Web Toolkit)/Ruby is also possible). You will have to use dot to help layout the algebraic plans, and some XML processing/generating will also be involved.

Batches: Remote Batch Invocation for Java

Mit der an der Universiy of Texas entwickelten Query-Sprache Batches ist es möglich auf elegante Art und Weise Anfragen in Java einzubetten, die dann von einer Datenbank (auf einem entfernten Rechner) ausgewertet werden können. Die Verschmelzung von Batches mit Ferrys Übersetzungstechniken führt zu einem beachtlichen Gewinn an Performance und Ausdrucksstärke.
  • Batches. Dennis Butterstein, Master Thesis, Juli 2011

Ruby/Ferry goes Web2.0

TryRuby macht es vor: Ein übersichtliches Tutorial zum interaktiven Lernen einer der populärsten und zugleich elegantesten Programmiersprachen der letzten Jahre. Für unsere auf Ruby basierendende Query-Sprache wurde dieses Konzept übernommen. Basierend auf einem bereits vorhandenen Grundgerüst wurden weitere Perfomance- und Sicherheitsaspekte integriert.
  • Dino Rezes, Studienarbeit, Juli 2011

SQL Code Generation for Non-Relational Source Languages

Pathfinder's relationale Algebra ist Dreh- und Angelpunkt für viele Frontend- und Backend-Sprachen. So lassen sich z.B. XQuery, SQL, LINQ und Ferry in die relationale Algebra von Pathfinder übersetzen. Pathfinder's ursprünglicher SQL Code Generator ist für die Auswertung von XML-spezifische Anfragen optimiert und nutzt durch die enge Kopplung mit Pathfinder's relationaler Algebra nur wenige SQL Sprachkonstrukte. Eine Übersetzung in eine an SQL angelehnte Algebra dient als Ausgangspunkt für die Integration von weiteren Sprachkonstrukten und Optimierungen. Die Optimierungen verbessern die Lesbarkeit sowie die Ausführungsgeschwindigkeit des generierten SQL Codes.

A Ferry-Based Query Backend for the Links Programming Language

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 wurde der in O'Caml geschriebene Links-Compiler modifiziert.

Usability des Nautilus-Analyzer durch Visualisierung und Nutzerinteraktion

Um fehlende Daten zu erläutern, generiert Nautilus während der Analyse-Phase eine Vielzahl von alternativen Erklärungen. Aktuell werden diese als eine lange Liste ausgegeben, deren Berechnung zeitaufwändig ist. Ziel der Arbeit ist, die Nutzbarkeit des Nautilus-Analyzer zu erhöhen, indem zum Einen die Wartezeit, die ein Entwicker auf Erklärungen warten muss reduziert wird (z.B. inkrementelle Berechnung oder Filtern von Erklärungen mittels Nutzerinteraktion), und zum Anderen die Menge der ausgegebenen Erklärungen geeignet dargestellt wird.

Recycling Intermediate Results in Pipelined Query Evaluation

This thesis describes the design and implementation of a query recycler for the X100 column database system. In query recycling, prior effort in optimizing and evaluating a query is reused when a similar query appears sometime later in the workload. The thesis addresses issues of when/how/where prior results should be materialized, which layers of the memory hierarchy are affected by query recycling, and — quite importantly — how to detect that a materialized query result can be used to efficiently answer an incoming query.
  • Recycling Intermediate Results in Pipelined Query Evaluation. Fabian Nagel, Diplomarbeit, November 2010 [ no download provided ]

A Truly Compositional SQL Debugger

Um das Verständnis von SQL Anfragen zu vertiefen, basiert SQL Debugging heutzutage entweder auf der Interpretation von Anfrageplänen oder auf dem manuellen (und oft fehlerbehafteten) Umschreiben von SQL Anfragen. Der entwickelte Debugger erlaubt es einzelne (beliebige) Teilausdrücke einer SQL Anfrage zu markieren und deren Ergebnis zu beobachten. Dazu werden die markierten Teilausdrücke automatisch in eigenständige SQL Anfragen übersetzt und von der Datenbank ausgeführt. Der Benutzer kann mehrere Teilausdrücke imZusammenspiel beobachten und die Funktionsweise der Anfrage sowie potentielle Probleme leichter interpretieren.

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.

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.

Ü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.

Ü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.

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.
  • Joffrey Fitz, Studienarbeit, Juli 2009

Kompilation (einer Teilmenge) von SQL in Pathfinder's relationale Algebra

Wir experimentieren mit neuen Techniken zur Übersetzung von SQL in eine relationale Algebra. Die Ü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).

 

TU München

 

Universität Konstanz