Abschlussarbeiten Sommersemester 2015 Lehrstuhl für Informationsmanagement Christoph Ehlers, Alexander Riemer, Matthias Schmid Didaktische Darstellung der Verarbeitung von Anfragen in den Schichten eines Datenbanksystems Masterarbeit Hintergrund Datenbanksysteme sind üblicherweise in Schichten organisiert (siehe Abbildung 1). In der Sprach- und Schnittstellenschicht werden eingehende SQL-Anfragen mithilfe eines Parsers in eine interne Repräsentation umgewandelt und mit Metadaten versehen. In der Anfrageanalyse- und Optimierungsschicht wird relationale Algebra eingesetzt, um die Anfrage zu beschreiben und zu optimieren. Daraus wird in der Anfrageevaluationsschicht ein Anfrageausführungsplan berechnet und auch ausgeführt. Dabei wählt das Datenbanksystem beispielsweise geeignete Join-Algorithmen aus. Der Transaktionsmanager organisiert die Verzahnung der Ausführung paralleler Anfragen durch Einsatz eines Schedulers. In der Zugriffsschicht werden geeignete Recovery-Algorithmen eingesetzt, um die Korrektheit der gespeicherten Daten des Datenbanksystems sicherzustellen. Die Recovery sorgt dafür, dass zum Beispiel nach einem Stromausfall wieder ein korrekter Zustand der gespeicherten Daten des Datenbanksystems erreicht wird. Die Speicherschicht ist für die physikalische Speicherung der Daten verantwortlich. Diese erfolgt üblicherweise in sogenannten Seiten. In dieser Schicht befindet sich meist auch ein Seitencache. Aufgabenstellung Die Arbeit soll folgende Aspekte umfassen: • Entwicklung und Implementierung einer JAVA-Anwendung, die die Verarbeitung von Anfragen in den verschiedenen Schichten eines Datenbanksystem didaktisch aufbereitet und visualisiert • Keine Implementierung von Varianten, d.h., Implementierung von einem ausgewählten Algorithmus pro Schicht (also zum Beispiel Verwendung des Schedulers S2PL und des Recovery-Algorithmus RedoWinners) • Fokus auf didaktische, verständliche Darstellung • Sicherstellung der Erweiterbarkeit gemäß Software-Engineering-Grundprinzipien Diese Aufzählung versteht sich als grobe Orientierung. Eine genaue Definition der Aufgabenstellung wird bei Interesse gemeinsam vereinbart. Gerne können dabei eigene Vorschläge eingebracht werden. ... DB Clients Requests Ausführungsthreads DB Server (Data Server) Sprach- und Schnittstellen-Schicht SQL, ODBC, ... Anfrageanalyse und -optimierungsschicht Relationale Algebra, Optimierungsstrategien, ... Anfrageevaluationsschicht QEP, Joinalgorithmen, Sortieralgorithmen ... Zugriffsschicht Datensätze, Indexe, ... Speicherschicht Seiten, DB-Cache, ... Datenzugriffe Datenbank Abbildung 1: Schichten eines Datenbanksystems Voraussetzungen Für die Bearbeitung des Themas gelten folgende Rahmenbedingungen: • Gute Kenntnisse in der Vorlesung »Datenbanken und Informationssysteme« obligatorisch • Gute Kenntnisse in der Vorlesung »Transaktionssysteme« sinnvoll Kontakt Interessenten bitten wir sich jederzeit unverbindlich per E-Mail ([email protected]) oder persönlich (Raum 162/163 ITZ) beim Lehrstuhl zu melden.