\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}