You are on page 1of 14

Transacciones

Unidad de trabajo realizada una o mas sentencias SQL estrechamente relacionadas. Secuencia de operaciones realizadas como una sola unidad lgica de trabajo.

ITESO, Administracin de Bases de Datos.

Transacciones
Cuatro propiedades ACID

Atomicidad Coherencia Aislamiento Durabilidad

ITESO, Administracin de Bases de Datos.

Atomicidad
Unidad atmica de trabajo, tanto si realizan todas las modificaciones en los datos como si no se realiza ninguna de ellas

ITESO, Administracin de Bases de Datos.

Coherencia
Al finalizar la transaccin debe dejar todos los datos en un estado coherente. Se modifican todas las estructuras de datos internas cmo ndices.

ITESO, Administracin de Bases de Datos.

Aislamiento

Las modificaciones realizadas por transacciones simultneas deben aislar de las modificaciones llevadas a cabo por otras transacciones simultneas. Una transaccin ve los datos antes o despus que otra transaccin los modific, pero no ve el estado ITESO, Administracin de Bases intermedio.
de Datos.

Durabilidad
Una vez concluida un transaccin sus efectos son permanentes en el sistema. Sus efectos persisten an en el caso de producirse un error del sistema.

ITESO, Administracin de Bases de Datos.

Ejemplo: Aislamiento
Usuario A saca $100 y usuario B saca $250 de cuenta de usuario Z que tiene un saldo de $1000. Como A y B afectan Z, alguno tiene que esperar a que el otro termine la transaccin para evitar inconsistencias. B espera A , saldo $900 B hace su transaccin saldo $650

ITESO, Administracin de Bases de Datos.

Ejemplo: Durabilidad
Usuario B puede sacar sus $100 solamente despus que la transaccin de A se ha completado. Si el sistema falla antes que se realice la transaccin A, esta no tiene efecto y se regresa al ltimo estado consistente de Z.

ITESO, Administracin de Bases de Datos.

SQL
Los programadores son los responsables de iniciar y finalizar las transacciones en puntos que exijan la coherencia lgica de los datos. El DBMS debe proporcionar los mecanismos que aseguren la integridad fsica de cada transaccin.

ITESO, Administracin de Bases de Datos.

SQL
- Servicio de bloqueo que preservan el aislamiento de una transaccin. - Servicios de registro que aseguran la durabilidad de una transaccin. - Atomicidad, una vez iniciada debe concluirse correctamente o SQL deshar todas las modificaciones de datos desde que inici la transaccin.

ITESO, Administracin de Bases de Datos.

SQL sentencias
Begin transacction T1
UPDATE pedido SET cantidad = 10, importe = 3500 WHERE num_pedido = 30933; UPDATE repventas SET ventas = ventas + 3500 WHERE num_empl = 470 UPDATE oficina SET ventas = ventas + 3500 WHERE num_oficina = 31

UPDATE productos SET existencias = existencias 10 WHERE id_producto = 393984

Commit transaction T1

ITESO, Administracin de Bases de Datos.

SQL sentencias
Begin transacction T2
UPDATE pedido SET cantidad = 10, importe = 3500 WHERE num_pedido = 30933; UPDATE repventas SET ventas = ventas + 3500 WHERE num_empl = 470 UPDATE oficina SET ventas = ventas + 3500 WHERE num_oficina = 31

UPDATE productos SET existencias = existencias 10 WHERE id_producto = 393984

Rollback transaction T2

ITESO, Administracin de Bases de Datos.

SQL con SP
CREATE PROC tranprueba @arg int as BEGIN TRAN IF exists (SELECT * FROM prueba WHERE col1 = @arg) BEGIN RAISERROR('Valor %d ya existe!', 16, -1, @arg) ROLLBACK TRAN END ELSE BEGIN INSERT INTO prueba (col1) values (@arg) COMMIT TRAN END

ITESO, Administracin de Bases de Datos.

Caso
PROCESO DE INSCRIPCIONES EN PERIODO DE ESCUELA
EL COSTO DE INSCRIPCION ES DE 2000.00 DOS MIL PESOS EL ESTUDIANTE QUE YA EXISTE EN UNA BD SE AUTENTIFICA POR INTERNET INDICA QUE QUIERE INSCRIBIRSE Y LA APLICACIN LE GENERA UN MONTO CON CENTAVOS (DOS MIL PESOS Y CENTAVOS). (NO DEBE REPETIRSE EL MONTO PARA CUALQUIER USUARIO QUE ACCEDA CONCURRENTE) - EL MONTO CON CENTAVOS SE REGISTRA EN LA BD, ES LA CANTIADAD QUE EL ESTUDIENTE DEPOSITA Y LA MENERA DE IDENTIFICARLO EN EL ESTADO DE CUENTA PARA INSCRIBIRLO
ITESO, Administracin de Bases de Datos.

You might also like