\documentclass[a4paper,9pt]{scrartcl}
\usepackage{amssymb, amsmath} % needed for math
\usepackage[utf8]{inputenc} % this is needed for umlauts
\usepackage[ngerman]{babel} % this is needed for umlauts
\usepackage[T1]{fontenc}    % this is needed for correct output of umlauts in pdf
\usepackage{pdfpages}       % Signatureinbingung und includepdf
\usepackage{geometry}       % [margin=2.5cm]layout
\usepackage{hyperref}       % links im text
\usepackage{color}
\usepackage{framed}
\usepackage{enumerate}      % for advanced numbering of lists
\usepackage{marvosym}       % checkedbox
\usepackage{wasysym}
\usepackage{braket}         % for \Set{}
\usepackage{pifont}% http://ctan.org/pkg/pifont
\usepackage{minted} % needed for the inclusion of source code

\newcommand{\cmark}{\ding{51}}%
\newcommand{\xmark}{\ding{55}}%

\hypersetup{ 
  pdfauthor   = {Martin Thoma}, 
  pdfkeywords = {Datenbanksysteme,KIT}, 
  pdftitle    = {Musterlösung: Datenbanksysteme} 
} 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Begin document                                                    %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\section{Aufgabe D1 - Multiple Choice}
  \begin{tabular}{p{12cm}cc}
    & Richtig & Falsch\\
    Die Komplexität des Nested-Loop Joins ist stets höher als die des Merge-Joins. & \Square & \Square\\
    Wenn die Daten vorab in sinnvoller Weise sortiert wurden, kann dies die Ausführung des Nested Loops beschleunigen. & \Square & \Square\\
    Die Berechnung der Intervall-Grenzen ist beim Equi-Depth Histogramm aufwendiger als beim Equi-Width Histogramm. & \Square & \Square\\
    Eine zustandsbehaftete Ausführung hat die Eigenschaft, dass der Zustand explizit erfasst und in einer Datenbank gespeicher wird. & \Square & \Checkedbox\\
    Beim asynchronen Zugriff wird die Kontrolle an den Aufrufer zurückgegeben, sobald die letzte Kopie des Datenobjekts geschrieben wurde. & \Square & \Square\\
    Eine sinnvolle Möglichkeit der Auflösung von Inkonsistenzen von mehreren Versionen des Einkaufswagens ist, ihre Schnittmenge zu berechnen. & \Square & \Square\\
    Der Kommunikationsaufwand in strukturierten P2P-Systememn ... & \Square & \Square\\
    Vector Clocks sind Listen ... & \Square & \Square\\
    PIQL ... & \Square & \Square\\
    PIQL ... & \Square & \Square\\
    Im PIQL ... & \Square & \Square\\
    Der DataStop-Operator ... & \Square & \Square\\
  \end{tabular}

\section{Aufgabe D2 - Normalformen}
\subsection{Teilaufgabe a)}
$\Set{D, B}$ und $\Set{D, C}$

\subsection{Teilaufgabe b)}
\begin{itemize}
    \item $D^+ = \Set{A, D, E, F, G}$
    \item $B^+ = C^+ = \Set{A, B, C, E, F, G}$
\end{itemize}

TODO: Was kann ich daraus auf die NF folgern?

\subsection{Teilaufgabe c)}
TODO
\clearpage

\section{D3 - SQL}
\subsection{Teilaufgabe a)}
\inputminted[linenos, numbersep=5pt, tabsize=4]{sql}{d3a.sql}

\subsection{Teilaufgabe b)}
\inputminted[linenos, numbersep=5pt, tabsize=4]{sql}{d3b.sql}

TODO: Geht das schöner?

\subsection{Teilaufgabe c)}
TODO: Keine Ahnung, was das soll. Das WHERE verwirrt mich. Werden hier
nur Teams angeschaut, die weniger Punkte haben also alle Spieler ohne 
Mannschaft zusammen?

\section{D4 - Transaktionen und Histories}
TODO: Transaktionen
\subsection{Teilaufgabe a)}
TODO: Serialisierbarkeitsgraph

\subsection{Teilaufgabe b)}
TODO: Serialisierbarkeitsgraph

\end{document}
