\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 - ER-Modellierung} \subsection{Teilaufgabe a)} \begin{tabular}{lcc} & Richtig & Falsch\\ Es kann Gutachter geben, die keiner Konferenz zugewiesen sind & \Square & \Checkedbox\\ Es ist sichergestellt, dass eine Publikation von mehreren Gutachtern bewertet wird. & \Checkedbox & \Square\\ Jede Konferenz besitzt zugewiesene Gutachter & \Square & \Checkedbox\\ Jeder Autor steht über seine Publikationen mit mindestens drei Gutachtern in Verbindung. & \Checkedbox & \Square\\ Es kann auch Konferenzen geben, auf denen nichts veröffentlicht wird. & \Checkedbox & \Square\\ Es gilt immer: $N(Publikationen) \geq N(Autor)$ & \Square & \Checkedbox\\ Es gilt immer: $N(Konferenz) \geq N(Publikation)$ & \Square & \Checkedbox\\ Es gilt immer: $N(Gutachter) \geq N(Publikation)$ & \Checkedbox & \Square\\ \end{tabular} \subsection{Teilaufgabe b)} ? \section{Aufgabe D2 - Normalformen} \subsection{Teilaufgabe a)} Jede Menge mit $A$ ist Schlüsselkandidat. Also: \begin{itemize} \item $\Set{A}$ \item $\Set{A, B}$ \item $\Set{A, B, C}$ \item $\Set{A, B, C, D}$ \item \dots \item Allgemein: $\Set{A} \cup x$ mit $x \in \mathcal{P}(\Set{B, C, D})$ \end{itemize} \subsection{Teilaufgabe b)} $R = \Set{\underline{A}, B, C, D}$ hat \begin{itemize} \item 1NF, da jedes Attribut atomar ist \item 2NF, da es bein einem einzelnen Attribut als Schlüssel niemals ein Nicht-Schlüssel von einer Teilmenge abhängig sein kann \item nicht 3NF, da $A \rightarrow B \rightarrow C$. Der Nicht-Schlüssel $C$ ist also vom Schlüssel $A$ transitiv abhängig. \end{itemize} \subsection{Teilaufgabe c)} TODO: Überprüfen! Hier bin ich mir sehr unsicher \begin{tabular}{lcccp{5cm}} Zerlegung & 3NF & verbundtreu & abhängigkeitstreu & Bemerkung\\ \hline $S_1 = \Set{\underline{A}BC, \underline{C}D}$ & \xmark & \cmark & \cmark & nur 2NF, da $A \rightarrow B \rightarrow C$\\ $S_2 = \Set{\underline{A}B, \underline{B}C, \underline{C}D}$ & \cmark & \xmark & \cmark & \\ $S_3 = \Set{\underline{A}B, \underline{B}CD}$ & \cmark & \cmark & \cmark & \\ $S_4 = \Set{\underline{A}B, \underline{C}D}$ & \cmark & \xmark & \cmark & nicht verbundtreu, da beide Relation nur per Natural Join verbunden werden können \end{tabular} \section{Aufgabe D3 - SQL} \subsection{Teilaufgabe a)} \includegraphics[width=0.7\textwidth]{d3.pdf} \subsection{Teilaufgabe b)} \inputminted[linenos, numbersep=5pt, tabsize=4]{sql}{d3b.sql} Problem: Nun kann es auch Kunden geben, die gar nicht beraten werden! \subsection{Teilaufgabe c)} \inputminted[linenos, numbersep=5pt, tabsize=4]{sql}{d3c.sql} \subsection{Teilaufgabe d)} \inputminted[linenos, numbersep=5pt, tabsize=4]{sql}{d3d.sql} \subsection{Teilaufgabe e)} \inputminted[linenos, numbersep=5pt, tabsize=4]{sql}{d3e.sql} \section{D4 - Transaktionen und Histories} \subsection{Teilaufgabe a)} TODO: Keine Ahnung wie man das lesen muss. Kann mir jemand das auf Papier machen und ein Foto schicken? \subsection{Teilaufgabe b)} TODO \subsection{Teilaufgabe c)} TODO \subsection{Teilaufgabe d)} TODO \subsection{Teilaufgabe e)} TODO \end{document}