\begin{frame}
\frametitle{Checking Conflict-Serializability}
\begin{goal}{}
Given a schedule we can create a \emph{precedence graph}:
\begin{itemize}
\item The graph has a node for each transaction.
\item There is an edge from $T_1$ to $T_2$ if there is a conflicting
action between $T_1$ and $T_2$ in which $T_1$ occurs first.
\end{itemize}
\end{goal}
\begin{exampleblock}{}
{\def\scheduleWidth{1cm}
\begin{tcenter}
\begin{tikzpicture}[node distance=15mm]
\schedule{}{2}{1wV|2rV|1wV}
\mpause[1]{
\node (t1) at (6.5cm,-\scheduleHeight) {$T_1$};
\node (t2) [right of=t1] {$T_2$};
}
\mpause{
\draw [very thick,->] (t1) to[bend left=30] (t2);
\draw [very thick,->] (t2) to[bend left=30] (t1);
}
\begin{scope}[yshift=-1.5cm]
\schedule{}{2}{1rV|2rV|1wV}
\mpause{
\node (t1) at (6.5cm,-\scheduleHeight) {$T_1$};
\node (t2) [right of=t1] {$T_2$};
}
\mpause{
\draw [very thick,<-] (t1) -- (t2);
}
\end{scope}
\begin{scope}[yshift=-3cm]
\schedule{}{3}{2rV|1wY|3wV|2rY|2wZ}
\mpause{
\node (t1) at (6.5cm,-\scheduleHeight) {$T_1$};
\node (t3) [below right of=t1] {$T_3$};
\node (t2) [above right of=t3] {$T_2$};
}
\mpause{
\draw [very thick,->] (t1) -- (t2);
\draw [very thick,->] (t2) -- (t3);
}
\end{scope}
\end{tikzpicture}
\end{tcenter}
}
\end{exampleblock}
\end{frame}