From e0d1b3d6500c8a1ee4c3b95bca5d5568548beeba Mon Sep 17 00:00:00 2001 From: Christian Bay Date: Thu, 13 Feb 2014 13:43:22 +0100 Subject: [PATCH] Saetze fortgesetzt. Hashing nur sehr kurz --- Saetze.tex | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/Saetze.tex b/Saetze.tex index fb0885d..e5c382c 100644 --- a/Saetze.tex +++ b/Saetze.tex @@ -5,6 +5,9 @@ Sätze abstrahieren von Blöcken. Blöcken sind Hardware spezifisch. Sie haben unterschiedliche Längen und die Aufgabe von Einheiten von Platte und HS zu transportieren. Daher hat man eine anwendungspezifische Einheit eingeführt, die Daten zusammenfasst.\\ +\subsection{Satzadresse} +Eine Satzadresse ist ein Bezeichner unter der man einen einzelnen Satz wiederfinden kann. Sie wird als stabil bezeichnet, wenn sich beim +verschieben des Satzes die Adresse nicht ändert. $\rightarrow$ Neue Schicht über Blöcke \subsection{Wechselpuffertechnik} Optimierungsmöglichkeit bei sequenziellen Dateien. @@ -14,3 +17,45 @@ Anwendung beim \item Lesen: während Sätze in Puffer 1 gelesen werden \textbf{gleichzeitig} nächsten Block von Platte in Puffer 2 lesen \item Schreiben: wenn Puffer 1 voll, \textbf{asynchron} auf Platte schreiben und gleichzeitig Puffer 2 zur Aufnahme weiterer Sätze verwenden \end{itemize} +\subsection{Satzzugriff über Schlüsselwerte} +\subsection{Normales Hashing} +Man möchte nun Sätze und deren Inhalt nicht nur über +die Satzadresse wiederfinden, sondern auch über \textbf{inhaltliche Kriterien}. +\textbf{Schlüssel} definieren ein oder mehrere Felder eines Satzes, über +das man den Satz wiederfinden kann. + +Lösung dafür ist \textbf{Hashing} der Sätze nach Schlüssel. + +Kollisionen verhindern: +\begin{itemize} + \item Open Addressing (ausweichen auf Nachbar Buckets) + \begin{itemize} + \item $+$ kein zusätzlicher Speicherplatz erforderlich + \item $-$ beim Suchen findet man im Bucket auch Überläufer + \item $-$ beim löschen Überläufer zurückholen + \item $-$ in Nachbarbuckets werden ggf weitere Überläufe erzeugt + \end{itemize} + \item Overflow Buckets + \begin{itemize} + \item Anlegen spezieller Überlauf Buckets für jeden Bucket + \begin{itemize} + \item $-$ zusätzlicher Speicherplatz erforderlich + \item $+$ keine Mischung von sätzen + \item $+$ keine Beeinträchtigung der Nachbarbuckets + \end{itemize} + \end{itemize} +\end{itemize} +\subsubsection{Bewertung} +\begin{itemize} + \item sehr schneller Zugriff über Schlüssel (1 bis 2 Blockzugriffe) + \item gestreute Speicherung kann nur nach \textbf{einem} Schlüssel erfolgen + \item Speicherplatz muss um voraus belegt werden +\end{itemize} +\subsection{Virtuelles Hashing} +Vorteile vom virtuellen Hashing ggü. normalen Hashing:\\ +Das normale Hashing ist nicht erweiterbar, d.h. man muss den gesamten +Speicher im voraus belegen. Dadurch kommt man in Platznot oder verschwendet zuviel. +Beim linearen Hashing versucht man durch kontinuierliche Reorganisation +Überlaufprobleme zu vermeiden. + +Beschreibung von Dateizustand: