Want to create interactive content? It’s easy in Genially!

Get started free

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:

Modern Presentation

Terrazzo Presentation

Colorful Presentation

Modular Structure Presentation

Chromatic Presentation

City Presentation

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.

  1. 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.
  2. Bloqueos compartidos: permiten operaciones olo de lectura. Se permiten lecturas concurrentes, pero ninguna actualizacion.
  3. 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.
  4. 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.

  1. 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
  2. Estricto: La transacción no libera ninguno de sus bloqueos de escritura antes de confirmarse o abortar.
  3. 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.