DDBMS - Sistemas de procesamiento de transacciones

Este capítulo analiza los diversos aspectos del procesamiento de transacciones. También estudiaremos las tareas de bajo nivel incluidas en una transacción, los estados de la transacción y las propiedades de una transacción. En la última parte, veremos los horarios y la serialización de los horarios.

Actas

Una transacción es un programa que incluye una colección de operaciones de base de datos, ejecutadas como una unidad lógica de procesamiento de datos. Las operaciones realizadas en una transacción incluyen una o más de las operaciones de la base de datos como insertar, eliminar, actualizar o recuperar datos. Es un proceso atómico que se completa completamente o no se realiza en absoluto. Una transacción que implica solo la recuperación de datos sin ninguna actualización de datos se denomina transacción de solo lectura.

Cada operación de alto nivel se puede dividir en una serie de tareas u operaciones de bajo nivel. Por ejemplo, una operación de actualización de datos se puede dividir en tres tareas:

  • read_item() - lee el elemento de datos del almacenamiento a la memoria principal.

  • modify_item() - cambiar el valor del artículo en la memoria principal.

  • write_item() - escribe el valor modificado de la memoria principal al almacenamiento.

El acceso a la base de datos está restringido a las operaciones read_item () y write_item (). Asimismo, para todas las transacciones, lectura y escritura forman las operaciones básicas de la base de datos.

Operaciones de transacción

Las operaciones de bajo nivel realizadas en una transacción son:

  • begin_transaction - Un marcador que especifica el inicio de la ejecución de la transacción.

  • read_item or write_item - Operaciones de base de datos que se pueden intercalar con operaciones de memoria principal como parte de la transacción.

  • end_transaction - Un marcador que especifica el final de la transacción.

  • commit - Una señal para especificar que la transacción se completó con éxito en su totalidad y no se deshará.

  • rollback- Una señal para especificar que la transacción no ha tenido éxito y, por lo tanto, se deshacen todos los cambios temporales en la base de datos. Una transacción confirmada no se puede revertir.

Estados de transacción

Una transacción puede pasar por un subconjunto de cinco estados, activo, parcialmente comprometido, comprometido, fallido y abortado.

  • Active- El estado inicial donde entra la transacción es el estado activo. La transacción permanece en este estado mientras ejecuta operaciones de lectura, escritura u otras.

  • Partially Committed - La transacción entra en este estado después de que se haya ejecutado la última declaración de la transacción.

  • Committed - La transacción entra en este estado después de que la transacción se completa con éxito y las verificaciones del sistema han emitido una señal de compromiso.

  • Failed - La transacción pasa del estado parcialmente comprometido o activo al estado fallido cuando se descubre que la ejecución normal ya no puede continuar o fallan las comprobaciones del sistema.

  • Aborted - Este es el estado después de que la transacción se ha revertido después de un error y la base de datos se ha restaurado al estado que tenía antes de que comenzara la transacción.

El siguiente diagrama de transición de estado muestra los estados de la transacción y las operaciones de transacción de bajo nivel que provocan cambios en los estados.

Propiedades deseables de las transacciones

Cualquier transacción debe mantener las propiedades ACID, a saber. Atomicidad, consistencia, aislamiento y durabilidad.

  • Atomicity- Esta propiedad establece que una transacción es una unidad atómica de procesamiento, es decir, se realiza en su totalidad o no se realiza en absoluto. No debería existir ninguna actualización parcial.

  • Consistency- Una transacción debe llevar la base de datos de un estado coherente a otro estado coherente. No debería afectar negativamente a ningún elemento de datos de la base de datos.

  • Isolation- Una transacción debe ejecutarse como si fuera la única en el sistema. No debe haber ninguna interferencia de las otras transacciones simultáneas que se ejecutan simultáneamente.

  • Durability - Si una transacción comprometida produce un cambio, ese cambio debe ser duradero en la base de datos y no perderse en caso de falla.

Horarios y conflictos

En un sistema con varias transacciones simultáneas, un schedulees el orden total de ejecución de las operaciones. Dado un programa S que comprende n transacciones, digamos T1, T2, T3 ……… ..Tn; para cualquier transacción Ti, las operaciones en Ti deben ejecutarse según lo establecido en el anexo S.

Tipos de horarios

Hay dos tipos de horarios:

  • Serial Schedules- En un programa en serie, en cualquier momento, solo una transacción está activa, es decir, no hay superposición de transacciones. Esto se muestra en el siguiente gráfico:

  • Parallel Schedules- En horarios paralelos, hay más de una transacción activa simultáneamente, es decir, las transacciones contienen operaciones que se superponen en el momento. Esto se muestra en el siguiente gráfico:

Conflictos en horarios

En un programa que comprende múltiples transacciones, un conflictocurre cuando dos transacciones activas realizan operaciones no compatibles. Se dice que dos operaciones están en conflicto, cuando las siguientes tres condiciones existen simultáneamente:

  • Las dos operaciones son parte de transacciones diferentes.

  • Ambas operaciones acceden al mismo elemento de datos.

  • Al menos una de las operaciones es una operación write_item (), es decir, intenta modificar el elemento de datos.

Serializabilidad

UN serializable schedulede 'n' transacciones es un programa paralelo que es equivalente a un programa en serie que comprende las mismas 'n' transacciones. Un programa serializable contiene la exactitud del programa serial al tiempo que determina una mejor utilización de la CPU del programa paralelo.

Equivalencia de horarios

La equivalencia de dos programas puede ser de los siguientes tipos:

  • Result equivalence - Se dice que dos programas que producen resultados idénticos son resultados equivalentes.

  • View equivalence - Se dice que dos programas que realizan una acción similar de manera similar son equivalentes a la vista.

  • Conflict equivalence - Se dice que dos programas son equivalentes en conflicto si ambos contienen el mismo conjunto de transacciones y tienen el mismo orden de pares de operaciones en conflicto.