Speicherung

This commit is contained in:
Marco Ammon 2019-02-11 20:43:18 +01:00
parent 629f8c85c0
commit 7f4d4cb5c7
2 changed files with 28 additions and 0 deletions

Binary file not shown.

View File

@ -276,4 +276,32 @@
\item \begriff{Dauerhaftigkeit} (auch nach Fehler bleiben erfolgreiche Transaktionen bestehen)
\end{itemize}
\end{itemize}
\section{Speicherung}
\begin{itemize}
\item Speicherung der Tupel in Sätzen: \begin{itemize}
\item zusammengesetzt aus Feldern mit Namen, Typ und Länge (maximal oder variabel)
\item \begriff{Metadaten} in \begriff{Systemkatalog} gespeichert
\item \begriff{Satztyp}: Menge von Sätzen gleicher Struktur (z.B. Tupel einer Relation)
\end{itemize}
\item verschiedene \begriff{Speicherungsstrukturen} in Sätzen: \begin{itemize}
\item mit \begriff{eingebetteten Längenfeldern}: Gesamtlänge, Inhalt fester Länge, zu jedem Inhalt variabler Länge vorher die Länge $\rightarrow$ satzinterne Adresse kann \wichtig{nicht} direkt aus Katalogdaten berechnet werden
\item eingebettete Längenfelder mit \begriff{Zeigern}: Gesamtlänge, Länge des festen Teils, Inhalte fester Länge, Zeiger auf Längenangabe variabler Felder, variable Felder $\rightarrow$ satzinterne Adresse kann aus Katalogdaten berechnet werden \textbf{TODO:} Grafik
\end{itemize}
\item \begriff{spaltenweises} Abspeichern mittels \begriff{C-Store}: \begin{itemize}
\item vor allem auf das Lesen optimiert
\item Änderungen durch Löschen und Einfügen
\item \begriff{Projektion}: \begin{itemize}
\item eine oder mehrere Spalten einer Tabelle (und ggf. anderer, über Fremdschlüssel erreichbare Tabellen) nach einem Attribut sortiert
\item Speicherschlüssel (\begriff{Storage Keys}, \begriff{SK}) für jedes Tupel, aus Position berechenbar
\item \begriff{Verbund-Indizes} (\begriff{Join Indices}): Seien T1 und T2 Projektionen der Tabelle T, dann ist ein Join-Index von T1 zu T2 eine Liste von Tupeln aus T2 um den jeweiligen SK aus T1 ergänzt.
\end{itemize}
\item verschiedene \begriff{Komprimierungen} abhängig von Sortierung und Anzahl der verschiedenen Werte: \begin{itemize}
\item sortiert, wenige verschiedene Werte: Tripel (Wert, Position des ersten Auftretens, Anzahl des gleichen Werts) in B-Baum
\item unsortiert, wenige verschiedene Werte: lauflängenkodierte Bitmaps pro Wert mit B-Baum zum Auffinden der richtigen Bitmap
\item sortiert, viele verschiedene Werte: Delta-Kodierung (DIffertenz zum Vorgänger) mit B-Baum als Primärorganisation
\item unsortiert, viele verschiedene Werte: unkomprimiert, bei Zeichenketten \begriff{Dictionary}
\end{itemize}
\end{itemize}
\end{itemize}
\end{document}