propiedades ácidas
1. Atomicidad: Todas las operaciones de una transacción se completarán o no y no finalizarán en ninguna etapa intermedia.
Si se produce un error durante la ejecución de la transacción, se restaurará (Rollback) al estado anterior al inicio de la transacción, como si la transacción nunca se hubiera ejecutado.
2. Consistencia: La integridad de la base de datos no se destruye antes de que comience la transacción y después de que finalice. Esto significa que los datos escritos deben cumplir plenamente con todas las reglas preestablecidas, incluida la precisión y la concatenación de los datos, y que la base de datos posterior puede completar espontáneamente el trabajo predeterminado.
3. Aislamiento: la base de datos permite que múltiples transacciones simultáneas lean, escriban y modifiquen sus datos al mismo tiempo. El aislamiento puede evitar la corrupción de datos debido a la ejecución cruzada cuando se ejecutan varias transacciones simultáneamente.
El aislamiento de transacciones se divide en diferentes niveles, que incluyen lectura no confirmada, lectura confirmada, lectura repetible y serializable.
4. Durabilidad: Una vez completada la transacción, la modificación de los datos es permanente y no se perderá incluso si el sistema falla.
Implementación
El procesamiento de una transacción generalmente requiere una serie de operaciones que son propensas a fallar por diversas razones. Por ejemplo, es posible que al sistema no le quede espacio en su unidad de disco o que haya agotado el tiempo de CPU asignado.
Existen dos familias populares de tecnologías: registro de escritura anticipada y paginación en la sombra. En ambos casos, se deben adquirir bloqueos en toda la información que se actualizará y en el nivel de aislamiento (y posiblemente en todos los datos que se puedan leer). En el registro de escritura anticipada, la durabilidad se garantiza copiando los datos originales (sin cambios) en el registro antes de realizar cambios en la base de datos.
Esto permite que la base de datos vuelva a un estado consistente en caso de falla. En la sombra, las actualizaciones se aplican a una copia parcial de la base de datos y la nueva copia se activa cuando se confirma la transacción.