Synchronisation
This commit is contained in:
parent
7f97bbc520
commit
613cb7da22
18
fig/zustandsuebergangsdiagramm.tex
Normal file
18
fig/zustandsuebergangsdiagramm.tex
Normal file
@ -0,0 +1,18 @@
|
||||
\begin{tikzpicture}[shorten >=1pt,node distance=3cm,on grid,auto]
|
||||
|
||||
\node[rectangle state,initial] (q_0) {potentiell};
|
||||
\node[rectangle state] (q_1) [right=3.8cm of q_0] {aktiv};
|
||||
\node[rectangle state] (q_2) [below=1.5cm of q_1] {abgeschlossen};
|
||||
\node[rectangle state, accepting] (q_3) [right=5cm of q_2] {persistent};
|
||||
\node[rectangle state](q_4) [above right=1.5cm and 2.5cm of q_1] {gescheitert};
|
||||
\node[rectangle state](q_5) [right=5cm of q_1] {wiederholbar};
|
||||
\node[rectangle state, accepting](q_6) [right=5cm of q_4] {aufgegeben};
|
||||
\path[->]
|
||||
(q_0) edge node {inkarnieren} (q_1)
|
||||
(q_1) edge node {beenden} (q_2)
|
||||
(q_2) edge node {festschreiben} (q_3)
|
||||
(q_1) edge node {abbrechen} (q_4)
|
||||
(q_4) edge node {zurücksetzen} (q_6)
|
||||
(q_4) edge node {zurücksetzen} (q_5)
|
||||
(q_5) edge node {neustarten} (q_1);
|
||||
\end{tikzpicture}
|
Binary file not shown.
@ -20,7 +20,11 @@
|
||||
\usepackage{pdflscape}
|
||||
\usepackage{tikz}
|
||||
\usetikzlibrary{positioning}
|
||||
\usetikzlibrary{arrows.meta}
|
||||
\usetikzlibrary{arrows}
|
||||
\usetikzlibrary{automata}
|
||||
\usetikzlibrary{shapes}
|
||||
\usetikzlibrary{calc}
|
||||
\usetikzlibrary{decorations.markings}
|
||||
\usepackage{datetime}
|
||||
\usepackage{xcolor}
|
||||
|
||||
@ -51,6 +55,8 @@
|
||||
\setlist[enumerate,1]{label={\alph*)}}
|
||||
\setlist[enumerate,2]{label={\roman*)}}
|
||||
|
||||
\tikzset{rectangle state/.style={draw,rectangle}}
|
||||
|
||||
\title{Zusammenfassung IDB}
|
||||
\author{Marco Ammon}
|
||||
\date{\today}
|
||||
@ -275,6 +281,36 @@
|
||||
\item \begriff{Isolation} (gegenüber anderen Zugriffen auf DB)
|
||||
\item \begriff{Dauerhaftigkeit} (auch nach Fehler bleiben erfolgreiche Transaktionen bestehen)
|
||||
\end{itemize}
|
||||
\item \enquote{Lebenszyklus} einer Transaktion\\
|
||||
\input{fig/zustandsuebergangsdiagramm.tex}
|
||||
\item \begriff{Anomalien} im \begriff{Mehrbenutzerbetrieb}: \begin{itemize}
|
||||
\item \begriff{dirty read}: Lesen von nicht freigegeben Änderungen: $w_1[x], r_2[x]$, erst danach Commit / Rollback
|
||||
\item \begriff{dirty write}: Überschreiben von nicht freigegebenen Änderungen: $w_1[x], w_2[x]$, erst danach Commit / Rollback
|
||||
\item \begriff{non-repeatable read}: Änderung nachdem gelesen wurde: $r_1[x], w_2[x]$, erst danach Commit / Rollback
|
||||
\item \begriff{Phantom-Problem}: Ändern/Anlegen eines Tupels, das gelesenes Prädikat $P$ erfüllt: $r_1[P], w_1[y\in P]$, erst danach Commit/Rollback
|
||||
\end{itemize}
|
||||
\item \begriff{Serialisierbarkeitstheorie}: \begin{itemize}
|
||||
\item Ablauf ist \begriff{serialisierbar}, wenn es einen \begriff{äquivalenten} \wichtig{seriellen} Ablauf seiner Transaktionen gibt
|
||||
\item Äquivalenz von Abläufen $G$, $H$, wenn für jedes Datenobjekt $A$ gilt ($<$ $\widehat{=}$ \enquote{vor}):
|
||||
\begin{align*}
|
||||
r_i[A] <_H w_j[A] &\Leftrightarrow r_i[A] <_G w_j[A]\\
|
||||
w_i[A] <_H r_j[A] &\Leftrightarrow w_i[A] <_G r_j[A]\\
|
||||
w_i[A] <_H w_j[A] &\Leftrightarrow w_i[A] <_G w_j[A]
|
||||
\end{align*}
|
||||
\item \begriff{Abhängigkeitsgraph} hat \wichtig{keine} Zyklen $\Rightarrow$ Ablauf serialisierbar
|
||||
\end{itemize}
|
||||
\item \begriff{Sperrverfahren} mittels \begriff{Sperrtabelle}: \begin{itemize}
|
||||
\item Sperrung muss \wichtig{vor} Zugriff erfolgen
|
||||
\item Transaktionen fordern Sperre nicht erneut an
|
||||
\item Sperren müssen beachtet werden
|
||||
\item erst am Ende einer Transaktion dürfen Sperren freigegeben werden
|
||||
\item \begriff{X-Sperre}: exklusiv, für Änderungen notwendig
|
||||
\item \begriff{S-Sperre}: geteilt, für Lesen notwendig
|
||||
\item \begriff{IX-Sperre}: exklusiv, zeigt Sperren auf feingranularerer Ebene an
|
||||
\item \begriff{IS-Sperre}: geteilt, zeigt Sperren auf feingranularerer Ebene an
|
||||
\item \begriff{SIX-Sperre}: S + IX, wenn alle Tupel gelesen, aber nur einige geändert werden
|
||||
\item \begriff{Top-Down}-Erwerb, \begriff{Bottom-Up}-Freigabe der Sperren
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
|
||||
\section{Speicherung}
|
||||
|
Loading…
Reference in New Issue
Block a user