Atomicidad en el contexto de bases de datos y transacciones se refiere al concepto de una operación que es indivisible . Una transacción se considera atómica si todos Sus operaciones se completan con éxito, o ninguno de ellos son. Es como una reacción química:o ocurre toda la reacción o no sucede nada.
Aquí hay dos ejemplos para ilustrar:
Ejemplo 1:Transferencia bancaria
Imagine transferir $ 100 desde su cuenta corriente a su cuenta de ahorros. Esta transacción involucra dos operaciones:
1. Débito: Deducir $ 100 de su cuenta corriente.
2. Crédito: Agregar $ 100 a su cuenta de ahorros.
Transacción atómica: Si el sistema garantiza la atomicidad, entonces ambas operaciones ocurren con éxito, o ninguna de ellas sí. Si la operación de débito se completa pero la operación de crédito falla (debido a un error del sistema, por ejemplo), el dinero no se perdería. Permanecería en su cuenta corriente.
Transacción no atómica: Si no se garantiza la atomicidad, el dinero podría desaparecer de su cuenta corriente sin alcanzar su cuenta de ahorro, lo que lleva a una inconsistencia en el sistema.
Ejemplo 2:carrito de compras en línea
Considere comprar un producto en una tienda en línea. Su transacción puede involucrar estas operaciones:
1. deducir inventario: Reduzca las acciones disponibles del artículo que compró.
2. Cargue su tarjeta: Procese el pago de su tarjeta de crédito.
3. Actualizar el estado del orden: Marque el orden como "colocado".
Transacción atómica: Si la transacción es atómica, entonces las tres operaciones ocurren con éxito, o ninguna de ellas sí. Si el inventario se deduce pero el pago de la tarjeta falla, el pedido no se realizaría y el inventario se restauraría.
Transacción no atómica: Sin atomicidad, el inventario podría deducirse, pero el pago podría no ser procesado. Esto conduciría a una inconsistencia:se le cobraría por el artículo, pero no se le enviaría.
En esencia, la atomicidad asegura que las transacciones sean confiables y consistentes. Evita la corrupción de datos y garantiza que la base de datos permanezca en un estado válido incluso frente a eventos o errores inesperados.