Vous êtes sur la page 1sur 7

PRCTICA: TRANSACCIONES.

Baynori Vega Diego Rene 09130209 SISTEMAS DISTRIBUIDOS 22/Marzo/2013

Introduccin al tema: Transacciones.

1.-Concepto de transacciones: Dentro de los sistemas distribuidos, hay muchos casos en que una sola comunicacin no resuelve problemas especficos de interaccin entre dos procesos (por ejemplo, un retiro de una cuenta bancaria). La interaccin entre los procesos puede ser una secuencia de comunicaciones y clculos. En estas situaciones, es adecuado operar en base a transacciones. El concepto de transaccin se desarroll en sistemas de manejo de bases de datos para mantener la consistencia de la informacin almacenada. Los mecanismos de transacciones simplifican la construccin de sistemas confiables, y son transparentes para las aplicaciones de usuario (nivel de Sesin en el modelo OSI). En general, el trmino transaccin describe una secuencia de operaciones sobre una o ms bases de datos que transforma un estado consistente del sistema en otro estado consistente. No todos los estados de un sistema son consistentes y, por lo tanto, algunos cambios no son permitidos. Las aseveraciones que describen los cambios permitidos reciben el nombre de restricciones de consistencia. 2.- Caractersticas de las transacciones. Las transacciones deben de cumplir con 4 caractersticas bsicas: Atomicidad: O todo o nada. Es la caracterstica inherente a la transaccin en la que o todas las acciones se efectan exitosamente o ninguna de ellas. Consistencia: El efectuar exitosamente toda la transaccin (commit) los datos involucrados fueron manipulados en forma correcta; o si se revierte (rollback) los datos quedan tal cual como estaban previamente al inicio de la transaccin. Aislamiento: Es inherente la caracterstica de concurrencia o bloqueo; ya que mientras un proceso u objeto utiliza determinados datos, otro proceso u objeto no debe modificarlos. 4. Durabilidad: Una vez efectuada una transaccin, los datos deben persistir o haberse almacenado en forma permanente. Por las siglas de estas caractersticas en ingls resulta la palabra ACID, que significa cido. Por lo que suele llamarse pruebas o caractersticas cidas el que un administrador de transacciones cumpla con ellas.

3.- Tipos de transacciones. Las transacciones pueden clasificarse de varias formas. Por el control de ejecucin, particularmente por la relacin que existe en el tiempo de ejecucin entre una accin y la siguiente dentro de la transaccin, hay transacciones sncronas o asncronas. La situacin ms comn en una transaccin, es que sta dure muy poco tiempo, algunos segundos (3 4 segundos o menos es ideal, pero no una regla); por lo que la diferencia de tiempo entre una accin y la siguiente es una fraccin muy pequea de segundo. Este tiempo de transaccin se denomina sncrona y son las que se tratan en este curso. Una transaccin asncrona es aquella donde existe un tiempo muy prolongado entre una accin y la siguiente dentro de una transaccin. Las plataformas y mecanismos de control de transacciones tradicionales no estn pensados para este tipo de situaciones. El tiempo de diferencia puede variar de varios minutos, horas o das. Para poder soportar transacciones asncronas, se requiere una infraestructura adicional basada en colas o queues de mensajes, tanto de salida como de salida, entre el nodo o computadora cliente y la computadora o nodo servidor. Por la ubicacin de los administradores de recursos involucrados en la transaccin conectados a travs de la red, las transacciones pueden ser locales o distribuidas. La transaccin ser local cuando los administradores de recursos involucrados en cada una de las acciones estn en el mismo nodo o computadora. Realizacin de la prctica de transacciones. 1.- Creacin de la base de datos: Como netbeans cuenta con un fcil motor de base de datos me decid a crearla ah y despus de crearla, agregue una tabla Cuentas con las columnas clave y saldo. 2.- Insertar valores a la tabla: Despus ya creada la tabla con el siguiente comando agregue la clave 100 y 200, ambas con saldo de $1000 INSERT INTO Cuentas Values (100,1000) INSERT INTO Cuentas Values (200,1000)

3.- Realizar transaccin a clave 200: Para simular una transaccin de una cuenta bancaria a otra, utilizamos los siguientes comandos para as, mandar la cantidad de $100 de la cuenta con clave 100 a la cuenta con clave 200. UPDATE Cuentas SET Saldo=Saldo 100 WHERE Clave=100 UPDATE Cuentas SET Saldo=Saldo + 100 WHERE Clave=200

Despus de realizar dicha transaccin podemos observar en la tabla que a la cuenta clave 100 se le resto cierta cantidad y se le agrego a la cuenta clave 200.

4.- Restar de nuevo a cuenta clave 100: Con el fin de simular falta de consistencia en la informacin se producir una falla en la aplicacin rompiendo las propiedades acidad. Esto se realizara restando una cantidad a la cuenta clave 100, pero esa transaccin no se har a nadie. Para dicha transaccin se utiliz de nuevo el siguiente comando: UPDATE Cuentas SET Saldo=Saldo 100 WHERE Clave=100

Como se muestra en la imagen anterior, podemos observar que la cuenta 100 cuenta con menos saldo, pero ese saldo no fue agregado a la cuenta 200. Para que la transaccin se realizara con xito, se ejecut el siguiente cdigo: BEGIN TRANSACTION UPDATE Cuentas SET Saldo=Saldo 100 WHERE Clave=100 UPDATE Cuentas SET Saldo=Saldo + 100 WHERE Clave=200 COMMIT TRANSACTION Con ese cdigo, lo que se haba restado anteriormente y que haba quedado flotando, se agreg con xito a la cuenta 200 sin ser afectada de nuevo la cuenta 100, quedando los saldos de la siguiente manera:

El siguiente paso consta de solo utilizar las primeras 2 lneas del cdigo utilizado anteriormente, obteniendo el siguiente resultado: BEGIN TRANSACTION UPDATE Cuentas SET Saldo=Saldo 100 WHERE Clave=100

Con esas dos lneas se inici la transaccin de la cuenta 100, pero como no tiene las otras dos lneas que sirven para terminar la transaccin desde la cuenta 100 a la 200, simplemente se le resto de nuevo a la cuenta 100, pero el saldo que se rest quedo flotando.

Vous aimerez peut-être aussi