Anfrageverarbeitung

This commit is contained in:
Marco Ammon 2019-02-12 00:17:29 +01:00
parent 7f4d4cb5c7
commit 229b67679d
2 changed files with 39 additions and 0 deletions

Binary file not shown.

View File

@ -304,4 +304,43 @@
\end{itemize}
\end{itemize}
\end{itemize}
\section{Anfrageverarbeitung}
\begin{itemize}
\item Abbildung von mengenorientierten Operatoren auf interne Satzschnittstelle
\item \begriff{Anfrageverarbeitung} erstellt einen \begriff{Anfrageausführungsplan}: \begin{itemize}
\item Analyse: lexikalische und syntaktische Prüfung, semantische Prüfung, Zugriffskontrolle, Integritätskontrolle
\item Optimierung: \begin{itemize}
\item \begriff{Standardisierung} und Vereinfachung
\item \begriff{algebraische} Verbesserung
\item \begriff{nicht-algebraische} Verbesserung: Berücksichtigung der Kosten der \begriff{Planoperatoren}
\end{itemize}
\item Code-Generierung
\item Ausführungskontrolle
\end{itemize}
\item \begriff{logische Operatoren} mit Relationen $R$, $S$ und Prädikat $P$: \begin{itemize}
\item \begriff{Selektion} $\text{SEL}(R, P)$
\item \begriff{Projektion} $\text{PROJ}(R, L)$ mit $L = (A_1, \dots, A_k)$
\item \begriff{Kreuzprodukt} $\text{CROSS}(R,S)$
\item \begriff{Verbund} $\text{JOIN}(R,S,P(R_{Ai}, S_{Aj}))$
\item \begriff{Vereinigung} $\text{UNION(R;S)}$
\item \begriff{Schnitt} $\text{INTERSECT(R,S)}$
\item \begriff{Ausschluss} $\text{EXCEPT(R,S)}$
\item analoge Operationen auf \begriff{Multimengen}
\item \begriff{Umbenennung} $\text{RENAME}(R, R_\text{neu}, ((A_i, A_{i,\text{neu}}), \dots))$
\item \begriff{Duplikat-Eliminierung} $\text{DUP-ELIM}(R)$
\item \begriff{Aggregation} $\text{SUM}(R, A_i)$, $\text{AVG}(R, A_i)$, $\text{MIN}(R, A_i)$, $\text{MAX}(R, A_i)$, $\text{COUNT}(R)$
\item \begriff{Gruppierung} $\text{GROUP}(R, L, G)$ mit $G = ((\text{AGG}_1, (A_i), \text{name}_1), \dots)$
\item \begriff{erweiterte Projektion} $\text{G-PROJ}(R, L)$ mit $L = (\text{name}_1 = \text{expr}_1, \dots)$
\item \begriff{Sortierung} $\text{SORT}(R, L)$ mit $L = (A_i, A_j, \dots)$
\item \begriff{äußerer Verbund} $\text{OUTER-JOIN}(R,S,P,c)$ mit $c \in \{\text{left}, \text{right}, \text{full}\}$
\end{itemize}
\item allgemeine Vorgehensweise bei Restrukturierung: \begin{itemize}
\item komplexe Verbünde, Selektionen in binäre aufteilen
\item Selektion möglichst \enquote{weit unten} ausführen
\item Selektion und Kreuzprodukt zu Verbund gruppieren
\item aufeinander folgende Selektionen der selben Relation zusammenfassen
\item Projektionen möglichst \enquote{weit unten} ausführen (aber Duplikat-Eliminierung vermeiden)
\end{itemize}
\end{itemize}
\end{document}