20/212
\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}