Gestión de transacciones en DBMS: ¿Qué son las propiedades ACID?
¿Qué es una transacción de base de datos?
A Transacción de base de datos es una unidad lógica de procesamiento en un DBMS que implica una o más operaciones de acceso a la base de datos. En pocas palabras, las transacciones de la base de datos representan eventos del mundo real de cualquier empresa.
Todos los tipos de operaciones de acceso a bases de datos que se llevan a cabo entre las declaraciones de transacción inicial y final se consideran una única transacción lógica en el DBMS. Durante la transacción, la base de datos es inconsistente. Solo una vez que se confirma la base de datos, el estado cambia de un estado consistente a otro.

Datos sobre las transacciones de bases de datos
- Una transacción es una unidad de programa cuya ejecución puede cambiar o no el contenido de una base de datos.
- El concepto de transacción en DBMS se ejecuta como una sola unidad.
- Si las operaciones de la base de datos no actualizan la base de datos sino que solo recuperan datos, este tipo de transacción se denomina transacción de solo lectura.
- Una transacción exitosa puede cambiar la base de datos de un ESTADO CONSISTENTE a otro
- Las transacciones del DBMS deben ser atómicas, consistentes, aisladas y duraderas
- Si la base de datos estuviera en un estado inconsistente antes de una transacción, permanecería en ese estado después de la transacción.
¿Por qué necesita simultaneidad en las transacciones?
Una base de datos es un recurso compartido al que se accede. Es utilizado por muchos usuarios y procesos simultáneamente. Por ejemplo, el sistema bancario, los sistemas de reservas ferroviarias y aéreas, el seguimiento del mercado de valores, el inventario de los supermercados y las cajas registradoras, etc.
No gestionar el acceso simultáneo puede crear problemas como:
- Fallos de hardware y caídas del sistema.
- Ejecución simultánea de la misma transacción, punto muertoo rendimiento lento
Estados de transacciones
Los distintos estados de un concepto de transacción en DBMS se enumeran a continuación:
Estado | Tipos de transacciones |
---|---|
Estado activo | Una transacción entra en un estado activo cuando comienza el proceso de ejecución. Durante este estado se pueden realizar operaciones de lectura o escritura. |
Parcialmente comprometido | Una transacción pasa al estado parcialmente comprometida después del final de una transacción. |
Estado comprometido | Cuando la transacción se confirma en el estado, ya ha completado su ejecución con éxito. Además, todos sus cambios se registran en la base de datos de forma permanente. |
Estado fallido | Una transacción se considera fallida cuando cualquiera de las comprobaciones falla o si la transacción se cancela mientras está en estado activo. |
Estado terminado | El estado de la transacción alcanza el estado de terminación cuando ciertas transacciones que salen del sistema no se pueden reiniciar. |
Estudiemos un diagrama de transición de estado que resalta cómo se mueve una transacción entre estos distintos estados.
- Una vez que una transacción indica ejecución, se vuelve activa. Puede emitir operaciones de LECTURA o ESCRITURA.
- Una vez que se completan las operaciones de LECTURA y ESCRITURA, las transacciones pasan a un estado parcialmente comprometido.
- A continuación, algunos protocolos de recuperación deben garantizar que una falla del sistema no resulte en la imposibilidad de registrar cambios en la transacción de forma permanente. Si esta verificación es exitosa, la transacción se confirma y entra en el estado comprometido.
- Si la verificación falla, la transacción pasa al estado Fallido.
- Si la transacción se cancela mientras está en estado activo, pasa al estado fallido. La transacción debe revertirse para deshacer el efecto de sus operaciones de escritura en la base de datos.
- El estado terminado se refiere a la transacción que sale del sistema.
¿Qué son las propiedades del ÁCIDO?
Propiedades del ÁCIDO se utilizan para mantener la integridad de la base de datos durante el procesamiento de transacciones. ACID en DBMS significa Atomicidad Ccoherencia Isoledad, y Durabilidad.
- Atomciudad: Una transacción es una única unidad de operación. O lo ejecuta por completo o no lo ejecuta en absoluto. No puede haber ejecución parcial.
- Consistencia: Una vez que se ejecuta la transacción, debería pasar de un estado consistente a otro.
- Aislamiento: La transacción debe ejecutarse de forma aislada de otras transacciones (sin bloqueos). Durante la ejecución simultánea de transacciones, los resultados intermedios de transacciones ejecutadas simultáneamente no deben ponerse a disposición de las demás. (Nivel 0,1,2,3, XNUMX, XNUMX, XNUMX)
- Durabilidad:· Después de completar exitosamente una transacción, los cambios en la base de datos deberían persistir. Incluso en caso de fallos del sistema.
Propiedad ACID en DBMS con ejemplo
A continuación se muestra un ejemplo de propiedad ACID en DBMS:
Transaction 1: Begin X=X+50, Y = Y-50 END Transaction 2: Begin X=1.1*X, Y=1.1*Y END
La transacción 1 consiste en transferir $50 de la cuenta X a la cuenta Y.
La transacción 2 consiste en acreditar a cada cuenta un pago de interés del 10%.
Si ambas transacciones se envían juntas, no hay garantía de que la Transacción 1 se ejecute antes que la Transacción 2 o viceversa. Independientemente del orden, el resultado debe ser como si las transacciones se realizaran en serie, una tras otra.
Tipos de transacciones
Basado en áreas de aplicación
- No distribuido versus distribuido
- Transacciones compensatorias
- Calendario de transacciones
- En línea frente a lotes
Basado en acciones
- Dos pasos
- Restringido
- Modelo de acción
Basado en Estructura
- Transacciones planas o simples: Consiste en una secuencia de operaciones primitivas ejecutadas entre una operación de inicio y una de finalización.
- Transacciones anidadas: una transacción que contiene otras transacciones.
- Flujo de trabajo
¿Qué es un cronograma?
Un cronograma es un proceso que crea un único grupo de múltiples transacciones paralelas y las ejecuta una por una. Debe preservar el orden en que aparecen las instrucciones en cada transacción. Si se ejecutan dos transacciones al mismo tiempo, el resultado de una transacción puede afectar la salida de la otra.
Ejemplo
Initial Product Quantity is 10 Transaction 1: Update Product Quantity to 50 Transaction 2: Read Product Quantity
Si la Transacción 2 se ejecuta antes que la Transacción 1, se leerá información desactualizada sobre la cantidad del producto. Por lo tanto, se requieren horarios.
La ejecución paralela en una base de datos es inevitable, pero se permite cuando existe una relación de equivalencia entre las transacciones que se ejecutan simultáneamente. Esta equivalencia es de tres tipos.
EQUIVALENCIA DE RESULTADO:
Si dos programaciones muestran el mismo resultado después de la ejecución, se denomina programa de resultados equivalentes. Pueden ofrecer el mismo resultado para un valor y resultados diferentes para otro conjunto de valores. Por ejemplo, una transacción actualiza la cantidad del producto, mientras que otra actualiza los detalles del cliente.
Ver equivalencia
La equivalencia de vistas se produce cuando la transacción en ambos programas realiza una acción similar. Por ejemplo, una transacción inserta detalles de producto en la tabla de productos, mientras que otra transacción inserta detalles de producto en la tabla de archivo. La transacción es la misma, pero las tablas son diferentes.
CONFLICTO Equivalencia
En este caso, dos transacciones actualizan/ven el mismo conjunto de datos. Existe un conflicto entre transacciones ya que el orden de ejecución afectará la salida.
¿Qué es la serialización?
La serialización es el proceso de búsqueda de una programación concurrente cuyo resultado sea igual a una programación en serie donde las transacciones se ejecutan una tras otra. Dependiendo del tipo de programaciones, existen dos tipos de serializabilidad:
- Conflictos
- Ver
Resumen
- La gestión de transacciones es una unidad lógica de procesamiento en un DBMS que implica una o más operaciones de acceso a la base de datos.
- Es una transacción, es una unidad de programa cuya ejecución puede cambiar o no el contenido de una base de datos.
- No administrar el acceso simultáneo puede crear problemas como fallas de hardware y fallas del sistema.
- Activo, Parcialmente comprometido, Comprometido, Fallido y Terminado son estados de transacción importantes.
- La forma completa de Propiedades ACID en DBMS is AtomIcidad, consistencia, aislamiento y durabilidad
- Tres tipos de transacciones DBMS se basan en áreas de aplicación, acción y estructura.
- Un cronograma es un proceso que crea un único grupo de múltiples transacciones paralelas y las ejecuta una por una.
- La serialización es el proceso de búsqueda de una programación concurrente cuyo resultado sea igual a una programación en serie donde las transacciones se ejecutan una tras otra.