La transacción es una conjunto de instrucciones la cual tiene que realizar
todas sus instrucciones o ninguna de ellas, teniendo esta definición también se
puede decir que la transacción es una unidad lógica de trabajo.Forma una unica unidad logica de trabajo y es un conjunto de órdenes que se ejecutan formando una unidad de
trabajo, es decir, en forma indivisible o atómica.
Diapositiva 3
Transacciones en SQL
Una transaccion es un conjunto de operaciones que van a ser tratadas como una unica unidad, estas transacciones deben cumpir 4 prioridades fundamentales conmun mente conocidas como ACID (atomacidad, coheencia, asilamiento y durabilidad).Una transccion es una unidad de ejecucion de un programa que accede y posiblemente actualiza varios elementos , una transaccion se inicia por la ejecucion de un programa de usuario en un lenguaje de manipulacion de datos de alto nivel o de programacion.BEGIN TRAN: Especifica que va a empezar una transacción.
COMMIT TRAN: Le indica al motor que puede considerar la transacción
completada con éxito.ROLLBACK TRAN: Indica que
se ha alcanzado un fallo y que debe restablecer la base al punto de integridad
Diapositiva 4
EJEMPLO.
Un ejemplo habitual de transacción es el
traspaso de una cantidad de dinero entre cuentas bancarias. Normalmente se
realiza mediante dos operaciones distintas, una en la que se decrementa el
saldo de la cuenta origen y otra en la que incrementamos el saldo de la cuenta
destino. Para garantizar la integridad del sistema (es decir, para que no
aparezca o desaparezca dinero), las dos operaciones deben ser atómicas, es
decir, el sistema debe garantizar que, bajo cualquier circunstancia (incluso
una caída del sistema), el resultado final es que, o bien se han realizado las
dos operaciones, o bien no se ha realizado ninguna.
Atomicidad: Si una operación consiste en
una serie de pasos, todos ellos ocurren o ninguno, es decir, las transacciones
son completas o todas las operaciones de la transaccion se realizan adecuadamente en la base de datos o ninguna de ellas .Consistencia: Integridad.
Es la propiedad que asegura que sólo se empieza aquello que se puede acabar.
Por lo tanto se ejecutan aquellas operaciones que no van a romper las reglas y
directrices de Integridad de la base de datos. La propiedad de
consistencia sostiene que cualquier transacción llevará a la base de datos
desde un estado válido a otro también válido.Aislamiento: es
la propiedad que asegura que una operación no puede afectar a otras. Esto
asegura que la realización de dos transacciones sobre la misma información sean
independientes y no generen ningún tipo de error. Esta propiedad define
cómo y cuándo los cambios producidos por una operación se hacen visibles para
las demás operaciones concurrentes. Durabilidad: Persistencia.
Es la propiedad que asegura que una vez realizada la operación, ésta persistirá
y no se podrá deshacer aunque falle el sistema y que de esta forma los datos
sobrevivan de alguna manera.
Diapositiva 7
hablaremos mas afondo de Atomicidad....
Atomicidad: Significa
que el sistema permite operaciones atómicas. Una operación atómica es aquella
que si está formada por operaciones más pequeñas, se consideran como un paquete
indivisible. Deben ejecutarse todas correctamente,
o en el caso de que alguna de ellas no pueda hacerlo, el efecto de las que ya
se han ejecutado no debe hacerse notar, debe deshacerse, como si el conjunto de
las operaciones no se hubieran realizado.
La atomicidad está íntimamente ligada al concepto de transacción de los sistemas gestores de bases de datos. En
un SGBD, cuando se indica que un conjunto de operaciones forman una
transacción, o se ejecutan todas correctamente, o el SGBD deshará los cambios,
como si la transacción nunca se hubiera iniciado. No obstante, atomicidad y
transacción no son sinónimos. Mientras atomicidad es una propiedad, la transacción es el mecanismo que utilizan los SGBD para
lograr la atomicidad.
En una transacción atómica, una serie de operaciones en la base
de datos ocurren todas, o no ocurre ninguna. La atomicidad previene que las
actualizaciones a la base ocurren de forma parcial, lo cual podría ocasionar
mayores problemas que rechazar la transacción entera. En otras palabras, la
atomicidad significa indivisibilidad e irreducibilidad.
Usualmente, los sistemas implementan la atomicidad mediante
algún mecanismo que indica qué transacción comenzó y cuál finalizó; o
manteniendo una copia de los datos antes de que ocurran los cambios. Las bases
de datos en general implementan la atomicidad usando algún sistema de logging
para seguir los cambios. El sistema sincroniza los logs a medida que resulta
necesario una vez que los cambios ocurren con éxito. Luego, el sistema de
recuperación de caidas simplemente ignora las entradas incompletas.
En los sistemas de almacenamiento NoSQL con consistencia
eventual, la atomicidad se especifica de forma más débil que en los sistemas
relacionales, y existe sólo para las filas.
Diapositiva 8
Ejemplo de Atomicidad.......
supongamos que justo antes de ejecutar una transaccion TI los valores de la cuenta A y cuenta B son de de 1000 pesos y de 2000 pesos respectivamente.supongase ahora que durante la ejecucion de la transaccion Ti se produce un fallo que impide que dicha transaccion finalice con exito su ejecucion.La informacion de las modificaciones realizadas por la transaccion guardada en un disco es suficiente para permitir a la base de datos reconstruir dicha modificacion cuando el sistema se reinicie des pues del fallo.
Diapositiva 9
Estados...
ACTIVA: el estado inicial la transaccion permanece en este estado durante su ejecucionPARCIALMENTE COMPROMETIDA: despues de ejecutarse la ultima instruccionFALLIDA: tras descubrir que no puede continuar la ejecucion normalABORTADA: despues de haber retrocedido la transaccion y restablecido la base de datos su estado anterior comienza la transaccion COMPROMETIDA: tras completarse con exito
ROLLBACKSi se produce un
error en una transacción o el usuario decide cancelar la transacción, revierta
la transacción. La instrucción ROLLBACK revierte todas las modificaciones
realizadas en la transacción al devolver los datos al estado en que estaban al
inicio de la transacción. La instrucción ROLLBACK también libera los recursos
que mantiene la transacción.COMMIT
Si una transacción
es correcta, confírmela. La instrucción COMMIT garantiza que todas las modificaciones
de la transacción se conviertan en una parte permanente de la base de datos. La
instrucción COMMIT también libera recursos que utiliza la transacción como, por
ejemplo, los bloqueos.SAVEPOINTSAVEPOINT guarda un punto de restauración de
la base de datos,
que luego puede ser retornado usando una sentencia ROLLBACK. Lo que nos cae de perlas si queremos deshacer solo una parte de la transacción y no la transacción completaUtilice el comando SET TRANSACTION para establecer la modalidad de acceso para la transacción actual. El cambio no afectará a ninguna transacción posterior. Si se desea cambiar la modalidad de acceso para todas las transacciones de una sesión, utilice el comando SET SESSION.
Diapositiva 12
HAY 3 TIPOS DE TRANSACCIONES
1.- En las transacciones de recuperacion se accede a los datos para visualizarlos en la pantalla a modo de informe2.- En las transacciones de actualizacion se inserta, borran o actualizan datos de la base3.- En las transacciones mixtas se mezclan operaciones de recuperacion de datos y de actualizacion