Gestión de transacciones DBMS: ¿Qué son las propiedades ACID?

¿Qué es una transacción de base de datos?

Una 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 bases de datos representan eventos del mundo real de cualquier empresa.

Todos los tipos de operaciones de acceso a la base 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 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 coherente a otro.

En este tutorial, aprenderá:

  • Datos sobre transacciones de bases de datos
  • ¿Por qué necesita la simultaneidad en las transacciones?
  • Estados de transacciones
  • ¿Qué son las propiedades ACID?
  • Tipos de transacciones
  • ¿Qué es un horario?

Datos sobre 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 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 el estado inconsistente después de la transacción.

¿Por qué necesita la simultaneidad en las transacciones?

Una base de datos es un recurso compartido al que se accede. Es utilizado por muchos usuarios y procesos al mismo tiempo. Por ejemplo, el sistema bancario, los sistemas de reservas ferroviarias y aéreas, el seguimiento del mercado de valores, el inventario de supermercados y las cajas, etc.

No administrar el acceso concurrente puede crear problemas como:

  • Fallo de hardware y bloqueos del sistema
  • Ejecución concurrente de la misma transacción, punto muerto o rendimiento lento

Estados de transacciones

Los diversos estados de un concepto de transacción en DBMS se enumeran a continuación:

Expresar 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 comprometido después del final de una transacción.
Estado comprometido Cuando la transacción está comprometida con 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 falla cualquiera de las comprobaciones o si la transacción se aborta mientras está en estado activo.
Estado terminado El estado de la transacción llega al estado finalizado cuando ciertas transacciones que abandonan el sistema no se pueden reiniciar.
Diagrama de transición de estado para una transacción de base de datos

Estudiemos un diagrama de transición de estado que resalte cómo se mueve una transacción entre estos diversos estados.

  1. Una vez que una transacción indica ejecución, se activa. Puede emitir la operación READ o WRITE.
  2. Una vez que se completan las operaciones READ y WRITE, las transacciones pasan al estado parcialmente comprometido.
  3. A continuación, algunos protocolos de recuperación deben garantizar que una falla del sistema no resulte en la imposibilidad de registrar los 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.
  4. Si la verificación falla, la transacción pasa al estado Fallido.
  5. Si la transacción se aborta 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.
  6. El estado terminado se refiere a la transacción que abandona el sistema.

¿Qué son las propiedades ACID?

Las propiedades de ACID se utilizan para mantener la integridad de la base de datos durante el procesamiento de transacciones. Ácido en DBMS significa un tomicity, C OHERENCIA, me solation y D urability.

  • Atomicidad: una transacción es una sola unidad de operación. O lo ejecuta por completo o no lo ejecuta en absoluto. No puede haber ejecución parcial.
  • Coherencia: una vez que se ejecuta la transacción, debe pasar de un estado coherente a otro.
  • Aislamiento: la transacción debe ejecutarse de forma aislada de otras transacciones (sin bloqueos). Durante la ejecución de transacciones simultáneas, los resultados de transacciones intermedias de transacciones ejecutadas simultáneamente no deben estar disponibles entre sí. (Nivel 0,1,2,3)
  • Durabilidad: · Después de completar con éxito una transacción, los cambios en la base de datos deberían persistir. Incluso en el caso de fallas del sistema.

Propiedad ACID en DBMS con ejemplo:

A continuación se muestra un ejemplo de la propiedad ACID en DBMS:

Transaction 1: Begin X=X+50, Y = Y-50 ENDTransaction 2: Begin X=1.1*X, Y=1.1*Y END

La transacción 1 está transfiriendo $ 50 de la cuenta X a la cuenta Y.

La transacción 2 acredita a cada cuenta con 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 de la Transacción 2 o viceversa. Independientemente del pedido, 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 vs. distribuido
  • Compensación de transacciones
  • Tiempo de transacciones
  • En línea frente a por 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 operaciones de inicio y fin.
  • Transacciones anidadas: una transacción que contiene otras transacciones.
  • Flujo de trabajo

¿Qué es un horario?

Un programa es un proceso que crea un solo 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 el resultado de la otra.

Ejemplo

Initial Product Quantity is 10Transaction 1: Update Product Quantity to 50Transaction 2: Read Product Quantity

Si la Transacción 2 se ejecuta antes que la Transacción 1, se leerá información obsoleta sobre la cantidad de producto. Por lo tanto, se requieren horarios.

La ejecución paralela en una base de datos es inevitable. Pero, la ejecución paralela está permitida cuando existe una relación de equivalencia entre las transacciones que se ejecutan simultáneamente. Esta equivalencia es de 3 tipos.

EQUIVALENCIA DE RESULTADOS:

Si dos programas muestran el mismo resultado después de la ejecución, se denomina programa de resultado equivalente. Pueden ofrecer el mismo resultado para algún valor y resultados diferentes para otro conjunto de valores. Por ejemplo, una transacción actualiza la cantidad de producto, mientras que otra actualiza los detalles del cliente.

Ver equivalencia

Ver equivalencia ocurre cuando la transacción en ambos programas realiza una acción similar. Por ejemplo, una transacción inserta detalles del producto en la tabla de productos, mientras que otra transacción inserta detalles del producto en la tabla de archivo. La transacción es la misma, pero las tablas son diferentes.

Equivalencia de conflicto

En este caso, dos transacciones actualizan / visualizan el mismo conjunto de datos. Existe un conflicto entre las 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 cuya salida es igual a una programación en serie donde las transacciones se ejecutan una tras otra. Dependiendo del tipo de programaciones, existen dos tipos de serialización:

  • Conflicto
  • Vista

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, Comprometido parcialmente, Comprometido, Fallido y Terminado son estados de transacción importantes.
  • La forma completa de propiedades ACID en DBMS es atomicidad, consistencia, aislamiento y durabilidad.
  • Tres tipos de transacciones DBMS se basan en áreas de aplicación, acción y estructura.
  • Un programa es un proceso que crea un solo 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 cuya salida es igual a una programación en serie donde las transacciones se ejecutan una tras otra.

Articulos interesantes...