Constructing a Relational Query Optimizerfor Non-Relational LanguagesDissertationder Mathematisch-Naturwissenschaftlichen Fakult atder Eberhard Karls Universit at Tubingenzur Erlangung des Grades einesDoktors der Naturwissenschaften(Dr. rer. nat.)vorgelegt vonJan Rittingeraus KarlsruheTubingen2010iiTag der mundlic hen Quali kation: 08.04.2011Dekan: Prof. Dr. Wolfgang Rosenstiel1. Berichterstatter: Prof. Dr. Torsten Grust2. Berich Prof. Dr. Guido MoerkotteZusammenfassungDie Speicherung von Daten in achen, ungeordneten Tabellen sowie eine deklara-tive Anfragesprache sind Grunde fur den Erfolg relationaler Datenbanksysteme:Sie erlauben einem Datenbankoptimierer nicht nur die Auswahl verschiedenerAlgorithmen, sondern auch die Wahl der besten Auswertungsreihenfolge. Dankjahrzehntelanger Forschung und Entwicklung ahlenz relationale Datenbanksystemezu den besten Auswertungsplattformen fur gro e Datenmengen.In den meisten Programmiersprachen werden, im Gegensatz zu Datenbanksys-temen, sortierte und mitunter verschachtelte Datenstrukturen verwendet. Diemeisten Software-Entwickler arbeiten aglict h mit diesen Datenstrukturen inder Programmiersprache ihrer Wahl, was dazu fuhrt, dass das Schreiben vonDatenbankanfragen oft ein Umdenken erfordert, beziehungsweise eine potentielleFehlerquelle darstellt.