Anfrageverarbeitung
This commit is contained in:
		
										
											Binary file not shown.
										
									
								
							@@ -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}
 | 
			
		||||
		Reference in New Issue
	
	Block a user