38 lines
3.8 KiB
TeX
38 lines
3.8 KiB
TeX
|
|
%
|
|||
|
|
% Einleitung
|
|||
|
|
%
|
|||
|
|
%
|
|||
|
|
|
|||
|
|
\chapter{Einleitung}\label{chp:Einleitung}
|
|||
|
|
\pagenumbering{arabic}
|
|||
|
|
|
|||
|
|
\section{Problembeschreibung}\label{sct:Problembeschreibung}
|
|||
|
|
SQL ist unter anderem eine m<>chtige Abfragesprache, mit deren Hilfe sich viele Fragestellungen, die an relationale Daten gestellt werden k<>nnen, formulieren lassen. Da SQL nach dem Vorbild der englischen Sprache entworfen wurde, erleichtert die Syntax die formale Darstellung in Umgangssprache vorliegender Informationsanforderungen. Einer der gro<72>en Vorteile von SQL ist die M<>glichkeit, Abfragen geschachtelt zu formulieren. So l<>sst sich die Fragestellung \enquote{Gib mir alle Lieferanten, deren Umsatz dem maximalen Umsatz aller Lieferanten entspricht} unter der Annahme, dass es eine Relation \enquote{Lieferanten} mit dem Schema (Name, Umsatz) gibt, formulieren als
|
|||
|
|
|
|||
|
|
\sql{select * from lieferanten where umsatz = (select max(umsatz) from lieferanten)}.
|
|||
|
|
|
|||
|
|
Die in einem Nebensatz formulierte Bedingung \enquote{deren Umsatz dem maximalen Umsatz aller Lieferanten entspricht} kann hier direkt als Abfrage \sql{select max(umsatz) from lieferanten} formuliert werden. Ohne eine Schachtelung lie<69>e sich die Fragestellung nur mit Hilfe von zwei getrennten Abfragen formulieren.
|
|||
|
|
|
|||
|
|
Das erweiterbare Datenbanksystem \textsc{Secondo}\footnote{ausf<EFBFBD>hrlichere Beschreibung siehe Abschnitt \ref{sct:Beschreibung SECONDO}} stellt bereits alle Operationen zur Verf<72>gung, um beliebig tief geschachtelte Ausdr<64>cke ausf<73>hren zu k<>nnen. Der zugeh<65>rige Optimierer, der f<>r die <20>bersetzung von SQL in einen effizienten \textsc{Secondo}-Ausdruck zust<73>ndig ist, kann aber noch keine geschachtelten Abfragen verarbeiten. Damit ist die Formulierung komplexer geschachtelter Abfragen nur in der \textsc{Secondo}-eigenen Syntax m<>glich.
|
|||
|
|
|
|||
|
|
Ziel dieser Arbeit ist es, den \textsc{Secondo}-Optimierer in die Lage zu versetzen, geschachtelte Abfragen <20>bersetzen zu k<>nnen. Nach M<>glichkeit soll der Optimierer zwischen verschiedenen Ausf<73>hrungsstrategien die effizienteste Ausf<73>hrungsstrategie f<>r die jeweilige <20>bersetzung ausw<73>hlen. Um die Implementierung zu testen und die Vorteile unterschiedlicher Ausf<73>hrungsstrategien zu demonstrieren, sollen in einer Gegen<65>berstellung geschachtelte Abfragen aus dem TPC-D Benchmark mit verschiedenen Ausf<73>hrungsstrategien ausgef<65>hrt und verglichen werden.
|
|||
|
|
|
|||
|
|
\section{Aufbau der Arbeit}\label{sct:Aufbau der Arbeit}
|
|||
|
|
Die Arbeit besteht aus vier Teilen.
|
|||
|
|
|
|||
|
|
Im ersten Teil (Kapitel \ref{chp:Review}, ab Seite \pageref{chp:Review}) werden die technologischen und theoretischen Grundlagen dargelegt, mit denen sich geschachtelte Abfragen optimieren lassen.
|
|||
|
|
|
|||
|
|
Der zweite Teil widmet sich der Problemanalyse und der ausf<73>hrlichen Darstellung der ausgew<65>hlten Algorithmen und wird in Kapitel \ref{chp:Entwurf} ab Seite \pageref{chp:Entwurf} dargestellt. Es werden die Gr<47>nde f<>r die Auswahl der Algorithmen dargelegt und die Bedingungen f<>r ihren Einsatz beschrieben.
|
|||
|
|
|
|||
|
|
Die Implementierung und technische Umsetzung der Algorithmen wird im dritten Teil, Kapitel \ref{chp:Implementierung} ab Seite \pageref{chp:Implementierung} geschildert. Anhand von Beispielen wird gezeigt, wie die einzelnen Schritte der Optimierung und <20>bersetzung geschachtelter Abfragen ablaufen.
|
|||
|
|
|
|||
|
|
Im vierten Teil, Kapitel \ref{chp:Leistungsbewertung} ab Seite \pageref{chp:Leistungsbewertung} werden zwei m<>gliche Ausf<73>hrungsstrategien f<>r die <20>bersetzung geschachtelter Abfragen anhand von geschachtelten Abfragen aus dem TPC-D Benchmark quantitativ und strukturell verglichen.
|
|||
|
|
|
|||
|
|
Ab Seite \pageref{sct:Fazit} findet sich ein <20>berblick <20>ber die erreichten Ergebnisse mit einem Ausblick auf m<>gliche zuk<75>nftige Erweiterungen, die sich aus den in dieser Arbeit nicht gel<65>sten Fragestellungen ergeben.
|
|||
|
|
|
|||
|
|
Im Anhang ab Seite \pageref{Anhang} findet sich die vom Optimierer verstandene SQL-Syntax, sowie die Implementierung der Erweiterungen des Optimierers und die Definition der implementierten Operatoren.
|
|||
|
|
|
|||
|
|
%
|
|||
|
|
% EOF
|
|||
|
|
%
|
|||
|
|
%
|