Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Si varios usuarios intentan cambiar los datos al mismo tiempo, es necesario establecer algunos
tipos de control para que estos cambios del usuario no interfieran con otras cosas. Este sistema se
llama control de consentimiento.
En este informe, puede ver algunos de los problemas que surgen cuando el consentimiento no se
controla y algunos de los mecanismos de bloqueo que pueden administrar el consentimiento de la
transacción. De esta manera, el sistema de control simultáneo debe garantizar la consistencia de
la transacción ejecutada al mismo tiempo.
Definición de concurrencia
La concurrencia de bases de datos es la capacidad de una base de datos para permitir que
varios usuarios afecten a varias transacciones. Esta es una de las principales propiedades
que separa una base de datos de otras formas de almacenamiento de datos, como las
hojas de cálculo.
Los problemas causados por la concurrencia de la base de datos son incluso más
importantes que la capacidad de admitir transacciones concurrentes.
Por ejemplo, cuando un usuario está cambiando datos, pero aún no ha guardado
(confirmado) esos datos, entonces la base de datos no debe permitir que otros usuarios
que consultan los mismos datos vean los datos cambiados y no guardados. En cambio, el
usuario solo debe ver los datos originales.
4.1 Conceptos
Transaction
Consistencia
Aislamiento
Es la lógica adicional que se le agrega al programa que accede a los datos para su
funcionamiento correcto.
4.3 Grados de consistencia
Consistencia
Es un término más amplio que el de integridad. Podría definirse como la coherencia entre
todos los datos de la base de datos.
Una transacción que termina con éxito se dice que está comprometida (commited).
En cualquier momento una transacción sólo puede estar en uno de los siguientes estados.
Activa
Fallida (Failed)
Aislamiento
Es la lógica adicional que se le agrega al programa que accede a los datos para su
funcionamiento correcto.
Niveles de aislamiento
Antes de entrar a los NIVELES DE AISLAMIENTO debemos comprender lo que son los
EFECTOS DE LECTURA, estos son casos en donde la transacción A lee datos que pudieron
haber sido modificados por la transacción B, existen 3 tipos diferentes.
Lecturas sucias: Ocurre cuando se le permite a una transacción la lectura de una fila que
ha sido modificada por otra transacción concurrente pero todavía no ha sido cometida.
Lecturas fantasmas: Ocurre cuando, durante una transacción, se ejecutan dos consultas
idénticas, y los resultados de la segunda son distintos de los de la primera.
Lectura confirmada:
Lectura repetible:
En esta pueden ocurrir LECTURAS FANTASMA pero evita que ocurran LECTURAS SUCIAS y
LECTURAS NO REPETIBLES.
Serializable:
Este es el nivel de aislamiento mas alto.Evita por completo las LECTURAS SUCIAS, las
LECTURAS NO REPETIBLES y las LECTURAS FANTASMA.
Esta instrucción de SQL se utiliza para confirmar como permanentes las modificaciones
realizadas en una transacción. Cuando se produce el COMMIT, se hacen efectivos los
cambios en los ficheros de datos (.mdf y .ndf). Mientras no se realiza el COMMIT las
sentencias de los cambios se guardan en el log de transacciones (.ldf), que gracias a este
es posible revertir los cambios si fuera necesario.
Transacciones explícitas
Este tipo de transacciones son las que se definen en el código y hay que indicar cuándo se
inicia con BEGIN TRANSACTION y cuándo finaliza COMMIT TRANSATION.
Retroceder
Es una operación que devuelve a la base de datos a algún estado anterior. Los Rollbacks
son importantes para la integridad de la base de datos, una causa de que significan que la
base de datos puede ser restaurada a una copia limpia después incluso de que se han
realizado errores.
Efectos de lectura
Los estándares ANSI/ISO SQL 92 se refieren a tres efectos de lectura diferentes al leer
datos que pueden haber cambiado la transacción 2 por la transacción 1.
Lectura sucia
La lectura sucia ocurre al leer una fila, que fue cambiada por otra transacción simultánea,
se permitió, pero aún no se ha cometido.
Las lecturas sucias funcionan similar a las lecturas imparables; Sin embargo, la segunda
transacción no debe hacerse para que el primero dé otro resultado. Lo único que se puede
prevenir en el nivel de aislamiento, no indicaciones dedicadas, es que las actualizaciones
aparecen en el desorden como resultado; Es decir, las primeras actualizaciones siempre
aparecerán hasta las actualizaciones posteriores.
Lecturas no repetibles
Se produce un valor medido no repetible si una línea se lee dos veces en el curso de una
transacción y los valores no coinciden.
Hay dos estrategias básicas para prevenir lecturas no repetidas. El primero es retrasar la
ejecución de la transacción 2 hasta que la transacción 1 se cometió o se invirtió. Este
método se usa con bloqueos y corresponde a la ejecución de la serie T1 T2. La ejecución
en serie no muestra efectos de los valores medidos no repetibles.
Lecturas fantasmas
La lectura fantasmal ocurre cuando se realizan dos consultas idénticas durante la transacción, y los
resultados del segundo no son iguales a los resultados del primero.
Esto puede suceder cuando, cuando se realiza la elección de elección, el rango del rango no se
realiza ... dónde.
En el nivel de serialización, la consulta 1 bloquea todos los registros entre 10 y 30, y la consulta 2
se bloquea hasta que se comete la transacción. En el modo de lectura legible, el alcance de 10 a 30
se bloquea y se puede insertar, y la segunda ejecución en la consulta 1 incluye una nueva línea.
Ejemplos
--Transaction--
create database unidad4;
declare @valor int =0;
while @valor < 10
begin
print 'el valor es' + convert(char(2), @valor)
set @valor = @valor + 1
if @valor =10
break
print 'el siclo continua'
end
print 'el codigo (script) continua'
Linkografía
https://techinfo.wiki/concurrencia-de-la-base-de-datos/
https://sites.google.com/a/tectijuana.edu.mx/2016_08_tbd_8/4-seguridad/4-5-vistas
https://www.studocu.com/es-mx/document/instituto-tecnologico-de-acapulco/taller-de-
base-de-datos/concurrencia/30095645
https://www.studocu.com/es-mx/document/instituto-tecnologico-de-
villahermosa/fundamento-de-base-de-datos/actividad-1-unidad-4/11165474
https://pdfcoffee.com/unidad-4-concurrencia-5-pdf-free.html
https://es.wikipedia.org/wiki/Aislamiento_(ACID)#Lecturas_repetibles_(Repeatable_reads
)