Existen 3 maneras en que un mecanismo de control de concurrencia pueda salir mal, las que una transacción,
aunque sea correcta por sí misma, puede producir una respuesta incorrecta si alguna otra transacción interfiere
con ella en alguna forma.
El problema de la actualización perdida.
Este error como se menciona es la perdida de una actualización es decir,
que a la hora de actualizar un valor en una base de datos y algo más
actualiza ese mismo valor no lo hace sobre la primera actualización.
T1 Lee las existencias disponibles de un producto (A).
T2 también lee las existencias disponibles (A).
T1 incrementa dichas existencias en 100 unidades (A+100)
T2 también incrementa dichas existencias en 100 unidades (A+100
El resultado final (E+100) esta incorrecto, ya que se ha perdido la actualización de T1
Esto debido a que ambas acciones leen el valor antes de que cambie
El problema de la dependencia no confirmada.
El problema de la dependencia no confirmada se da cuando una transaccion
recupera o actualiza un dato que ya había sido actualizado por otra transacción
pero que aun no a sido confirmada. debido a esto existe la posibilidad de que nunca
llega a serlo, por lo tanto la primera transacción habrá visto datos que ya no existen
tras deshacerse mediante un ROLLBACK.
El problema del análisis inconsistente.
de los resultados de la transacción de actualización. Cuando una transaccipon
lee un dato antes de que otra transacción lo actualiza y le otro dato después
que la misma transacción lo actualizara. Provocando que la lectura de datos
sólo percibe algunos.