Speicherung angefangen. Bilderordner sortiert.
2
.gitignore
vendored
@ -1,4 +1,6 @@
|
|||||||
*.fls
|
*.fls
|
||||||
|
*.lof
|
||||||
|
*.swp*
|
||||||
*.pdf
|
*.pdf
|
||||||
*.aux
|
*.aux
|
||||||
*.out
|
*.out
|
||||||
|
1
IDB.tex
@ -60,6 +60,7 @@
|
|||||||
|
|
||||||
\begin{document}
|
\begin{document}
|
||||||
\tableofcontents
|
\tableofcontents
|
||||||
|
\listoffigures
|
||||||
\newpage
|
\newpage
|
||||||
\include{./Speicherung}
|
\include{./Speicherung}
|
||||||
\include{./Transaktionen}
|
\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}
|
\subsubsection{Zustandsdiagramm TA}
|
||||||
\begin{figure}[H]
|
\begin{figure}[H]
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\includegraphics[scale=0.6]{TA_status.png}
|
\includegraphics[scale=0.6]{pics/TA_status.png}
|
||||||
\caption{Transaktionszustände}
|
\caption{Transaktionszustände}
|
||||||
\end{center}
|
\end{center}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
@ -91,7 +91,7 @@ Warum nicht Tupel:
|
|||||||
Deshalb wird \textit{hierarchische Schachtelung} der Datenobjekte:\\
|
Deshalb wird \textit{hierarchische Schachtelung} der Datenobjekte:\\
|
||||||
\begin{figure}[H]
|
\begin{figure}[H]
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\includegraphics[scale=0.8]{sperrgranulat.png}
|
\includegraphics[scale=0.8]{pics/sperrgranulat.png}
|
||||||
\caption{Sperrgranulate}
|
\caption{Sperrgranulate}
|
||||||
\end{center}
|
\end{center}
|
||||||
\end{figure}
|
\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.
|
Andere TA können daran erkennen, ob sie ihre Aktion ausführen dürfen.
|
||||||
\begin{figure}[H]
|
\begin{figure}[H]
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\includegraphics[scale=0.6]{komp_matrix.png}
|
\includegraphics[scale=0.6]{pics/komp_matrix.png}
|
||||||
\caption{Kompatibilitätsmatrix}
|
\caption{Kompatibilitätsmatrix}
|
||||||
\end{center}
|
\end{center}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
@ -240,7 +240,7 @@ benötigt wird, um nach einem Systemausfall den jüngsten konsisten Zustand
|
|||||||
wiederherzustellen.
|
wiederherzustellen.
|
||||||
\begin{figure}[H]
|
\begin{figure}[H]
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\includegraphics[scale=0.6]{protokoll2.png}
|
\includegraphics[scale=0.6]{pics/protokoll2.png}
|
||||||
\caption{Protokollinformationen}
|
\caption{Protokollinformationen}
|
||||||
\end{center}
|
\end{center}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
@ -283,7 +283,7 @@ wiederherzustellen.
|
|||||||
Verbesserung zu Backward-/Forward Recovery.
|
Verbesserung zu Backward-/Forward Recovery.
|
||||||
\begin{figure}[H]
|
\begin{figure}[H]
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\includegraphics[scale=0.8]{protokoll.png}
|
\includegraphics[scale=0.8]{pics/protokoll.png}
|
||||||
\caption{Physische Protokollierung}
|
\caption{Physische Protokollierung}
|
||||||
\end{center}
|
\end{center}
|
||||||
\end{figure}
|
\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 |