mirror of
https://gitlab.cs.fau.de/ik15ydit/latexandmore.git
synced 2024-12-23 08:36:06 +01:00
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:
parent
feb5fb2cda
commit
b448cf9056
@ -429,7 +429,7 @@ static char *read(char* segment_identifier, struct tid tid) {
|
||||
\hline
|
||||
4 & G\\
|
||||
\hline
|
||||
14 & A\\
|
||||
13 & A\\
|
||||
\hline
|
||||
8 & F\\
|
||||
\hline
|
||||
@ -445,17 +445,17 @@ static char *read(char* segment_identifier, struct tid tid) {
|
||||
\hline
|
||||
x & y\\
|
||||
\hline
|
||||
14 & C\\
|
||||
13 & C\\
|
||||
\hline
|
||||
3 & U\\
|
||||
2 & U\\
|
||||
\hline
|
||||
6 & Z\\
|
||||
\hline
|
||||
9 & D\\
|
||||
8 & D\\
|
||||
\hline
|
||||
11 & A\\
|
||||
4 & A\\
|
||||
\hline
|
||||
14 & B\\
|
||||
0 & B\\
|
||||
\hline
|
||||
29 & W\\
|
||||
\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
|
||||
Zwischenergebnisse der einzelnen Schritte (also das Ergebnis
|
||||
\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}\\
|
||||
|
||||
@ -480,30 +496,9 @@ static char *read(char* segment_identifier, struct tid tid) {
|
||||
\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{2. Probing}\\
|
||||
|
||||
Hashtabelle:\\
|
||||
\begin{tabularx}{5cm}{|X|X|}
|
||||
\hline
|
||||
0 & 1\\
|
||||
\hline
|
||||
\rule{0pt}{2cm} & \\
|
||||
\hline
|
||||
\end{tabularx}
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
Ergebnisrelation:\\
|
||||
\begin{tabularx}{10cm}{|X|X|X|X|}
|
||||
\hline
|
||||
@ -523,38 +518,17 @@ static char *read(char* segment_identifier, struct tid tid) {
|
||||
\rule{0pt}{2cm} & \\
|
||||
\hline
|
||||
\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}
|
||||
|
||||
\textbf{4. Probing}\\
|
||||
|
||||
Ergebnisrelation:\\
|
||||
\begin{tabularx}{10cm}{|X|X|X|X|}
|
||||
\hline
|
||||
S.x & S.y & R.x & R.y\\
|
||||
\hline
|
||||
\rule{0cm}{25mm} & & & \\
|
||||
\rule{0cm}{50mm} & & & \\
|
||||
\hline
|
||||
\end{tabularx}
|
||||
\vspace{1cm}
|
||||
|
Loading…
Reference in New Issue
Block a user