Las transacciones son operaciones fundamentales que nos permiten modificar y recuperar datos. Sin embargo, para garantizar la integridad de una base de datos, es importante que estas transacciones se ejecuten de manera que se mantenga la coherencia, la corrección y la confiabilidad incluso en caso de fallas o errores. Aquí es donde entran en juego las propiedades ACID.
ACID significa Aislamiento y Durabilidad de Consistencia de Atomicidad.
Propiedades del ÁCIDO:
Hay cuatro propiedades del ácido
1. Atomicidad
Atomicidad significa que una transacción es de todo o nada, ya sea que todas sus operaciones tengan éxito o no se aplique ninguna. Si alguna parte falla, toda la transacción se revierte para mantener la coherencia de la base de datos.
- Comprometerse : Si la transacción es exitosa los cambios se aplican permanentemente.
- Abortar/Revertir : Si la transacción falla, se descartan todos los cambios realizados durante la transacción.
Ejemplo : Considere la siguiente transacción t consistente en T1 y T2 : Transferencia de 0 desde cuenta incógnita a la cuenta Y .
AtomicidadSi la transacción falla después de completar T1 pero antes de completar T2, la base de datos quedaría en un estado inconsistente. Con Atomicity, si alguna parte de la transacción falla, todo el proceso se revierte a su estado original y no se realizan cambios parciales.
La coherencia en las transacciones significa que la base de datos debe permanecer en un estado válido antes y después de una transacción.
declaración del caso verilog
- Un estado válido sigue todas las reglas, restricciones y relaciones definidas (como claves primarias, claves externas, etc.).
- Si una transacción viola cualquiera de estas reglas, se revierte para evitar datos corruptos o no válidos.
- Si una transacción deduce dinero de una cuenta pero no lo agrega a otra (en una transferencia), viola la coherencia.
Ejemplo : Supongamos que la suma de todos los saldos de un sistema bancario siempre debe ser constante. Antes de una transferencia, el saldo total es 0. Después de la transacción, el saldo total debe permanecer 0. Si la transacción falla en el medio (como actualizar una cuenta pero no la otra), el sistema debe mantener su coherencia revertiendo la transacción.
Total antes de que ocurra T = 500 + 200 = 700 .
Total después de que ocurre T = 400 + 300 = 700 .
Consistencia3. Aislamiento
El aislamiento garantiza que las transacciones se ejecuten de forma independiente sin afectarse entre sí. Los cambios realizados por una transacción no son visibles para otras hasta que se confirman.
Garantiza que el resultado de las transacciones simultáneas sea el mismo que si se ejecutaran una tras otra, evitando problemas como:
- Lecturas sucias: leyendo datos no confirmados
- Lecturas no repetibles: cambios de datos entre dos lecturas
- Fantasma lee: aparecen nuevas filas durante una transacción
Ejemplo : Considere dos transacciones T y T''.
- X = 500 Y = 500
AislamientoExplicación:
- T quiere transferir de X a Y.
- T lee Y (valor: 500) se deduce de X (nuevo X = 450) y se suma a Y (nuevo Y = 550).
2. Transacción T'':
- T' ' inicia y lee X (500) e Y (500).
- Calcula la suma: 500 + 500 = 1000.
- Mientras tanto, los valores de X e Y cambian a 450 y 550 respectivamente.
- Entonces la suma correcta debería ser 450 + 550 = 1000.
- El aislamiento garantiza que T'' no lea valores obsoletos mientras otra transacción (T) todavía está en curso.
- Las transacciones deben ser independientes y T'' debe acceder a los valores finales solo después de que T se comprometa.
- Esto evita resultados inconsistentes como la suma incorrecta calculada por T''.
4. Durabilidad:
La durabilidad garantiza que una vez confirmada una transacción, sus cambios se guarden permanentemente incluso si el sistema falla. Los datos se almacenan en una memoria no volátil para que la base de datos pueda recuperarse hasta su último estado comprometido sin perder datos.
Ejemplo : Después de transferir dinero exitosamente de la Cuenta A a la Cuenta B, los cambios se almacenan en el disco. Incluso si hay un fallo inmediatamente después de la confirmación, los detalles de la transferencia seguirán intactos cuando el sistema se recupere, lo que garantiza su durabilidad.
Cómo las propiedades ACID impactan el diseño y la operación del DBMS
El Las propiedades ACID en su totalidad proporcionan un mecanismo para garantizar la corrección y coherencia de una base de datos de manera que cada transacción sea un grupo de operaciones que actúa como una sola unidad, produce resultados consistentes, actúa de forma aislada de otras operaciones y las actualizaciones que realiza se almacenan de forma duradera.
ACID properties safeguard the data integrity of a DBMS by ensuring that transactions either complete successfully or leave no trace if interrupted. Evitan que las actualizaciones parciales dañen los datos y garantizan que la base de datos realice transiciones solo entre estados válidos.
powershell vs bash
2. Control de concurrencia
Las propiedades ACID proporcionan un marco sólido para gestionar transacciones simultáneas. El aislamiento garantiza que las transacciones no interfieran entre sí, evitando anomalías en los datos, como actualizaciones perdidas, inconsistencia temporal y datos no confirmados.
3. Recuperación y tolerancia a fallos
La durabilidad garantiza que incluso si un sistema falla, la base de datos pueda recuperarse a un estado consistente. Gracias a las propiedades de Atomicidad y Durabilidad, si una transacción falla a mitad de camino, la base de datos permanece en un estado consistente.
| Propiedad | Responsabilidad por el mantenimiento de las propiedades. |
|---|---|
| Atomicidad | Gerente de transacciones |
| Consistencia | programador de aplicaciones |
| Aislamiento | Administrador de control de concurrencia |
| Durabilidad | Recuperación |
Casos de uso críticos de ACID en bases de datos
En las aplicaciones modernas, garantizar la confiabilidad y coherencia de los datos es crucial. Las propiedades ACID son fundamentales en sectores como:
- Bancario : Las transacciones que involucran transferencias de dinero, depósitos o retiros deben mantener una estricta coherencia y durabilidad para evitar errores y fraudes.
- Comercio electrónico : Garantizar que los recuentos de inventario, los pedidos y los detalles de los clientes se manejen de manera correcta y consistente incluso durante tiempos de mucho tráfico requiere el cumplimiento de ACID.
- Cuidado de la salud : Los resultados de las pruebas y las prescripciones de los registros de pacientes deben cumplir con estrictos estándares de coherencia, integridad y seguridad.