Академический Документы
Профессиональный Документы
Культура Документы
Manejo de Transacciones
Jorge Pérez Rojas
Universidad de Talca, II Semestre 2006
Bases de Datos – Transacciones 2
Transacciones
Transacciones (cont.)
Serialización
Serialización (cont.)
P1 P2
P1 llama al procedimiento
P2 llama al procedimiento
Se encuentra asiento 10 libre
Se encuentra asiento 10 libre
Se marca 10 ocupado
Se marca 10 ocupado
Se asigna 10 a P1
Se asigna 10 a P2
Ambos pasajeros quedan con el mismo asiento asignado, la BD queda
en un estado indeseable.
Bases de Datos – Transacciones 6
Serialización (cont.)
Atomicidad
Atomicidad (cont.)
Transacciones
Transacciones (cont.)
Transacciones – Ejemplo
Transacciones Abortadas
Transacciones (cont.)
Nivel Serializable
Niveles de Aislamiento
Control de Concurrencia
Un lock es una estructura que sólo puede ser adquirida por una
hebra de ejecución (thread) a la vez.
Si dos ejecuciones tratan de obtener un lock para actualizar una
tabla, la primera que trate de obtenerlo tendrá acceso exclusivo a
la tabla, la segunda debe esperar a que la primera lo suelte para
obtener el acceso.
Los locks pueden tener distintas granularidades: Base de Datos,
Tabla, Tupla, Atributo.
Además de los locks exclusivos existen locks de sólo lectura o
locks compartidos que pueden estar simultáneamente siendo
utilizados por distintas ejecuciones.
Bases de Datos – Transacciones 27
Transacciones en SQLServer
begin transaction t
update empleado ...
save transaction s
update departamento ...
select ... from empleado ...
rollback transaction s
commit transaction t
Sólo el primer update se hace efectivo en la BD.
Bases de Datos – Transacciones 29