musterloesung-db-klausur-b.tex 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. \documentclass[a4paper]{scrartcl}
  2. \usepackage{amssymb, amsmath} % needed for math
  3. \usepackage[utf8]{inputenc} % this is needed for umlauts
  4. \usepackage[ngerman]{babel} % this is needed for umlauts
  5. \usepackage[T1]{fontenc} % this is needed for correct output of umlauts in pdf
  6. \usepackage{pdfpages} % Signatureinbingung und includepdf
  7. \usepackage{geometry} % [margin=2.5cm]layout
  8. \usepackage{hyperref} % links im text
  9. \usepackage{color}
  10. \usepackage{framed}
  11. \usepackage{enumerate} % for advanced numbering of lists
  12. \usepackage{marvosym} % checkedbox
  13. \usepackage{wasysym}
  14. \usepackage{braket} % for \Set{}
  15. \usepackage{pifont}% http://ctan.org/pkg/pifont
  16. \usepackage{minted} % needed for the inclusion of source code
  17. \usepackage{tikz}
  18. \usetikzlibrary{arrows,positioning, calc,lindenmayersystems,decorations.pathmorphing,intersections}
  19. \tikzstyle{vertex}=[draw,
  20. fill=yellow,
  21. circle,minimum size=10pt,inner sep=0pt]
  22. \newcommand{\cmark}{\ding{51}}%
  23. \newcommand{\xmark}{\ding{55}}%
  24. \hypersetup{
  25. pdfauthor = {Martin Thoma},
  26. pdfkeywords = {Datenbanksysteme,KIT},
  27. pdftitle = {Musterlösung: Datenbanksysteme}
  28. }
  29. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  30. % Begin document %
  31. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  32. \begin{document}
  33. \section{Aufgabe D1 - ER-Modellierung}
  34. \subsection{Teilaufgabe a)}
  35. \begin{tabular}{p{12cm}cc}
  36. & Richtig & Falsch\\
  37. Es kann Gutachter geben, die keiner Konferenz zugewiesen sind & \Square & \Checkedbox\\
  38. Es ist sichergestellt, dass eine Publikation von mehreren Gutachtern bewertet wird. & \Checkedbox & \Square\\
  39. Jede Konferenz besitzt zugewiesene Gutachter & \Square & \Checkedbox\\
  40. Jeder Autor steht über seine Publikationen mit mindestens drei Gutachtern in Verbindung. & \Checkedbox & \Square\\
  41. Es kann auch Konferenzen geben, auf denen nichts veröffentlicht wird. & \Checkedbox & \Square\\
  42. Es gilt immer: $N(Publikationen) \geq N(Autor)$ & \Square & \Checkedbox\\
  43. Es gilt immer: $N(Konferenz) \geq N(Publikation)$ & \Square & \Checkedbox\\
  44. Es gilt immer: $N(Gutachter) \geq N(Publikation)$ & \Checkedbox & \Square\\
  45. \end{tabular}
  46. \subsection{Teilaufgabe b)}
  47. ER-Modelierung ist kapazitätserhöhend? (Beispiel? TODO)
  48. \clearpage
  49. \section{Aufgabe D2 - Normalformen}
  50. \subsection{Teilaufgabe a)}
  51. $A$ ist Schlüsselkandidat.
  52. \subsection{Teilaufgabe b)}
  53. $R = \Set{\underline{A}, B, C, D}$ hat
  54. \begin{itemize}
  55. \item 1NF, da jedes Attribut atomar ist
  56. \item 2NF, da es bein einem einzelnen Attribut als Schlüssel niemals ein Nicht-Schlüssel von einer Teilmenge abhängig sein kann
  57. \item nicht 3NF, da $A \rightarrow B \rightarrow C$. Der Nicht-Schlüssel $C$ ist also vom Schlüssel $A$ transitiv abhängig.
  58. \end{itemize}
  59. \subsection{Teilaufgabe c)}
  60. \begin{tabular}{lcp{1cm}p{2cm}p{5cm}}
  61. Zerlegung & 3NF & ver\-bund\-treu & ab\-hängigkeits\-treu & Bemerkung\\
  62. \hline
  63. $S_1 = \Set{\underline{A}BC, \underline{C}D}$ & \xmark & \xmark & \xmark & nur 2NF, da $A \rightarrow B \rightarrow C$ \newline Im Schnitt ist nur $C$, aber $C \nrightarrow ABC$ und $C \nrightarrow CD$ \newline $C \rightarrow D$ ist nicht in $F$ \\
  64. $S_2 = \Set{\underline{A}B, \underline{B}C, \underline{C}D}$ & \cmark & \xmark & \xmark & $C \rightarrow D$ ist nicht in $F$\newline Gegenbeispiel für verbundtreue gefunden\\
  65. $S_3 = \Set{\underline{A}B, \underline{B}CD}$ & \cmark & \cmark & \cmark & \\
  66. $S_4 = \Set{\underline{A}B, \underline{C}D}$ & \cmark & \xmark & \xmark & $C \rightarrow D$ nicht in $F$\newline nicht verbundtreu, da beide Relation nur per Natural Join verbunden werden können
  67. \end{tabular}
  68. \clearpage
  69. \section{Aufgabe D3 - SQL}
  70. \subsection{Teilaufgabe a)}
  71. \includegraphics[width=0.7\textwidth]{d3.pdf}
  72. \subsection{Teilaufgabe b)}
  73. \inputminted[linenos, numbersep=5pt, tabsize=4]{sql}{d3b.sql}
  74. Problem: Nun kann es auch Kunden geben, die gar nicht beraten werden!
  75. \subsection{Teilaufgabe c)}
  76. \inputminted[linenos, numbersep=5pt, tabsize=4]{sql}{d3c.sql}
  77. \subsection{Teilaufgabe d)}
  78. \inputminted[linenos, numbersep=5pt, tabsize=4]{sql}{d3d.sql}
  79. \subsection{Teilaufgabe e)}
  80. \inputminted[linenos, numbersep=5pt, tabsize=4]{sql}{d3e.sql}
  81. \section{D4 - Transaktionen und Histories}
  82. \subsection{Teilaufgabe a)}
  83. \begin{tikzpicture} [scale=1.2]
  84. \node (T1)[vertex] at (1,2) {$T_1$};
  85. \node (T2)[vertex] at (2,2) {$T_2$};
  86. \node (T3)[vertex] at (3,1) {$T_3$};
  87. \node (T4)[vertex] at (2,0) {$T_4$};
  88. \node (T5)[vertex] at (1,0) {$T_5$};
  89. \foreach \from/\to in {T1/T2, T4/T5, T4/T3, T4/T2, T3/T1, T5/T1}
  90. \draw[line width=1.5pt,->] (\from) -- (\to);
  91. \end{tikzpicture}
  92. \subsection{Teilaufgabe b) und c)}
  93. \begin{tabular}{l|lll}
  94. ~ & RC & ACA & ST \\ \hline
  95. $T_4$ reads $d$ from $T_3$ & \cmark & \cmark & \cmark \\
  96. $T_4$ reads $c$ from $T_2$ & \cmark & \cmark & \cmark \\
  97. $T_1$ reads $a$ from $T_2$ & \cmark & \cmark & \cmark \\
  98. \end{tabular}
  99. \subsection{Teilaufgabe d)}
  100. Eine History $H$ ist $ST \Leftrightarrow w_j(x) < o_i(x): i \neq j \Rightarrow a_j < o_i(x) \lor c_j < o_i(x)$, wobei $o_i(x) \in \Set{r_i(x), w_i(x)}$
  101. \subsection{Teilaufgabe e)}
  102. $w_5[b]$ hinter $c_4$ verschieben
  103. \end{document}