Want to create interactive content? It’s easy in Genially!
Control de concurrencia y transacciones
Edgar david Lopez Cruz
Created on March 29, 2023
Start designing with a free template
Discover more than 1500 professional designs like these:
View
Modern Presentation
View
Terrazzo Presentation
View
Colorful Presentation
View
Modular Structure Presentation
View
Chromatic Presentation
View
City Presentation
View
News Presentation
Transcript
Control de concurrencia
¡Vamos!
Transacción
Una transacción es una unidad de ejecución de un programa, puede consistir en varias operaciones de acceso a la base de datos. Propiedades ACID Una transacción para cumplir con su propósito, debe cumplir las siguientes características
Consistencia
Atomicidad
La base de datos debe ser consistente al inicio y al final de la transacción. Todas las reglas que definen y limitan los datos deben ser aplicacdas a esos datos como resultado de cualquier cambio que ocurra durante la transacción.
Se realizan ya sea todas las operaciones en una transacción, o ninguna de ellas
Durabilidad
Aislamiento
Ningún usuario deberá ser capaz de acceder a los datos inconsistenes durante una transacción implementada por otro usuario cuando los datos impactados por esa transaccion estan en un estado inconsistente.
Ningún usuario deberá ser capaz de acceder a los datos inconsistenes durante una transacción implementada por otro usuario cuando los datos impactados por esa transaccion estan en un estado inconsistente.
Existen 3 tipos de transacciones
- Transacción explicita: configuradas manualmente para el inico y final de la transacción. (begin, commit, rollback, save)
- Transacciones implicitas: Asignadas automaticamente por SQL separadas por cada sentencia Transac-SQL.
- Transacciones de confirmacion automatica: Estas puedesn ser cualquiere ejecucion de instruccion que modifica datos. (Insert, update, delete), SQL toma instrucciones como transaccionestambien
Tipos de aislamientos
- Lectura no comprometida: Asugura que no se lean datos corruptos fisicamente.
- Lectura comprometida: Sólo se permiten lecturas de datos comprometidos.
- Lectura repetible: Las lecturas repetidad de la misma fila para la misma transacción das los mismos resultados.
- Seucenciable: Las transacciones se aislan completamente
Comandos de transacciones
- Commit Transaction: MArca el final de na transacción correcta, implicita o explicita. Si TRANCOUNT es 1, COMMIT TRANSACTION hace que todas las modificaciones de datos realizadas desde el inicio de la transacción sean pare permanente de la base de datos
- Begin Transaction: Marca el punto de inicio de una transacción local explicita. Las transacciones explicitas empiezan con la instrucción BEGIN TRANSACTION y acan con la instruccióon COMMIT o ROLLBACK
- Rollback Transaction: Revierte una transacción explicita o implicita hasta el inicio de la transaccion o hasta un punto de retorno dentro de la transacción.
¿Qué es el control de concurrencias?
Cuando se ejecutan concurrentemente varias transacciones en la base de datos, puede dejar de conservarse la consistencia de los datos. Es neceasario que le sistema controle la interacción entre la tanssacciones concurrentes, dicho control se llava a cabo mediante uno de los muchos mecanismos llamados esquemas de control de concurrencia.
El objetivo de los métodos de control de concurrencia es garantizar la no inferencia o la propiedad dea aislamiento de transacciones que se ejecutan de manera concurrente
En los gestores de bases de datos se encuentra una aplicación llamada “Schedule”, que es el encargado de gestionar el control sobre los accesos concurrentes a las diferente tuplas de las diferentes tablas existentes en la base de datos. Esta aplicación tiene contacto no solo con la información que está en los discos sino también con la que se encuentra en memoria. Otra de las tareas importantes realizadas por una aplicación “Scheduler” es el manejo de agendas para ordenar las secuencias de ejecución de tareas.
Un bloqueo es una operación para restringir las operaciones que se pueden aplicar sobre la base de datos.
Métodos de control de concurrencia
Protocolos basados en técnicas de bloqueo.
- Bloqueos binarios: esto spossen dos valores posibles. "Bloqueados y desbloqueados". Cada elemento de la base de datos tiene un bloqueo distinto, este se encarga de señalar si una transsaccíon esta libre o en ejecución.
- Bloqueos compartidos: permiten operaciones olo de lectura. Se permiten lecturas concurrentes, pero ninguna actualizacion.
- Bloqueos de actualización: permiten operaciones de escritra. Solo se permite que una transacción adquiera este bloqueo. Si la trranssaccio´n modifica datos, se convierte en exclusivo, en caso contrario será compartido.
- Bloqueos exclusivos: permiten operaciones que escriben datos, solo se permiten que una transacción adquiera este bloqueo.
Protocolos basados en dos fases. En él, todas las operaciones de bloqueo preceden a la primera operacion de desbloqueo de la transaccion. Le proceso de puede asi dividir en dos fases: la fase de bloqueo y de desbloqueo.
- Conservador o estático: Requiere que una transacción bloquee todos los elementos a los que tendrá acceso antes de comenzar a ejecutarse. Una vez bloqueados, no habrá conversión de bloqueos de lectura a escritura. Si no es posible bloquearlos todos, la transacción no bloqueara nada y esperará a poder bloquear todos los elementos necesarios en su totalidad
- Estricto: La transacción no libera ninguno de sus bloqueos de escritura antes de confirmarse o abortar.
- Riguroso: Es una versión más restrictiva del estricto. Similar al anterior, pero además tampoco lebera los bloqueos de lectura. Es más fácil de implementar.