Speicherung angefangen. Bilderordner sortiert.
2
.gitignore
vendored
@ -1,4 +1,6 @@
|
||||
*.fls
|
||||
*.lof
|
||||
*.swp*
|
||||
*.pdf
|
||||
*.aux
|
||||
*.out
|
||||
|
1
IDB.tex
@ -60,6 +60,7 @@
|
||||
|
||||
\begin{document}
|
||||
\tableofcontents
|
||||
\listoffigures
|
||||
\newpage
|
||||
\include{./Speicherung}
|
||||
\include{./Transaktionen}
|
||||
|
@ -1 +1,81 @@
|
||||
\section{Speicherung}
|
||||
\section{Speicherung von Tupeln und Relationen}
|
||||
\subsection{Ziele}
|
||||
\begin{itemize}
|
||||
\item Relationen mit Mitteln der darunter implementierten Schichten sichern
|
||||
\item Anfragen (SQL) möglichst effizient auswerten
|
||||
\end{itemize}
|
||||
\subsection{Speicherung von Tupeln in Sätzen}
|
||||
\subsubsection{Aufbau von Sätzen}
|
||||
\begin{itemize}
|
||||
\item Sätze sind aus \textbf{Feldern} zusammengesetzt (Name, Typ, Länge)
|
||||
\item \textbf{Systemkatalog}\\Informationen über Felder und Reihenfolge
|
||||
\end{itemize}
|
||||
\subsubsection{Satztyp}
|
||||
\begin{itemize}
|
||||
\item Menge von Sätzen mit gleicher Struktur $\rightarrow$ einmalige
|
||||
Beschreibung im Systemkatalog
|
||||
\item beim speichern eines Satzes wird im ein Satztyp zugeordnet
|
||||
\item Länge der Sätze zumeist variabel
|
||||
\end{itemize}
|
||||
\textbf{Annahme: Reihenfolge der Felder egal}
|
||||
|
||||
\subsubsection{Anforderungen}
|
||||
\textbf{Speicherplatzeffizienz}:
|
||||
\begin{itemize}
|
||||
\item variable Länge
|
||||
\item undefinierte Werte nicht speichern
|
||||
\item Hilfsstrukturen minimieren
|
||||
\end{itemize}
|
||||
|
||||
\textbf{direkter Zugriff auf Felder}:
|
||||
\begin{itemize}
|
||||
\item ohne vorher andere Felder lesen zu müssen
|
||||
\item direkt zur Anfangs-Byte Position innerhalb des Satzes
|
||||
\end{itemize}
|
||||
|
||||
|
||||
\textbf{Flexibilität}:
|
||||
\begin{itemize}
|
||||
\item Hinzufügen von Feldern bei allen Sätzen
|
||||
\item Löschen eines Feldes aus allen Sätzen
|
||||
\end{itemize}
|
||||
|
||||
\subsubsection{Speicherungsstruktur im Satz}
|
||||
Der Satz wird in zwei logische Teile untergliedert. Einer beinhaltet
|
||||
alle Felder fester Länge und der andere alle der variablen.
|
||||
Mit Katalogdaten und Längenangaben im Satz, lässt sich \textbf{flexibel}
|
||||
und \textbf{direkt} auf die Felder zugreifen.
|
||||
|
||||
\begin{figure}[H]
|
||||
\begin{center}
|
||||
\includegraphics[scale=1.0]{pics/satz_speicherstruktur.png}
|
||||
\caption{Variable Satz Speicherstruktur}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
|
||||
\subsection{Speicherung von Relationen}
|
||||
\subsubsection{Spaltenweise Speicherung (C-Store)}
|
||||
\begin{itemize}
|
||||
\item Auf das Lesen hin optimiert. Gut für Auswertung
|
||||
großer Datenmengen
|
||||
\item Nur Attribute lesen, die gebraucht werden
|
||||
\item kompakte Speicherung der Attributwerte
|
||||
\end{itemize}
|
||||
\textbf{Prototyp}
|
||||
\begin{itemize}
|
||||
\item speichert Sammlung von Spaltengruppen nach Attribut sortiert
|
||||
\item Gruppen von Spalten = Projektion
|
||||
\item Speicherung
|
||||
\begin{itemize}
|
||||
\item \textbf{Schreibspeicher} für schnelles Einfügen und Ändern von Tupeln
|
||||
\item \textbf{Lesespeicher} für umfangreiche Analysen
|
||||
\end{itemize}
|
||||
\item Änderung durch Löschen und Einfügen
|
||||
\end{itemize}
|
||||
\textbf{Projektionen}
|
||||
\begin{itemize}
|
||||
\item Die Projektionen besitzen ein oder mehrere Attribute aus einer logischen
|
||||
Tablle (ggf durch Fremdschlüssel auch Attribute aus anderen Tabellen)
|
||||
\item Duplikate bleiben erhalten
|
||||
\item Als Sortierschlüssel wird eines der Attribute hergenohmen
|
||||
\end{itemize}
|
||||
|
@ -35,7 +35,7 @@ Bedingungen sind erfüllt (Assertions).
|
||||
\subsubsection{Zustandsdiagramm TA}
|
||||
\begin{figure}[H]
|
||||
\begin{center}
|
||||
\includegraphics[scale=0.6]{TA_status.png}
|
||||
\includegraphics[scale=0.6]{pics/TA_status.png}
|
||||
\caption{Transaktionszustände}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
@ -91,7 +91,7 @@ Warum nicht Tupel:
|
||||
Deshalb wird \textit{hierarchische Schachtelung} der Datenobjekte:\\
|
||||
\begin{figure}[H]
|
||||
\begin{center}
|
||||
\includegraphics[scale=0.8]{sperrgranulat.png}
|
||||
\includegraphics[scale=0.8]{pics/sperrgranulat.png}
|
||||
\caption{Sperrgranulate}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
@ -100,7 +100,7 @@ Für jedes Objekt kann man nun einen Sperrmodus vergeben.
|
||||
Andere TA können daran erkennen, ob sie ihre Aktion ausführen dürfen.
|
||||
\begin{figure}[H]
|
||||
\begin{center}
|
||||
\includegraphics[scale=0.6]{komp_matrix.png}
|
||||
\includegraphics[scale=0.6]{pics/komp_matrix.png}
|
||||
\caption{Kompatibilitätsmatrix}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
@ -240,7 +240,7 @@ benötigt wird, um nach einem Systemausfall den jüngsten konsisten Zustand
|
||||
wiederherzustellen.
|
||||
\begin{figure}[H]
|
||||
\begin{center}
|
||||
\includegraphics[scale=0.6]{protokoll2.png}
|
||||
\includegraphics[scale=0.6]{pics/protokoll2.png}
|
||||
\caption{Protokollinformationen}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
@ -283,7 +283,7 @@ wiederherzustellen.
|
||||
Verbesserung zu Backward-/Forward Recovery.
|
||||
\begin{figure}[H]
|
||||
\begin{center}
|
||||
\includegraphics[scale=0.8]{protokoll.png}
|
||||
\includegraphics[scale=0.8]{pics/protokoll.png}
|
||||
\caption{Physische Protokollierung}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
BIN
pics/satz_speicherstruktur.png
Normal file
After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |