Hash-Verbund Aufgabenstellung anpassen

Für Herleitung der Veränderungen siehe eingefügtem Kommentar. Relation S
etwas angepasst damit es beim Join über x auch Treffer gibt.
This commit is contained in:
Luis Gerhorst 2018-02-11 17:53:43 +01:00
parent feb5fb2cda
commit b448cf9056

View File

@ -429,7 +429,7 @@ static char *read(char* segment_identifier, struct tid tid) {
\hline \hline
4 & G\\ 4 & G\\
\hline \hline
14 & A\\ 13 & A\\
\hline \hline
8 & F\\ 8 & F\\
\hline \hline
@ -445,17 +445,17 @@ static char *read(char* segment_identifier, struct tid tid) {
\hline \hline
x & y\\ x & y\\
\hline \hline
14 & C\\ 13 & C\\
\hline \hline
3 & U\\ 2 & U\\
\hline \hline
6 & Z\\ 6 & Z\\
\hline \hline
9 & D\\ 8 & D\\
\hline \hline
11 & A\\ 4 & A\\
\hline \hline
14 & B\\ 0 & B\\
\hline \hline
29 & W\\ 29 & W\\
\hline \hline
@ -466,7 +466,23 @@ static char *read(char* segment_identifier, struct tid tid) {
Mache einen Hash-Verbund Inner Join mit S.x = R.x, die Mache einen Hash-Verbund Inner Join mit S.x = R.x, die
Zwischenergebnisse der einzelnen Schritte (also das Ergebnis Zwischenergebnisse der einzelnen Schritte (also das Ergebnis
\textbf{nach} einem Schritt) muessen angegeben werden. Hashfunktion \textbf{nach} einem Schritt) muessen angegeben werden. Hashfunktion
ist $h(k) = k mod 2$.\\\hrule \vspace{1cm} ist $h(k) = k mod 2$. Ein Bucket fasst maximal 2 Tupel, verwenden
Sie keine Überlaufbuckets. Ist die Hash-Tabelle gefüllt kann die
verbleibende Relation in einem Schritt sequentiell durchlaufen
werden.\\\hrule \vspace{1cm}
% Beim Lesen: So lange Tupel aus R (der kleineren Relation) in die Hashtabelle
% eintragen bis wir deren Limit erreicht haben (aka wir bräuchten ein
% Überlaufbucket, das ist ja aber nicht erlaubt). Beim ersten Lesen kommen wir
% also bis einschließlich (13, A), stände hier eine 14 kämen wir nur bis (4, G)
% und hätten somit mehr als 2 Abschnitte.
% Beim Probing: Die komplette Relation S durchlaufen (die Frage ob das mit
% mehreren oder einem Blockzugriff geht bleibt offen). Jeden Treffer in die
% Ergebnisrelation eintragen.
% Da beim Lesen nur die Hashtabelle und beim Probing nur die Ergebnisrelation
% geändert werden kann man die andere Vorlage jeweils weglassen.
\textbf{1. Lesen}\\ \textbf{1. Lesen}\\
@ -480,30 +496,9 @@ static char *read(char* segment_identifier, struct tid tid) {
\end{tabularx} \end{tabularx}
\vspace{1cm} \vspace{1cm}
Ergebnisrelation:\\
\begin{tabularx}{10cm}{|X|X|X|X|}
\hline
S.x & S.y & R.x & R.y\\
\hline
\rule{0cm}{25mm} & & & \\
\hline
\end{tabularx}
\vspace{1cm}
\newpage \newpage
\textbf{2. Probing}\\ \textbf{2. Probing}\\
Hashtabelle:\\
\begin{tabularx}{5cm}{|X|X|}
\hline
0 & 1\\
\hline
\rule{0pt}{2cm} & \\
\hline
\end{tabularx}
\vspace{1cm}
Ergebnisrelation:\\ Ergebnisrelation:\\
\begin{tabularx}{10cm}{|X|X|X|X|} \begin{tabularx}{10cm}{|X|X|X|X|}
\hline \hline
@ -523,38 +518,17 @@ static char *read(char* segment_identifier, struct tid tid) {
\rule{0pt}{2cm} & \\ \rule{0pt}{2cm} & \\
\hline \hline
\end{tabularx} \end{tabularx}
\vspace{1cm}
Ergebnisrelation:\\
\begin{tabularx}{10cm}{|X|X|X|X|}
\hline
S.x & S.y & R.x & R.y\\
\hline
\rule{0cm}{25mm} & & & \\
\hline
\end{tabularx}
\vspace{1cm}
\newpage
\textbf{4. Probing}\\
Hashtabelle:\\
\begin{tabularx}{5cm}{|X|X|}
\hline
0 & 1\\
\hline
\rule{0pt}{2cm} & \\
\hline
\end{tabularx}
\vspace{1cm} \vspace{1cm}
\textbf{4. Probing}\\
Ergebnisrelation:\\ Ergebnisrelation:\\
\begin{tabularx}{10cm}{|X|X|X|X|} \begin{tabularx}{10cm}{|X|X|X|X|}
\hline \hline
S.x & S.y & R.x & R.y\\ S.x & S.y & R.x & R.y\\
\hline \hline
\rule{0cm}{25mm} & & & \\ \rule{0cm}{50mm} & & & \\
\hline \hline
\end{tabularx} \end{tabularx}
\vspace{1cm} \vspace{1cm}