Propiedades ACID en DBMS

 

Una transacción es una única unidad lógica de trabajo que accede y posiblemente modifica el contenido de una base de datos. Las transacciones acceden a los datos mediante operaciones de lectura y escritura. 
Para mantener la consistencia en una base de datos, antes y después de la transacción, se siguen ciertas propiedades. Estas se llaman propiedades ACID

Atomicidad:

Con esto queremos decir que la transacción completa se realiza de una sola vez o no se realiza en absoluto. No hay medio camino, es decir, las transacciones no ocurren parcialmente. Cada transacción se considera como una unidad y se ejecuta hasta su finalización o no se ejecuta en absoluto. Implica las siguientes dos operaciones. 
Abortar : si se cancela una transacción, los cambios realizados en la base de datos no son visibles. 
Confirmar : si una transacción se confirma, los cambios realizados son visibles. 
La atomicidad también se conoce como la ‘regla de todo o nada’. 

 

Considere la siguiente transacción T que consta de T1 y T2 : Transferencia de 100 de la cuenta X   a la cuenta Y.

Si la transacción falla después de completar T1 pero antes de completar T2 (digamos, después de escribir (X) pero antes de escribir (Y) ), entonces el monto se dedujo de X pero no se agregó a Y. Esto da como resultado un estado de base de datos incoherente. Por lo tanto, la transacción debe ejecutarse en su totalidad para garantizar la corrección del estado de la base de datos. 

Consistencia:

Esto significa que se deben mantener las restricciones de integridad para que la base de datos sea consistente antes y después de la transacción. Se refiere a la corrección de una base de datos. En referencia al ejemplo anterior, 
se debe mantener el monto total antes y después de la transacción. 
Total antes de que ocurra T = 500 + 200 = 700
Total después de que ocurre T = 400 + 300 = 700
Por lo tanto, la base de datos es consistente . La inconsistencia ocurre en caso de que T1 se complete pero T2 falle. Como resultado, T es incompleta. 

Aislamiento:

Esta propiedad garantiza que se puedan realizar varias transacciones al mismo tiempo sin que se produzca una incoherencia en el estado de la base de datos. Las transacciones se realizan de forma independiente sin interferencias. Los cambios que ocurren en una transacción en particular no serán visibles para ninguna otra transacción hasta que ese cambio en particular en esa transacción se escriba en la memoria o se haya confirmado. Esta propiedad garantiza que la ejecución de transacciones al mismo tiempo dará como resultado un estado que es equivalente a un estado alcanzado. Estos se ejecutaron en serie en algún orden. 
Sea X = 500, Y = 500. 
Considere dos transacciones T y T”. 

Supongamos que T se ha ejecutado hasta Leer (Y) y luego comienza T» . Como resultado, se produce el intercalado de operaciones debido a que lee el valor correcto de X pero el valor incorrecto de Y y la suma calculada por 
T»: (X+Y = 50, 000+500=50, 500) 
por lo tanto, no es consistente con la suma al final de la transacción: 
T: (X+Y = 50, 000 + 450 = 50, 450)
Esto da como resultado una inconsistencia en la base de datos, debido a una pérdida de 50 unidades. Por lo tanto, las transacciones deben realizarse de forma aislada y los cambios deben ser visibles solo después de que se hayan realizado en la memoria principal. 

Durabilidad: 

Esta propiedad asegura que una vez que la transacción haya completado la ejecución, las actualizaciones y modificaciones a la base de datos se almacenen y escriban en el disco y persistan incluso si ocurre una falla del sistema. Estas actualizaciones ahora se vuelven permanentes y se almacenan en la memoria no volátil. Los efectos de la transacción, por lo tanto, nunca se pierden. 

Algunos puntos importantes:

Propiedad Responsabilidad por el mantenimiento de las propiedades.
Atomicidad Gerente de transacciones
Consistencia programador de aplicaciones
Aislamiento Administrador de control de concurrencia
Durabilidad Gestor de recuperación

Las propiedades de ACID , en su totalidad, proporcionan un mecanismo para garantizar la exactitud y coherencia de una base de datos de manera que cada transacción sea un grupo de operaciones que actúe como una sola unidad, produzca resultados coherentes, actúe de forma aislada de otras operaciones y las actualizaciones que realiza se almacenan de forma duradera. 

Este artículo es una contribución de Avneet Kaur . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. 

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *