Vejamos um exemplo:
| Tempo | Operação UM | Operação DOIS |
|---|---|---|
| 1 | Iniciar transação. | |
| 2 | Ler valor de X no banco. | |
| 3 | Sistema retorna 10. | |
| 4 | Calcular X + 5 = 15. | Iniciar transação. |
| 5 | Gravar 15 no banco. | Ler valor de X no banco. |
| 6 | Ler valor Y no banco. | Sistema retorna 15. |
| 7 | Erro de leitura. | Calcular X + 5 = 20. |
| 8 | Desfazer transação. X volta a ser 10. | Gravar 20 no banco. |
| 9 | Erro, pois o valor original de X não é mais 15, mas sim, 10. |
O exemplo acima ilustra a operação UM sobre o item X que então falha antes de terminar, de modo que o sistema deve mudar o valor de X de volta para seu valor original. Contudo, antes que ele possa fazer isso, a operação DOIS lê o valor temporário de X, que não será gravado permanentemente no banco de dados devido à falha da operação UM.
O valor do item X que foi lido pela operação DOIS é chamado de dado sujo, pois foi criado por uma transação que não foi concluída nem confirmada; portanto, a transação DOIS deve ser cancelada. Esse problema também é conhecido como problema de leitura suja.