Vous êtes sur la page 1sur 11

Repblica Bolivariana De Venezuela

Ministerio del Poder Popular para la Defensa


Universidad Nacional Experimental Politcnica
De la Fuerza Armada Nacional
UNEFA








BACHILLER:
Isaac Gil.
Amlcar Castillo.
Jess Pea.
Cesar Jimnez.
Eduard Escobar.
Jos Silva.
Seccin: 8m1IS.
Sistemas Avanzados de Base de Datos



Barquisimeto, 25 de Marzo del 2014
Transaccin:
Definicin:
Una transaccin es un conjunto de operaciones que van a ser tratadas como
una nica unidad. Estas transacciones deben cumplir 4 propiedades fundamentales
comnmente conocidas como ACID (atomicidad, coherencia, aislamiento y
durabilidad).
Una transaccin es una unidad de la ejecucin de un Programa que accede y
posiblemente actualiza varios elementos de datos. Una transaccin se inicia por la
ejecucin de un programa de usuario escrito en un lenguaje de manipulacin de datos
de alto nivel o en un lenguaje de programacin (por ejemplo SQL, COBOL, C, C++ o
Java), y est delimitado por instrucciones (o llamadas a funcin) de la forma inicio
transaccin y fin transaccin. La transaccin consiste en todas las operaciones que se
ejecutan entre inicio transaccin y el fin transaccin.
La transaccin ms simple en SQL Server es una nica sentencia SQL.
Por ejemplo una sentencia como esta:
UPDATE Products SET UnitPrice=20 WHERE ProductName =Chai
Es una transaccin.
Esta es una transaccin autocommit, una transaccin autocompletada.
Cuando enviamos esta sentencia al SQL Server se escribe en el fichero de
transacciones lo que va a ocurrir y a continuacin realiza los cambios necesarios en la
base de datos. Si hay algn tipo de problema al hacer esta operacin el SQL Server
puede leer en el fichero de transacciones lo que se estaba haciendo y si es necesario
puede devolver la base de datos al estado en el que se encontraba antes de recibir la
sentencia.
Por supuesto este tipo de transacciones no requieren de nuestra intervencin
puesto que el sistema se encarga de todo. Sin embargo si hay que realizar varias
operaciones y queremos que sean tratadas como una unidad tenemos que crear esas
transacciones de manera explcita.
Propiedades de las transacciones
Atomicidad:
Es la propiedad que asegura que la operacin se ha realizado o no, y por lo
tanto ante un fallo del sistema no puede quedar a medias. Se dice que una operacin
es atmica cuando es imposible para otra parte de un sistema encontrar pasos
intermedios. Si esta operacin consiste en una serie de pasos, todos ellos ocurren o
ninguno.
Por ejemplo;
Cuando realizamos una transaccin bancaria, es decir, en el momento en que
estoy cancelando con mi tarjeta de dbito me descuentan el monto a cancelar y se
reduce mi saldo anterior; en el caso que falle la transaccin no se reduce nada de mi
saldo actual. Por lo tanto aunque se tenga el mismo objetivo no se ejecutara ya que se
tiene que cumplir o no se cumple.
Consistencia:
Esta propiedad establece que solo los valores o datos vlidos sern escritos en
la base de datos; si por algn motivo una transaccin que es ejecutada viola esta
propiedad, se aplicar un rollback a toda transaccin dejando a las bases de datos en
su estado de consistencia anterior. En caso de que la transaccin sea ejecutada con
xito, la base de datos pasar de su estado de consistencia anterior a un nuevo estado
de consistencia
Por ejemplo;
Al desarrollar una aplicacin que transfiere dinero de una cuenta a otra, hay
una operacin de dbito que ocurre en la cuenta fuente y una operacin de crdito que
ocurre en la cuenta destino. La transaccin tiene lo siguiente dos pasos: Paso 1:
Debitar de la cuenta fuente. Paso 2: Acreditar a la cuenta destino. Si la transaccin
falla despus de paso 1, una inconsistencia de datos ocurre debido a que la cantidad
es debitada de la cuenta fuente, pero no se acredita en la cuenta destino. Para
asegurarse de que se mantiene la consistencia de datos, el SMBD (sistema manejador
de base de datos) cancela la operacin de dbito, y se ejecuta una restitucin
(ROLLBACK) de la transaccin para obtener el estado consistente inicial.
Aislamiento:
Es la propiedad que asegura que una operacin no puede afectar a otras. Esto
asegura que la realizacin de dos transacciones sobre la misma informacin sean
independientes y no generen ningn tipo de error. Esta propiedad define cmo y
cundo los cambios producidos por una operacin se hacen visibles para las dems
operaciones concurrentes.
Por ejemplo;
El telfono es un medio de comunicacin que puedes llamar a un apersona y
puedes mandar mensajes de texto a una persona. Si llamas no puedes mandar
mensajes de texto y si mandas un texto no puedes llamar por lo que logro aislar las
dos funciones una de la otra.
Durabilidad:
Es la propiedad de las transacciones que asegura que una vez finalizada su
ejecucin, sus resultados son permanentes a pesar de otras consecuencias, como por
ejemplo, si falla el disco duro el sistema an ser capaz de recordar todas las
transacciones que han sido realizadas en el sistema.
Por ejemplo;
En medio de una transaccin de depsito tiene xito, el sistema garantiza que
persistan sus actualizaciones, incluso que se valla la luz inmediatamente despus de
una ejecucin exitosa deben persistir.

