\begin{frame}
\frametitle{Concurrent Access: Inconsistent Read}
Reconsider the \emph{transfer from checking to saving account}:
\begin{exampleblock}{}
\begin{tabular}{l|l}
\emph{Transaction 1} & \emph{Transaction 2}\\
\begin{code}{.49\textwidth}{}
\footnotesize
\nr{1}\sql{update Accounts}\\
\nr{2}\sql{set\ \ \ \ balance = balance - 500}\\
\nr{3}\sql{where\ \ customer = 1904}\\
\nr{4}\sql{\ \ \ and\ account\_type = \textquotesingle{}Checking\textquotesingle{}}
\end{code} \\[-1ex]
&
\begin{code}{.42\textwidth}{}
\footnotesize
\nr{1}\sql{select sum(balance)}\\
\nr{2}\sql{from\ \ \ Accounts}\\
\nr{3}\sql{where\ \ customer = 1904}
\end{code} \\[-1ex]
\begin{code}{.49\textwidth}{}
\footnotesize
\nr{5}\sql{update Accounts}\\
\nr{6}\sql{set\ \ \ \ balance = balance + 500}\\
\nr{7}\sql{where\ \ customer = 1904}\\
\nr{8}\sql{\ \ \ and account\_type = \textquotesingle{}Saving\textquotesingle{}}
\end{code}
\end{tabular}
\end{exampleblock}
\pause
\begin{alertblock}{}
Transaction $2$ sees a temporary, \emph{inconsistent database state}.
\end{alertblock}
\pause
\begin{goal}{}
This is known as \emph{inconsistent read anomaly}.
\end{goal}
\end{frame}