P. 1
Control de Transacciones

Control de Transacciones

|Views: 0|Likes:
Published by Danna Garciia

More info:

Published by: Danna Garciia on Sep 03, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PPT, PDF, TXT or read online from Scribd
See more
See less

08/25/2014

pdf

text

original

Control de Transacciones

Propiedades de la transacción

ordenar la compra de un producto usando un catálogo en Internet. usualmente en representación de un usuario y que preserva la consistencia del sistema. .PROPIEDADES DE LA TRANSACCIÓN Una transacción puede ser definida como la ejecución de una colección de acciones que realiza una función administrativa accesando a una base de datos compartida transformando los estados de ésta. etc. Por ejemplo. verificar el saldo de una tarjeta de crédito. reservar o comprar un pasaje aéreo. bajar un video clip.

Aislamiento: Una transacción en ejecución no puede revelar sus resultados a otras transacciones concurrentes antes de finalizar. Por lo tanto. . si varias transacciones se ejecutan concurrentemente. Más aún. Debido a esto. los resultados deben ser los mismos que si ellas se hubieran ejecutado de manera secuencial. sus resultados parciales sean anulados. En otras palabras. una transacción es un programa correcto que lleva a la base de datos de un estado consistente a otro con la misma característica. las transacciones no violan las restricciones de integridad de una base de datos.LAS PROPIEDADES FUNDAMENTALES DE UNA TRANSACCIÓN SON LAS SIGUIENTES : Atomicidad: Se refiere al hecho de que una transacción se trata como una unidad de operación. o todas las acciones de la transacción se realizan o ninguna de ellas se lleva a cabo. Consistencia: La consistencia de una transacción es simplemente su correctitud. La atomicidad requiere que si una transacción se interrumpe por una falla.

el cual trata sobre cómo recuperar la base de datos a un estado consistente donde todas las acciones que han finalizado con éxito queden reflejadas en la base. Esta propiedad motiva el aspecto de recuperación de base de datos.Permanencia: Es la propiedad de las transacciones que asegura que una vez que una transacción finaliza exitosamente. pero en caso de falla no se realiza ninguna. sus resultados son permanentes y no pueden ser borrados de la base de datos por alguna falla posterior. Seriabilidad: Consiste en asegurarse que los cambios siguen un orden adecuado. Por lo tanto. Atomicidad de fallas: Consiste en efectuar todas las transacciones. . los sistemas manejadores de base de datos aseguran que los resultados de una transacción sobrevivirán a fallas del sistema.

el resultado de esta operación no puede ser revelado para otras transacciones. .Aborto de transacciones propio para cada transacción: Es la capacidad que se tiene para abortar el proceso transaccional en cualquier punto. Punto de inicio y terminación: Consiste en especificar un bloque inicial y un punto que termina el fin de ese bloque.

EJEMPLOS DE TRANSACCIONES shell> mysql test Welcome to the MySQL monitor. Query OK. Query OK.00 sec) mysql> INSERT INTO CUSTOMER VALUES (10. INDEX (A)) -> ENGINE=InnoDB. Query OK. Commands end with . 0 rows affected (0.00 sec) mysql> COMMIT.00 sec) mysql> BEGIN. 0 rows affected (0. mysql> CREATE TABLE CUSTOMER (A INT. or \g. Query OK. 'John').' or '\h' for help. 'Heikki').00 sec) mysql> SET AUTOCOMMIT=0. B CHAR (20).50-log Type 'help.00 sec) mysql> INSERT INTO CUSTOMER VALUES (15. 1 row affected (0. Query OK. 0 rows affected (0. 1 row affected (0.00 sec) . Your MySQL connection id is 5 to server version: 3. 0 rows affected (0. Type '\c' to clear the buffer. Query OK.23.

USE NorthWind DECLARE @Error int --Declaramos una variable que utilizaremos para almacenar un posible código de error .00 sec) mysql> OTRO EJEMPLO: Vamos a realizar una transacción que modifica el precio de dos productos de la base de datos. +------+--------+ |A |B | +------+--------+ | 10 | Heikki | +------+--------+ 1 row in set (0.mysql> ROLLBACK. 0 rows affected (0.00 sec) mysql> SELECT * FROM CUSTOMER. Query OK.

pasamos a la segunda UPDATE Products SET UnitPrice=20 WHERE ProductName='Chang' SET @Error=@@ERROR --Y si hay un error hacemos como antes IF (@Error<>0) GOTO TratarError . eso de ahí es un --GOTO. el demonio de los programadores. pero no pasa nada por usarlo --cuando es necesario IF (@Error<>0) GOTO TratarError --Si la primera sentencia se ejecuta con éxito.BEGIN TRAN --Iniciamos la transacción UPDATE Products SET UnitPrice=20 WHERE ProductName ='Chai' --Ejecutamos la primera sentencia SET @Error=@@ERROR --Si ocurre un error almacenamos su código en @Error --y saltamos al trozo de código que deshara la transacción. Si.

Abortamos la transacción' --Se lo comunicamos al usuario y deshacemos la transacción --todo volverá a estar como si nada hubiera ocurrido ROLLBACK TRAN END .--Si llegamos hasta aquí es que los dos UPDATE se han completado con --éxito y podemos "guardar" la transacción en la base de datos COMMIT TRAN TratarError: --Si ha ocurrido algún error llegamos hasta aquí If @@Error<>0 THEN BEGIN PRINT 'Ha ecorrido un error.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->