Transacciones en Bases de Datos: Propiedades ACID, Concurrencia y Recuperabilidad

Informática y Telecomunicaciones8,1 KB

Transacciones en Bases de Datos

Una transacción es una unidad de la ejecución de un programa que accede y posiblemente actualiza varios elementos de datos.

Estas operaciones se rigen por las denominadas propiedades ACID:

  • Atomicidad: O todas las operaciones de la transacción se realizan adecuadamente en la base de datos o ninguna de ellas.
  • Consistencia: La ejecución aislada de la transacción (es decir, sin otra transacción que se ejecute concurrentemente) conserva la consistencia de la base de datos.
  • Aislamiento: Aunque se ejecuten varias transacciones concurrentemente, el sistema garantiza que para cada par de transacciones Ti y Tj, se cumple que, para los efectos de Ti, o bien Tj ha terminado su ejecución antes de que comience Ti, o bien que Tj ha comenzado su ejecución después de que Ti termine. De este modo, cada transacción ignora al resto de las transacciones que se ejecuten concurrentemente en el sistema.
  • Durabilidad: Tras la finalización con éxito de una transacción, los cambios realizados en la base de datos permanecen, incluso si hay fallos en el sistema.

Estados de una Transacción

  • Activa: El estado inicial; la transacción permanece en este estado durante su ejecución.
  • Parcialmente comprometida: Después de ejecutarse la última instrucción.
  • Fallida: Tras descubrir que no puede continuar la ejecución normal.
  • Abortada: Después de haber retrocedido la transacción y restablecido la base de datos a su estado anterior al comienzo de la transacción.
  • Comprometida: Tras completarse con éxito.

Planificaciones y Secuenciabilidad

Equivalencia y Secuenciabilidad en Cuanto a Conflictos

Si una planificación P se puede transformar en otra P' por medio de una serie de intercambios de instrucciones no conflictivas, se dice que P y P' son equivalentes en cuanto a conflictos.

Se dice que una planificación P es secuenciable en cuanto a conflictos si es equivalente en cuanto a conflictos a una planificación secuencial.

Equivalencia y Secuencialidad en Cuanto a Vistas

Se dice que las planificaciones P y P' son equivalentes en cuanto a vistas si se cumplen las tres condiciones siguientes:

  1. Para todo elemento de datos Q, si la transacción Ti lee el valor inicial de Q en la planificación P, entonces Ti debe leer también el valor inicial de Q en la planificación P'.
  2. Para todo elemento de datos Q, si la transacción Ti ejecuta leer(Q) en la planificación P y el valor lo ha producido la transacción Tj (si existe dicha transacción), entonces, en la planificación P', la transacción Ti debe leer también el valor de Q que haya producido la transacción Tj.
  3. Para todo elemento de datos Q, la transacción (si existe) que realice la última operación escribir(Q) en la planificación P, debe realizar la última operación escribir(Q) en la planificación P'.

Se dice que la planificación P es secuenciable en cuanto a vistas si es equivalente en cuanto a vistas a una planificación secuencial.

Planificación Recuperable

Una planificación recuperable es aquella en la que para todo par de transacciones Ti y Tj tales que Tj lee elementos de datos que ha escrito previamente Ti, la operación comprometer de Ti aparece antes que la de Tj.

Bloqueos y Control de Concurrencia

Tipos de Bloqueo

  1. Compartido: Si una transacción Ti obtiene un bloqueo en modo compartido (denotado por C) sobre el elemento Q, entonces Ti puede leer Q pero no lo puede escribir.
  2. Exclusivo: Si una transacción Ti obtiene un bloqueo en modo exclusivo (denotado por X) sobre el elemento Q, entonces Ti puede tanto leer como escribir Q.

Protocolos de Bloqueo

Se dice que un protocolo asegura la secuencialidad en cuanto a conflictos si y sólo si todas las planificaciones legales son secuenciables en cuanto a conflictos.

El punto de la planificación en el cual la transacción obtiene su bloqueo final (el final de la fase de crecimiento) se denomina punto de bloqueo de la transacción.

El protocolo de bloqueo de dos fases no asegura la ausencia de interbloqueos.

El protocolo de bloqueo estricto de dos fases exige que, además de que el bloqueo sea de dos fases, una transacción debe poseer todos los bloqueos en modo exclusivo que tome hasta que dicha transacción se complete.

El protocolo de bloqueo riguroso de dos fases exige que se posean todos los bloqueos hasta que se comprometa la transacción.

Conversiones de Bloqueo

Se denota la conversión del modo compartido al modo exclusivo como subir, y la conversión del modo exclusivo al modo compartido como bajar.

Tipos de Fallos

  • Fallo en la transacción: Hay dos tipos de errores que pueden hacer que una transacción falle:
    • Error lógico: La transacción no puede continuar con su ejecución normal a causa de alguna condición interna, como una entrada incorrecta, datos no encontrados, desbordamiento o exceso del límite de recursos.
    • Error del sistema: El sistema se encuentra en un estado no deseado (por ejemplo, de interbloqueo) como consecuencia del cual una transacción no puede continuar con su ejecución normal. La transacción, sin embargo, se puede volver a ejecutar más tarde.
  • Caída del sistema: Un mal funcionamiento del hardware o un error en el software de la base de datos o del sistema operativo causa la pérdida del contenido de la memoria volátil y aborta el procesamiento de una transacción. El contenido de la memoria no volátil permanece intacto y no se corrompe.
  • Fallo de disco: Un bloque del disco pierde su contenido como resultado de bien una colisión de la cabeza lectora, bien un fallo durante una operación de transferencia de datos. Las copias de los datos que se encuentran en otros discos o en archivos de seguridad en medios de almacenamiento secundarios, como cintas, se utilizan para recuperarse del fallo.

Tipos de Almacenamiento

  • Almacenamiento volátil: La información que reside en almacenamiento volátil no suele sobrevivir a las caídas del sistema. La memoria principal y la memoria caché son ejemplos de este almacenamiento. El acceso al almacenamiento volátil es muy rápido, tanto por la propia velocidad de acceso a la memoria, como porque es posible acceder directamente a cualquier elemento de datos.
  • Almacenamiento no volátil: La información que reside en almacenamiento no volátil sobrevive a las caídas del sistema. Los discos y las cintas magnéticas son ejemplos de este almacenamiento. Los discos se utilizan para almacenamiento en conexión, mientras que las cintas se usan para almacenamiento permanente.
  • Almacenamiento estable: La información que reside en almacenamiento estable nunca se pierde.

Descargar

PDF Word HTML