Para comprender la atomicidad y los alcances atómicos, considere la siguiente secuencia de operaciones no atómicas para modificar el saldo bancario de un usuario:
1. Leer el saldo del banco.
2. Reste el monto de la transacción del saldo.
3. Escriba el saldo al banco.
Para que estas operaciones tengan éxito, la base de datos debe estar bloqueada entre la lectura y la escritura, porque de lo contrario otra transacción podría escribir en la base de datos entre estas dos operaciones. Además, si algo sale mal durante la transacción (por ejemplo, la base de datos se desconecta durante la operación de escritura), la operación debe fallar por completo y la base de datos debe restaurarse al estado en el que se encontraba antes de que comenzara la transacción.
Con atomicidad, la serie de operaciones se comporta como una sola operación o falla por completo. Es decir, el código para realizar una operación determinada está incluido dentro de un *alcance atómico*, y si alguna operación en la secuencia falla, toda la transacción se revierte, como si ninguna de las operaciones en la secuencia hubiera ocurrido nunca.
Un alcance atómico garantiza:
1. Si ninguna operación en el alcance falla, se realizan todas las operaciones;
2. Si alguna operación en el alcance falla, ninguna de las operaciones ocurre; y
3. Si alguna operación comienza a fallar, cualquier operación que ya haya ocurrido se revierte inmediatamente, restaurando el sistema a su estado antes de que comenzara cualquiera de las operaciones.