Files
secondo/Optimizer/Subqueries/kapitel/einleitung.tex

38 lines
3.8 KiB
TeX
Raw Permalink Normal View History

2026-01-23 17:03:45 +08:00
%
% 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
%
%