Академический Документы
Профессиональный Документы
Культура Документы
TRANSACCIONES
CONTROL DE CONCURRENCIA
Cuando varios usuarios intentan modificar datos al mismo tiempo, es
necesario establecer controles para impedir que las modificaciones de un
usuario influyan negativamente en las de otros. El sistema mediante el
cual se controla lo que sucede en esta situacin se denomina control de
concurrencia.
La Concurrencia en las base de datos es de suprema importancia en los
sistemas de informacin, ya que evita errores en el momento de
ejecutar las diferentes transacciones
En si la concurrencia es la propiedad de los sistemas que permiten que
mltiples procesos sean ejecutados al mismo tiempo, y que
potencialmente puedan interactuar entre s.
la
"El ltimo gana": una fila no est disponible para otros usuarios
mientras los datos se estn actualizando. Sin embargo, no se intenta
comparar las actualizaciones con el registro original; simplemente, el
El ltimo gana
Con la tcnica de "el ltimo gana", no se realiza ninguna comprobacin
de los datos originales y la actualizacin simplemente se escribe en la
base de datos. Es comprensible que se pueda producir el siguiente
escenario:
El usuario A obtiene un registro de la base de datos.
El usuario B obtiene el mismo registro de la base de datos, lo modifica y
devuelve a la base de datos el registro actualizado.
El usuario A modifica el registro "antiguo" y lo devuelve a la base de
datos.
En el escenario anterior, los cambios que realiz el usuario B no los ve
nunca el usuario A. Asegrese de que esta situacin sea aceptable si
tiene previsto usar el planteamiento "el ltimo gana" del control de
concurrencia.
TRANSACCIONES
Hasta ahora el modelo de operacin en la BD ha sido o de consultas, o
de modicaciones a la BD.
Hemos siempre supuesto que las acciones se ejecutan una a la vez y
que cada una se lleva a cabo completamente
Hemos supuesto que ni el software ni el hardware pueden fallar en el
intertanto de una operacin.
La vida real es muchsimo ms compleja...
No solo el hardware o el software pueden fallar dejando a la BD en un
estado inexplicable a partir de operaciones.
El sistema de base de datos normalmente est siendo accedido
simultneamente por muchos usuarios tanto para hacer consultas como
actualizaciones.
ATOMICIDAD
Supongamos que tenemos una aplicacin bancaria y un procedimiento
para transferir fondos entre las cuentas
A1 y A2:
1. Se verica que A1 tenga suciente dinero.
2. Se aumenta el saldo de A2 en el monto especicado.
3. Se disminuye el saldo de A1 en el monto especicado.
Supongamos que el sistema falla justo antes de comenzar a ejecutar la
lnea 3.
La BD queda en un estado indeseable (al menos para el banco).
En el ejemplo anterior nos gustara que las operaciones se ejecutaran
todas o que ninguna de ellas se ejecutara.
La ejecucin de una operacin es atmica si el estado de la BD luego de
la operacin es como si todos sus componentes se hubiesen ejecutado o
como si ninguno de ellos lo hubiese hecho.
TRANSACCIONES
Los problemas de serializacin y atomicidad pueden ser resueltos
usando transacciones.
Una transaccin est compuesta por un grupo de instrucciones de SQL
que se ejecutan atmicamente (se ejecutan todas o ninguna).
TRANSACCIONES ABORTADAS
Una transaccin puede no llegar a su trmino debido a muchas razones:
situacin excepcional detectada que hace que el programa no pueda
continuar:
1.
2.
3.
4.
5.
6.