You are on page 1of 5

Transacciones en BD

La transaccin es una conjunto de instrucciones la cual tiene que realizar todas sus instrucciones o ninguna de ellas, teniendo esta definicin tambin se puede decir que la transaccin es una unidad lgica de trabajo.

Cada transaccin debe tener las propiedades ACID. Ahora Cuales son estas propiedades ACID? Propiedades ACID Propiedad Atomicidad Descripcin La transaccin es realizada completamente o no realiza ninguna accin. No puede realizar solamente mitad o parte de la transaccin. Solo son ejecutadas aquellas transacciones que no tiene conflicto con las reglas y directrices de integridad de la base de datos. Si hay dos o ms transacciones que en un mismo tiempo desean realizar cambio a una misma informacin, el sistema garantiza que cada transaccin ignora al resto de las transacciones es decir que cada una se maneja de forma independiente para no generar errores. Cuando una transaccin es exitosa los cambios hechos por la transaccin permanecen en el sistema y no se pueden deshacer aunque falle el sistema.

Consistencia

Aislamiento

Durabilidad

Regularmente las transacciones comienzan con un BEGIN WORK y finalizan con un COMMIT/COMMIT WORK o ROLLBACK/ROLLBACK WORK.

Desde el punto de vista del usuario la interaccin con la base de datos se lleva a cabo mediante operaciones con significado en el modelo semntico (por ejemplo, una transferencia de fondos en un banco). Desde el punto de vista de la base de datos estas operaciones pueden estar formadas por varias operaciones elementales (por ejemplo, quitar fondos de una cuenta y aadrselos a otra) Se llama Transaccin a una coleccin de operaciones que forman una unidad lgica de trabajo en una BD realizada por una o ms sentencias SQL estrechamente relacionadas. Una transaccin es una unidad de la ejecucin de un programa que lee y escribe datos a y desde la Base de Datos. Puede consistir en varias operaciones de acceso a la base de datos. Una Transaccin est delimitada por instrucciones de inicio transaccin y fin transaccin (la transaccin consiste en todas las operaciones que se ejecutan entre inicio transaccin y fin transaccin). El concepto de transaccin se desarroll para atender los casos en los que el estado resultante de la base de datos depende del xito completo en una serie de operaciones. Este concepto vio la luz debido a que varias operaciones sucesivas pueden modificar el resultado de operaciones anteriores. En esos casos, si alguna operacin produce un error, el estado resultante puede ser indeterminado. Para solucionar este problema, las transacciones agrupan una serie de operaciones de manera que es posible garantizar la integridad del resultado final. O todas las operaciones se ejecutan con xito y se confirman (se escriben en la base de datos), o toda la transaccin se considera no realizada. La accin de cancelar una transaccin se denomina deshacer la transaccin. Deshacer una transaccin permite anular los cambios y recuperar el estado de la base de datos previo a la transaccin. Por ejemplo, en una transaccin bancaria automatizada, si un banco transfiere dinero desde la cuenta A a la cuenta B, la retirada de fondos de A y el depsito en B deben producirse con xito para procesar los fondos correctamente, de lo contrario la transaccin entera debe cancelarse. Esquematizando el proceso de transacciones tenemos: O se ejecutan todas las operaciones que componen la transaccin, o no se realiza ninguna.

En SQL xito
Begin transacction Instruccin 1 Instruccin 2 ... Commit work End transacction

Fracaso
Begin transacction Instruccin 1 Instruccin 2 ... Rollback work End transacction

Propiedades de la Transaccin

Una unidad lgica de trabajo debe exhibir cuatro propiedades, conocidas como propiedades ACID (atomicidad, coherencia, aislamiento y durabilidad), para ser calificada como transaccin.

Atomicity : Una Transaccin (Tx) se ejecuta completamente de otra manera se eliminan los cambios parciales realizados. Begin Transaction - Programa - End Transaction Responsable: El mtodo de recuperacin, de no completar todas las operaciones, devuelve la BD a su estado anterior a empezar esa Tx (rollback).

Coherencia: Asegura que los datos que observamos no cambian (por otros usuarios) hasta que acabemos la Transaccin. Despus de terminar una Transaccin la Base de datos no viola ninguna de sus reglas: valores obligatorios, claves nicas,etc. Responsable: los programadores mediante la definicin adecuada de la integridad referencial: check, triggers, primary key, foreign key.

Aislamiento: Los efectos de una Tx no son visibles a otros usuarios mientras no se confirmen. Una Transaccin en ejecucin no puede revelar sus resultados a otras transacciones concurrentes antes de finalizar. Ms aun, si varias transacciones, se ejecutan concurrentemente, los resultados deben ser los mismos que si ellas se hubieran ejecutado secuencialmente. Esto se conoce como seriabilidad debido a que su resultado es la capacidad de volver a cargar los datos iniciales y reproducir una serie de transacciones para finalizar con los datos en el mismo estado en que estaban despus de realizar transacciones originales.d Responsable: el mtodo de concurrencia: mecanismos, reglas, protocolos

Durabilidad: Si el sistema falla no debe permitir que se pierdan las operaciones realizadas por Tx ya confirmadas. Responsable: el mtodo o gestor de recuperacin.

Estados y operaciones de una transaccin

COMMIT: Finaliza la transaccin actual y hace permanentes (confirma) los cambios realizados ROLLBACK: Finaliza la transaccin actual y deshace los cambios realizados

Sentencia COMMIT Una sentencia COMMIT marca el final de una transaccin correcta, implcita o definida por el usuario. COMMIT hace que todas las modificaciones efectuadas sobre los datos desde el inicio de la transaccin sean parte permanente de la base de datos, y adems, libera los recursos mantenidos por la conexin.

Sentencia SAVEPOINT Esta sentencia permite crear un punto de restauracin dentro de una transaccin, es decir, un punto al que podremos retroceder deshaciendo todo lo hecho deshaciendo todo lo hecho desde l en adelante. Sentencia ROLLBACK Seala el final sin xito de una transaccin, elimina todas las modificaciones de datos realizadas desde el inicio de la transaccin y tambin libera los recursos que retiene la transaccin.

Que son las transacciones Cules son las caractersticas acid y describe cada una Que hace comit , roll back , savepoint

You might also like