fixed some typos

This commit is contained in:
Sheppy 2017-02-22 12:10:08 +01:00
parent b090d65e16
commit fedd25db17

View File

@ -3,7 +3,9 @@
\usepackage{listings}
\usepackage{graphicx}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[german]{babel}
\newcommand{\solution}[1]{\ifdefined\withsolutions #1 \fi}
\newcommand{\solswitch}[2]{\ifdefined\withsolutions #2 \else #1 \fi}
@ -11,20 +13,20 @@
%use like \solution{ $SOLUTION }
\begin{document}
\section{Disclaimer Bitches}
\subsection{What's this}
Dies ist eine studentische Prüfungsschwierigkeit immitierende Aufgabenzusammenfassung die Themen der Vorlesung Implementieren von Datenbanken. Es handelt sich insbesondere nicht um einen sogenannten "Braindump". Die Aufgaben oritieren sich an den Aufgaben in der ursprünglichen Klausur insofern, dass hier zum Beipsiel anstatt der Frage "Sind Kühe Lila?" die Frage "Machen Kuehe Schokolade?" steht. Auf beide Fragen ist die Antwort: Nein, du schaust zuviel Milkawerbung.
\section*{Disclaimerino}
\subsection*{What's this}
Dies ist eine studentische, prüfungsschwierigkeit immitierende Aufgabenzusammenfassung die Themen der Vorlesung IDB. Es handelt sich insbesondere nicht um einen sogenannten "Braindump". Die Aufgaben orientieren sich an den Aufgaben in der ursprünglichen Klausur insofern, dass hier zum Beipsiel anstatt der Frage 'Sind Kühe Lila?' die Frage 'Machen Kuehe Schokolade?' steht. Auf beide Fragen ist die Antwort: Nein, du schaust zuviel Milkawerbung.
\subsection{Allgemeiner Sicherheitshinweis}
Vorsicht ist die Mutter der Porzelankiste bei dieser Klausur, auch im WS1617 (der Nachfolgeklausur von dieser hier) kam mit R-Baumen z.B. ein voellig neuer Aufgabentyp in die Klausur, es ist naheliegen, dass dies auch in Zukunf passieren wird. Ausserdem koennen hier natuerlich selbstverstaendlich Fehler enthalten sein.
\subsection*{Allgemeiner Sicherheitshinweis}
Vorsicht ist die Mutter der Porzellankiste bei dieser Klausur, auch im WS1617 (der Nachfolgeklausur von dieser hier) kam mit R-Bäumen z.B. ein voellig neuer Aufgabentyp in die Klausur. Es ist naheliegen, dass dies auch in Zukunft passieren wird. Ausserdem koennen hier natuerlich selbstverstaendlich Fehler enthalten sein.
\subsection{Anything else?}
Schaut auf meinem gitlab vorbei wenn ihr dieses Dokument verbesser wollte, Pullrequest werden gerne gesehen. \textit{gitlab.cs.fau.de/ik15ydit/latexandmore} Außerdem bedanke ich mich beim Lehrstuhl fuer Datenbanksystem der Uni Erlangen fuer ihre Umfassenden Lernmaterialien und exzelennte Literaturempfehlung die Erstellung von Loesung und erarbeiten von Alternativen Frage und Aufgabenstellungen so stark erleichtert haben. Falls ihr ueber diese Klausur diskutieren wollte koennt ihr dafuer das bereitsexistierende \textit{https://pad.stuve.fau.de/p/idb} verwenden.\\\\\\
\subsection*{Anything else?}
Schaut auf meinem gitlab vorbei wenn ihr dieses Dokument verbessern wollte, Pullrequest werden gerne gesehen. \textit{gitlab.cs.fau.de/ik15ydit/latexandmore} Außerdem bedanke ich mich beim Lehrstuhl fuer Datenbanksystem der Uni Erlangen fuer ihre Umfassenden Lernmaterialien und exzellente Literaturempfehlung, die die Erstellung von Loesung und Erarbeiten von alternativen Frage und Aufgabenstellungen so stark erleichtert haben. Falls ihr ueber diese Klausur diskutieren wollte koennt ihr dafuer das bereitsexistierende \textit{https://pad.stuve.fau.de/p/idb} verwenden.\\\\\\
\includegraphics[width=1\textwidth]{idb_done.png} %70% der Textbreite
\newpage
% ---------------------------- PAGEBREAK ----------------------------
\section{Aufgabe 1 - Kunterbunte Schic *hicks* ten}
Begründe warum folgende Aussage korrekt oder inkorret ist. Es gibt nur einen Punkt wenn Antwort UND Begruendung richtig sind.
\section*{Aufgabe 1 - Kunterbunte Schic *hicks* ten}
Begründe warum folgende Aussagen korrekt oder inkorret sind. Es gibt nur einen Punkt wenn Antwort UND Begruendung richtig sind.
\begin{itemize}
\item \textbf{a)} Ein Sektor auf einem Speicherzylinder ist genau groß genug fuer einen Satz.
\vspace{1cm}
@ -32,7 +34,7 @@ Begründe warum folgende Aussage korrekt oder inkorret ist. Es gibt nur einen Pu
Nein, die größe eines Sektors ist nicht definiert, er ist wahrscheinlich größer.
}
\vspace{1cm}
\item \textbf{b)} Blockt- und Seitenabellen sind in den Speicherzuordnungstrukturen angesiedelt.\\
\item \textbf{b)} Block- und Seitenabellen sind in den Speicherzuordnungstrukturen angesiedelt.\\
\vspace{1cm}
\solution{
Nein, bei den Seitenzuordnungsstrukturen.
@ -44,7 +46,7 @@ Begründe warum folgende Aussage korrekt oder inkorret ist. Es gibt nur einen Pu
Nein, theoretisch könnten mit entsprechenden Verwaltungsoverhead verschieden große Blöcke verwendet werden.
}
\vspace{1cm}
\item \textbf{d)} Die Seitenersetzungsstrategie LFU (Least frequently used) hat der Vorteil, dass sich der Puffer schnell an neue Datenlokalitaeten anpasst.\\
\item \textbf{d)} Die Seitenersetzungsstrategie LFU (Least frequently used) hat den Vorteil, dass sich der Puffer schnell an neue Datenlokalitaeten anpasst.\\
\vspace{1cm}
\solution{
Nein, denn die Puffereffizients kann dadurch beeintraechtigt werden, dass es
@ -112,7 +114,7 @@ Seite aus dem Puffer verdraengt wird.
Nein, fuer Atomacy.
}
\vspace{1cm}
\item \textbf{o)} Bei Forward-Recovery darf kein "steal" stattfinden.\\
\item \textbf{o)} Bei Forward-Recovery darf kein 'steal' stattfinden.\\
\vspace{1cm}
\solution{
Ja, steal beudetet, dass Dinge aus dem Puffer vor Ende der Transaktion zurueckgeschrieben werden, damit haette man evt. einen Inkonsitenten Zustand auf der Platte den man nicht rueckgaengig machen kann weil man Forward-Recovery hat.
@ -122,7 +124,7 @@ Seite aus dem Puffer verdraengt wird.
\newpage
% ---------------------------- PAGEBREAK ----------------------------
\section{Aufgabe 2 Ich weiss wo deine TID wohnt}
\section*{Aufgabe 2 Ich weiss wo deine TID wohnt}
\subsection{a)}
Deine Mutter hat \textbf{Clock} als Seitenersetzungsstrategie verwendet und kapiert jetzt ihren eigenen Code nicht mehr, deswegen musst du die Seitenersetzungsstrategie jetzt unten nachbauen. Du hast 3 Plaetze in deinem Haupspeicher, die haben jeweils einen Kontrollzustand (also auch 3 insgesamt) unten ist dann noch dein Pointer bei welchem Platz du gerade bist. GoGoGo!!!\\\\
@ -173,7 +175,7 @@ unfix & Pointer auf Seite im Puffer & void & gibt Block im Puffer fuer Ersetzung
% ---------------------------- PAGEBREAK ----------------------------
\newpage
\section{Aufgabe 3 TID-Adressierung}
\section*{Aufgabe 3 TID-Adressierung}
TIDs nach Regeln aus der Vorlesung ergaenzen/eintragen und TID angeben.
Teilaufgaben sind unabhaengig. Buchstaben stehen fuer bereits vorhandene Saetze \\
@ -351,7 +353,7 @@ x & x & x & 0
% ---------------------------- PAGEBREAK ----------------------------
\newpage
\section{Aufgabe 4 Indrexsstrukturen}
\section*{Aufgabe 4 Indrexsstrukturen}
\subsubsection*{a) Erklaeren sie den Unterschied zwischen Primaer und Sekundaerorganisation im Bezug auf Datenspeicherung.}
\vspace{1cm}
\solution{Bei der Primaerorganisation werden die Daten tatsaechlich gespeichert, bei der Sekundaerorganisation werden sie nur referenziert, es kann also mehrere Sekundaerorganisationen ohne Datenredundanz geben.
@ -401,7 +403,7 @@ Weil wir jetzt schnell die Korrelanz zwischen einer FSI-Mitgliedschaft und dem g
% ---------------------------- PAGEBREAK ----------------------------
\newpage
\section{Aufgabe 5 Transaktionen}
\section*{Aufgabe 5 Transaktionen}
\subsection*{a) Was ist eine Real-World-Action im Datenbank Kontext}
\vspace{1cm}
@ -434,7 +436,7 @@ rN(x) bedeutet, Transaktion N liest Element x. wN(x) bedeutet, Transaktion N sch
\solution{ Wenn kein Zyklus im Abhaengigkeitsgraphen. }
\vspace{1cm}
\subsection*{e) Gegeben ist der folgende Ablauf im Kontext einer fiktiven Lagerverwaltung: (repraesentativ in Java-like Syntax, alle Methoden des fiktiven Datenbank Frameworks scheissen eine "Failure"-Exception.)}
\begin{lstlisting}[language=java]
\begin{lstlisting}[language=java,tabsize=4]
class Failure extends Exception;
class Gegenstand{...};
while(true}{
@ -471,14 +473,14 @@ Während der Transaktion wird auf Eingabedaten von des Operators gewartet und w
}
\vspace{1cm}
\section{Aufgabe 6 SQL und Mengen}
\section*{Aufgabe 6 SQL und Mengen}
\subsubsection*{a) Operatorengraphen zu SQL-Kot unten. (muss nicht optimiert werden)}
\begin{lstlisting}[language=SQL]
SELECT *
FROM (
SELECT X.b, X.e, Z.c
FROM R JOIN S on R.k = S.k
WHERE S.u = "¯\_(ツ)_"
WHERE S.u = "Mimimi"
UNION
SELECT T.b, T.e, T.c
FROM T
@ -494,10 +496,10 @@ PROJ( A - B , X ) = PROJ( A , X) - PROJ( B , X)
\textit{'-' steht hier fuer die Differenz zweier Mengen}
\solswitch{\vspace{3cm}}{\vspace{1cm}Nein, denn es gehen bei der Projection Informationen verloren, die spaeter fuer die Differenz der Mengen einen Unterschied machen koennten. (Eine Tabelle mit drei Attributen die auf zwei Attribute reduziert/projeziert wurde und in der nur Zeilen gleich scheinen weil das unterscheidende dritte Attribut nicht mehr sichtbar/vorhanden ist.\vspace{1cm}}
\section{Aufgabe 7 Programmschnittstelle}
\section*{Aufgabe 7 Programmschnittstelle}
\subsubsection*{a) Ist das folgende Programm anfaellig fuer SQL-Injections? Begruenden sie.}
\begin{lstlisting}[language=java]
\begin{lstlisting}[language=java,tabsize=4]
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;