Propiedades ACID y Estados de las Transacciones en Bases de Datos

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 4,3 KB

Transacciones en Bases de Datos

Desde el punto de vista del usuario, una transacción en una base de datos a menudo se percibe como una única operación, aunque internamente involucre múltiples operaciones. Por ejemplo, una transferencia de fondos entre cuentas es una operación simple para el cliente, pero para la base de datos, comprende varias operaciones.

Es esencial que todas las operaciones de una transacción se completen exitosamente o, en caso de fallo, que ninguna de ellas se lleve a cabo.

Propiedades ACID

Una transacción es un proceso, en memoria, que asegura la integridad y consistencia de los datos a través de cuatro propiedades fundamentales, conocidas como propiedades ACID:

  • Atomicidad: Todas las operaciones de la transacción se realizan adecuadamente en la base de datos, o ninguna de ellas se realiza.
  • Consistencia: La ejecución aislada de la transacción (sin otras transacciones concurrentes) preserva la consistencia de la base de datos.
  • Aislamiento: Aunque se ejecuten varias transacciones concurrentemente, el sistema garantiza que cada par de transacciones (Ti y Tj) se ejecuten de manera aislada. Para Ti, parece que Tj terminó su ejecución antes de que Ti comenzara, o que Tj comenzó después de que Ti terminara.
  • Durabilidad: Tras la finalización exitosa de una transacción, los cambios realizados en la base de datos persisten incluso si hay fallos en el sistema.

Un sistema de base de datos debe garantizar la correcta ejecución de las transacciones a pesar de posibles fallos. O se ejecuta la transacción completa o no se ejecuta en absoluto. Además, debe gestionar la ejecución concurrente de transacciones para evitar inconsistencias.

Comandos de Control de Transacciones

Una transacción abarca todas las operaciones ejecutadas entre el inicio y el fin de la transacción. Generalmente, para validar permanentemente el trabajo, se utiliza el comando:

COMMIT WORK;

Como alternativa, para deshacer el trabajo de las sentencias SQL de una transacción, se utiliza el comando:

ROLLBACK WORK;

La operación COMMIT registra los cambios en la base de datos y las operaciones en el LOG de TRANSACCIONES.

Estados de una Transacción

Una transacción puede encontrarse en uno de los siguientes estados:

  • Activa (estado inicial): La transacción permanece en este estado durante su ejecución.
  • Parcialmente Comprometida: La transacción pasa a este estado justo después de realizar la última instrucción.
  • Fallida: La transacción pasa a este estado al descubrir que no puede continuar la ejecución normal.
  • Abortada: La transacción pasa a este estado después de haber restablecido la base de datos a su estado anterior.
  • Comprometida: La transacción pasa a este estado tras completarse con éxito.

Triggers (Disparadores)

Un trigger es un proceso o lógica asociada a una tabla que se activa antes o después de operaciones de INSERT, DELETE o UPDATE que afectan a dicha tabla.

Funciones en PL/SQL

Definición de Función

  • Una función es un bloque nombrado PL/SQL que devuelve un valor.
  • Puede almacenarse en la base de datos como un objeto para ejecuciones repetidas.
  • Puede ser llamada como parte de una expresión.

Dónde Llamar a las Funciones

  • Como columna de un SELECT.
  • Condiciones en cláusulas WHERE y HAVING.
  • Cláusulas ORDER BY y GROUP BY.
  • Cláusula VALUES de un comando INSERT.
  • Cláusula SET de un comando UPDATE.

Restricciones en Funciones

  • No se permiten comandos INSERT, UPDATE o DELETE.
  • La función no puede llamar a otro subprograma que infrinja las restricciones anteriores.
  • Para eliminar una función: DROP FUNCTION (nombre de la función);

Entradas relacionadas: