musterloesung-db-klausur-b.tex 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  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. \newcommand{\cmark}{\ding{51}}%
  18. \newcommand{\xmark}{\ding{55}}%
  19. \hypersetup{
  20. pdfauthor = {Martin Thoma},
  21. pdfkeywords = {Datenbanksysteme,KIT},
  22. pdftitle = {Musterlösung: Datenbanksysteme}
  23. }
  24. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  25. % Begin document %
  26. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  27. \begin{document}
  28. \section{Aufgabe D1 - ER-Modellierung}
  29. \subsection{Teilaufgabe a)}
  30. \begin{tabular}{lcc}
  31. & Richtig & Falsch\\
  32. Es kann Gutachter geben, die keiner Konferenz zugewiesen sind & \Square & \Checkedbox\\
  33. Es ist sichergestellt, dass eine Publikation von mehreren Gutachtern bewertet wird. & \Checkedbox & \Square\\
  34. Jede Konferenz besitzt zugewiesene Gutachter & \Square & \Checkedbox\\
  35. Jeder Autor steht über seine Publikationen mit mindestens drei Gutachtern in Verbindung. & \Checkedbox & \Square\\
  36. Es kann auch Konferenzen geben, auf denen nichts veröffentlicht wird. & \Checkedbox & \Square\\
  37. Es gilt immer: $N(Publikationen) \geq N(Autor)$ & \Square & \Checkedbox\\
  38. Es gilt immer: $N(Konferenz) \geq N(Publikation)$ & \Square & \Checkedbox\\
  39. Es gilt immer: $N(Gutachter) \geq N(Publikation)$ & \Checkedbox & \Square\\
  40. \end{tabular}
  41. \subsection{Teilaufgabe b)}
  42. ?
  43. \section{Aufgabe D2 - Normalformen}
  44. \subsection{Teilaufgabe a)}
  45. Jede Menge mit $A$ ist Schlüsselkandidat. Also:
  46. \begin{itemize}
  47. \item $\Set{A}$
  48. \item $\Set{A, B}$
  49. \item $\Set{A, B, C}$
  50. \item $\Set{A, B, C, D}$
  51. \item \dots
  52. \item Allgemein: $\Set{A} \cup x$ mit $x \in \mathcal{P}(\Set{B, C, D})$
  53. \end{itemize}
  54. \subsection{Teilaufgabe b)}
  55. $R = \Set{\underline{A}, B, C, D}$ hat
  56. \begin{itemize}
  57. \item 1NF, da jedes Attribut atomar ist
  58. \item 2NF, da es bein einem einzelnen Attribut als Schlüssel niemals ein Nicht-Schlüssel von einer Teilmenge abhängig sein kann
  59. \item nicht 3NF, da $A \rightarrow B \rightarrow C$. Der Nicht-Schlüssel $C$ ist also vom Schlüssel $A$ transitiv abhängig.
  60. \end{itemize}
  61. \subsection{Teilaufgabe c)}
  62. TODO: Überprüfen! Hier bin ich mir sehr unsicher
  63. \begin{tabular}{lcccp{5cm}}
  64. Zerlegung & 3NF & verbundtreu & abhängigkeitstreu & Bemerkung\\
  65. \hline
  66. $S_1 = \Set{\underline{A}BC, \underline{C}D}$ & \xmark & \cmark & \cmark & nur 2NF, da $A \rightarrow B \rightarrow C$\\
  67. $S_2 = \Set{\underline{A}B, \underline{B}C, \underline{C}D}$ & \cmark & \xmark & \cmark & \\
  68. $S_3 = \Set{\underline{A}B, \underline{B}CD}$ & \cmark & \cmark & \cmark & \\
  69. $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
  70. \end{tabular}
  71. \section{Aufgabe D3 - SQL}
  72. \subsection{Teilaufgabe a)}
  73. \includegraphics[width=0.7\textwidth]{d3.pdf}
  74. \subsection{Teilaufgabe b)}
  75. \inputminted[linenos, numbersep=5pt, tabsize=4]{sql}{d3b.sql}
  76. Problem: Nun kann es auch Kunden geben, die gar nicht beraten werden!
  77. \subsection{Teilaufgabe c)}
  78. \inputminted[linenos, numbersep=5pt, tabsize=4]{sql}{d3c.sql}
  79. \subsection{Teilaufgabe d)}
  80. \inputminted[linenos, numbersep=5pt, tabsize=4]{sql}{d3d.sql}
  81. \subsection{Teilaufgabe e)}
  82. \inputminted[linenos, numbersep=5pt, tabsize=4]{sql}{d3e.sql}
  83. \section{D4 - Transaktionen und Histories}
  84. \subsection{Teilaufgabe a)}
  85. TODO: Keine Ahnung wie man das lesen muss. Kann mir jemand das auf
  86. Papier machen und ein Foto schicken?
  87. \subsection{Teilaufgabe b)}
  88. TODO
  89. \subsection{Teilaufgabe c)}
  90. TODO
  91. \subsection{Teilaufgabe d)}
  92. TODO
  93. \subsection{Teilaufgabe e)}
  94. TODO
  95. \end{document}