Concurrencia y transacciones en Base de Datos
Alumnos ConuseroEnsayo1 de Marzo de 2020
718 Palabras (3 Páginas)194 Visitas
Concurrencia y transacciones en Base de Datos
Transacciones
Es un conjunto de instrucciones o sentencias que deben ejecutarse como una unidad. Quiere decir que lo mencionado anteriormente responde al término de Atomicidad de las transacciones, quiere decir que se ejecutaran todas las consultas correctamente o no se ejecutara ninguna de ellas.
Tiene mecanismos o comandos para poder indicar que el conjunto de consultas deben convalidarse (esto llamado commit) o, si tras ejecutarse un error, estas deben ser revertidas (esto llamado rollback), significa que cuando revertimos una transacción todos los datos vuelven al estado previo a la ejecución de la transacción
Ejemplo de atomicidad:
Sin transacción
INSERT en tabla A ✓
UPDATE en tabla B ✓
DELETE en tabla C ✓
Con transacción
Inicio de la transacción
INSERT en tabla A ✓
UPDATE en tabla B ✓
DELETE en tabla C ✓
Confirmación de la transacción
Los cambios en la tabla A y B fueron registrados. El registro de la tabla C fue eliminado. Para ambos casos se ejecutaran los cambios registrados y eliminados, pero en el ejemplo Sin transacción, estos se ejecutaran de inmediato, mientras en el ejemplo Con transacción, ejecutara las sentencias pero no realizará los cambios sino hasta que se confirme la transacción y todas las sentencias puedan ejecutarse de manera correcta; de otro modo, si encontrará un error en cualquier sentencia, no realizará ninguno de los cambios.
Sin transacción
INSERT en tabla A ✓
UPDATE en tabla B ✓
DELETE en tabla C 🗴
Con transacción
Inicio de la transacción
INSERT en tabla A ✓
UPDATE en tabla B ✓
DELETE en tabla C 🗴
Reversión de la transacción
En el anterior caso, con el ejemplo Sin transacción, se realizara el cambio en las tablas A y B correctamente, pero al haber encontrado un error en la tabla C esta será la única que no guardará los cambios en la base de datos. Mientras que en el ejemplo Con transacción, se revertirán los cambios, es decir se verificará cada sentencia y al haber encontrado un error en la tabla C, no realizará ninguno de los cambios ni en la tabla A, ni en la tabla B, aunque estas si funcionen correctamente, dejando los datos como estaban antes de ejecutar la transacción.
Control de Concurrencia en Base de Datos
Este control brinda un eficiente desempeño del sistema gestor de base de datos (SGBD) puesto que permite controlar la ejecución de transacciones que operan en paralelo, accesando a la información compartida y por lo tanto interfiriendo potencialmente unas con otras. Quiere decir, que los SGBD permiten que muchas transacciones puedan accesar a una misma base de datos a la vez.
Métodos de control de concurrencia
- Protocolos basados en técnicas de bloque: Un bloqueo es una variable que está asociada a un elemente dentro de una base de datos, que es utilizado para restringir operaciones que se pueden aplicar sobre él.
Existen varios tipos de bloqueo: binarios (de propiedades limitadas), compartidos, exclusivos (usados en la práctica), y bloqueos de certificación.
...