Bienvenido a nuestra web, aquí encontrarás la solucíon que estabas buscando.
Solución:
Exactamente la misma página explica qué es una lectura sucia:
El acceso a un valor actualizado que no se ha confirmado se considera una lectura sucia porque es posible que ese valor se revierta a su valor anterior. Si lee un valor que luego se deshace, habrá leído un valor no válido.
Entonces, la lectura no repetible consiste en leer dos valores comprometidos diferentes, mientras que la lectura sucia consiste en leer un valor que aún no se ha comprometido. Bastante diferente.
De aquí:-
Lecturas sucias ocurren cuando una transacción lee datos escritos por otra transacción no comprometida. El peligro de las lecturas sucias es que es posible que la otra transacción nunca se confirme, dejando la transacción original con datos “sucios”.
Lecturas no repetibles ocurren cuando una transacción intenta acceder a los mismos datos dos veces y una segunda transacción modifica los datos entre los intentos de lectura de la primera transacción. Esto puede hacer que la primera transacción lea dos valores diferentes para los mismos datos, haciendo que la lectura original no sea repetible.
Una imagen vale 1000 palabras.
En el diagrama anterior, el flujo de declaraciones es el siguiente:
- Alice y Bob inician dos transacciones de base de datos.
- Alice modifica el título de un registro de publicación determinado.
- Bob lee el registro de publicaciones no comprometidas.
- Si Alice realiza su transacción, todo está bien. Pero si Alice retrocede, Bob verá una versión de registro que ya no existe en el registro de transacciones de la base de datos.
Esta anomalía solo está permitida por el nivel de aislamiento de lectura no comprometida y, debido al impacto en la integridad de los datos, la mayoría de los sistemas de bases de datos ofrecen un nivel de aislamiento predeterminado más alto.
Recuerda que puedes mostrar este tutorial si te valió la pena.