musterloesung-db-2012-09-24.tex 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. \documentclass[a4paper,9pt]{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 1 - Funktionale Abhängigkeiten}
  34. \subsection{Teilaufgabe a)}
  35. Gilt $F \Rightarrow f$?
  36. \begin{tabular}{clccl}
  37. & Funktionale Abhängigkeit $f$ & & Begründung\\
  38. \hline\hline
  39. 1 & $DI \rightarrow BCDEFI$ & \xmark & kein F\\
  40. 2 & $BDG \rightarrow ABCDEFHH$ & \cmark &\\
  41. 3 & $DHI \rightarrow ACDGI$ & \xmark & kein A\\
  42. 4 & $BCDEGI \rightarrow ABCDEFGHI$ & \cmark &\\
  43. 5 & $AF \rightarrow ABCEGH$ & \cmark &\\
  44. 6 & $ABCDE \rightarrow ABCEFHI$ & \xmark & kein I\\
  45. 7 & $DI \rightarrow CFGI$ & \xmark & kein C\\
  46. 8 & $ADFI \rightarrow BCDEFGHI$ & \cmark &\\
  47. 9 & $GI \rightarrow BDEFG$ & \xmark & kein B\\
  48. \end{tabular}
  49. \subsection{Teilaufgabe b)}
  50. Schlüssel in R:
  51. \begin{itemize}
  52. \item $\Set{I, A}$
  53. \item $\Set{I, B}$
  54. \item $\Set{I, C}$
  55. \end{itemize}
  56. Die Relation befindet sich nur in 1NF, da $I \rightarrow H$ eine
  57. partielle Abhängigkeit darstellt. Daher kann die Relation nicht in
  58. 2NF sein.
  59. \subsection{Teilaufgabe c)}
  60. \begin{align*}
  61. F^{(2)} = \{ & A \rightarrow B,\\
  62. &AI \rightarrow \delta,\\
  63. & B \rightarrow C, B \rightarrow D,\\
  64. & C \rightarrow A,C \rightarrow D,C \rightarrow F,\\
  65. & D \rightarrow E,D \rightarrow F,D \rightarrow G,D \rightarrow H,D \rightarrow H,\\
  66. & F \rightarrow G,\\
  67. & I \rightarrow H
  68. \}
  69. \end{align*}
  70. \begin{align*}
  71. F^{(3)} = \{ & A \rightarrow B,\\
  72. &AI \rightarrow \delta,\\
  73. & B \rightarrow C, B \rightarrow D,\\
  74. & C \rightarrow A,\\
  75. & D \rightarrow E,D \rightarrow F,D \rightarrow G,D \rightarrow H,\\
  76. & F \rightarrow G,\\
  77. & I \rightarrow H
  78. \}
  79. \end{align*}
  80. aufgelöst wurden wie folgt:
  81. \begin{tabular}{l|l}
  82. & redundant durch\\
  83. \hline
  84. $C \rightarrow D$ & $C \rightarrow A \land A \rightarrow B \land B \rightarrow D$\\
  85. $C \rightarrow F$ & $C \rightarrow A \land A \rightarrow B \land B \rightarrow D \land D \rightarrow F$\\
  86. $D \rightarrow G$ & $D \rightarrow F \land F \rightarrow G$\\
  87. \end{tabular}
  88. ergibt die Zerlegung
  89. \begin{align*}
  90. R = \{\\
  91. & (\Set{A, B}, \Set{\Set{A}}),\\
  92. &(\Set{A, I}, \Set{\Set{A, I}}),\\
  93. & (\Set{B, C, D}, \Set{\Set{B}}),\\
  94. & (\Set{C, A}, \Set{\Set{C}}),\\
  95. & (\Set{D, E, F, H},\Set{\Set{D}}),\\
  96. & (\Set{F, G}, \Set{\Set{F}}),\\
  97. & (\Set{I, H}, \Set{\Set{I}})\\
  98. \}
  99. \end{align*}
  100. \clearpage
  101. \section{Aufgabe 2 - SQL}
  102. \subsection{Teilaufgabe a)}
  103. \begin{tikzpicture} [scale=1.2]
  104. \node (a)[vertex] at (1,2) {1};
  105. \node (b)[vertex] at (2,2) {2};
  106. \node (c)[vertex] at (3,1) {3};
  107. \node (d)[vertex] at (2,0) {4};
  108. \node (e)[vertex] at (1,0) {5};
  109. \node (f)[vertex] at (0,1) {6};
  110. \foreach \from/\to in {a/b,a/c,a/d,b/c,b/d,c/d,d/e,e/f}
  111. \draw[line width=1.5pt] (\from) -- (\to);
  112. \end{tikzpicture}
  113. \subsection{Teilaufgabe b)}
  114. \inputminted[linenos, numbersep=5pt, tabsize=4]{sql}{d2b.sql}
  115. \subsection{Teilaufgabe c)}
  116. \subsubsection{Version A}
  117. \inputminted[linenos, numbersep=5pt, tabsize=4]{sql}{d2c1.sql}
  118. \subsubsection{Version B}
  119. \inputminted[linenos, numbersep=5pt, tabsize=4]{sql}{d2c2.sql}
  120. \section{Aufgabe 3 - Histories}
  121. \subsubsection{Teilaufgabe a)}
  122. \begin{itemize}
  123. \item[H1] Es gibt folgende Kanten:
  124. (12, xyz), (13, xy), (23, y), (32, y).\\
  125. Somit ist ein Zykel zwischen 2 und 3 $\Rightarrow$ nicht serialisierbar
  126. \item[H2] (21, xyz), (23, y), (31, xy).\\
  127. Somit keine Zykel und serialisierbar
  128. \end{itemize}
  129. \subsubsection{Teilaufgabe b) und c)}
  130. (Y = erfüllt, N = nicht erfüllt)
  131. \begin{itemize}
  132. \item[H1]
  133. \begin{itemize}
  134. \item T3 reads y from T2 NN
  135. \item T2 reads x from T3 YN
  136. \item T2 reads z from T1 YN
  137. \item T3 reads x from T1 YN
  138. \end{itemize}
  139. \item[H2]
  140. \begin{itemize}
  141. \item T1 reads y from T3 YN
  142. \item H1 ist nicht rücksetzbar (also weder in RC, ACA oder ST)
  143. \item H2 ist in RC (also nicht in ACA oder ST)
  144. \end{itemize}
  145. \end{itemize}
  146. \end{document}