Estados de las transacciones:
Una transaccin de este tipo se denomina abortada. Si se pretende asegurar la
propiedad de atomicidad, una transaccin abortada no debe tener efecto sobre el
estado de la base de datos. As, cualquier cambio que haya hecho la transaccin
abortada sobre la base de datos debe deshacerse. Una vez que se han deshecho los
cambios efectuados por la transaccin abortada, se dice que la transaccin se ha
retrocedido.
Parte de la responsabilidad del esquema de recuperaciones es gestionar las
transacciones abortadas.
Una transaccin que termina con xito se dice que est comprometida
(commited), una transaccin que haya sido comprometida llevar a la base de datos a
un nuevo estado consistente que debe permanecer incluso si hay un fallo en el
sistema.
Cuando una transaccin se ha comprometido no se pueden deshacer sus efectos
abortndola. La nica forma de deshacer los cambios de una transaccin
comprometida es ejecutando una transaccin compensadora.
Por ejemplo, si una transaccin aade 20E a una cuenta, la transaccin
compensadora debera restar 20E de la cuenta. Sin embargo, no siempre se puede
crear dicha transaccin compensadora. Por tanto, se deja al usuario la responsabilidad
de crear y ejecutar transacciones compensadoras, y no la gestiona el sistema de base
de datos.
Es necesario precisar qu se entiende por terminacin con xito de una
transaccin. Se establece por tanto un modelo simple abstracto de transaccin.
En cualquier momento una transaccin slo puede estar en uno de los siguientes
estados.
Activa (Active): el estado inicial; la transaccin permanece en este estado
durante su ejecucin.
Parcialmente comprometida (Uncommited): Despus de ejecutarse la
ltima transaccin.
Fallida (Failed): tras descubrir que no se puede continuar la ejecucin
normal.
Abortada (Rolled Back): despus de haber retrocedido la transaccin y
restablecido la base de datos a su estado anterior al comienzo de la
transaccin.
Comprometida (Commited): tras completarse con xito.


Inicio de transaccin
Cuando no hay ya una transaccin en progreso, y se ejecuta una sentencia LDD o
LMD (interactivamente o dentro de una aplicacin) Cada sentencia LDD es tratada
como una transaccin N No existe sentencia de tipo BEGIN TRANSACTION
Fin de 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. Su sintaxis es la siguiente:
COMMIT COMMENT 'mensaje' | FORCE 'texto']
COMMENT sirve para comentar la transaccin en un mximo 255 caracteres.
FORCE fuera de modo manual una transaccin dudosa y es de uso exclusivo en
sistemas distribuidos de base de datos.

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. Su sintaxis es la siguiente
SAVEPOINT nombrePuntoRestauracin;
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. Su sintaxis es la siguiente:
ROLLBACK [WORK] [TO SAVEPOINT nombrePuntoRestauracin | FORCE
'texto'];
Una transaccin se dice que ha terminado si se ha comprometido o bien se ha
abortado.
Una transaccin comienza en el estado activa. Cuando acaba su ltima instruccin
pasa al estado de parcialmente comprometida. En este punto la transaccin ha
terminado su ejecucin, pero es posible que an tenga que ser abortada, puesto que
los datos actuals pueden estar todava en la memoria principal y puede producirse un
fallo en el hardware antes de que se complete con xito.
El sistema de base de datos escribe en disco la informacin suficiente para que,
incluso al producirse un fallo, puedan reproducirse los cambios hechos por la
transaccin al reiniciar el sistema tras el fallo. Cuando se termina de escribir esta
informacin, la transaccin pasa al estado comprometida.
Una transaccin llega al estado fallida despus de que el sistema determine que dicha
transaccin no puede continuar su ejecucin normal (por ejemplo, a causa de errores
de hardware o lgicos). Una transaccin de este tipo se debe retroceder. Despus pasa
al estado abortada.
En este punto, el sistema tiene dos opciones:
Reiniciar la transaccin, pero slo si la transaccin se ha abortado a causa de
algn error hardware o software que no lo haya provocado la lgica interna de
la transaccin. Una transaccin reiniciada se considera una nueva transaccin.
Cancelar la transaccin. Normalmente se hace esto si hay algn error interno
lgico que slo se puede corregir escribiendo de nuevo el programa de
aplicacin, o debido a una entrada incorrecta o debido a que no se han
encontrado los datos deseados en la base de datos.













Bibliografas
Transacciones: Propiedades
http://csrg.inf.utfsm.cl/~jfuentes/_build/html/lectures/week7/lecture26.html
Base de datos propiedades ACID
http://www.slideshare.net/jeferp/base-de-datos-propiedades-acid-15202600
Ejemplos ACID
http://www.slideshare.net/jeferp/ejemplos-acid
Definiciones ACID
http://es.wikipedia.org/wiki/ACID
Propiedades de la Transaccin
http://www.prograweb.com.mx/tallerBD/0502Propiedades.html
Transacciones en SQL Server
http://www.monografias.com/trabajos16/transacciones/transacciones.shtml

Vous aimerez peut-être aussi