\begin{frame}
\frametitle{Concurrency Anomalies}
\begin{goal}{Lost Update Anomaly}
The effects of one transaction are lost due to an uncontrolled overwrite performed by a second transaction.
\end{goal}
\medskip
\begin{goal}{Inconsistent Read}
A transaction reads the partial result of another transaction.
\end{goal}
\medskip
\begin{goal}{Dirty Read}
A transaction reads changes made by another transaction
that is not yet committed (and might get aborted \& rolled back).
\end{goal}
\medskip
\begin{goal}{Unrepeatable Read}
A transaction reads a value which is afterwards changed by another transaction
(before the former transaction is finished).
So the first transaction operates on stale data.
\end{goal}
\medskip
\end{frame}