Unidad4 control de transiciones

Solo disponible en BuenasTareas
  • Páginas : 10 (2269 palabras )
  • Descarga(s) : 0
  • Publicado : 29 de noviembre de 2011
Leer documento completo
Vista previa del texto
UNIDAD IV - Control de Transacciones. 4.1 Propiedades de la transacción. 4.2 Grados de consistencia. 4.3 Niveles de aislamiento. 4.4 Instrucciones COMMIT y ROLLBACK . Una transacción es un conjunto de operaciones que se ejecutan en una base de datos, y que son tratadas como una única unidad lógica por el SGBD. Es decir, una transacción es una o varias sentencias SQL que se ejecutan en una base dedatos como una única operación, confirmándose o deshaciéndose en grupo. No todas las operaciones SQL son transaccionales. Sólo son transaccionales las operaciones correspondientes al DML, es decir, sentencias SELECT, INSERT, UPDATE y DELETE Para confirmar una transacción se utiliza la sentencia COMMIT. Cuando realizamos COMMIT los cambios se escriben en la base de datos. Para deshacer unatransacción se utiliza la sentencia ROLLBACK. Cuando realizamos ROLLBACK se deshacen todas las modificaciones realizadas por la transacción en la base de datos, quedando la base de datos en el mismo estado que antes de iniciarse la transacción. Un ejemplo clásico de transacción son las transferencias bancarias. Para realizar una transferencia de dinero entre dos cuentas bancarias debemos descontar eldinero de una cuenta, realizar el ingreso en la otra cuenta y grabar las operaciones y movimientos necesarios, actualizar los saldos....Si en alguno de estos puntos se produce un fallo en el sistema podríamos hacer descontado el dinero de una de las cuentas y no haberlo ingresado en la otra. Por lo tanto, todas estas operaciones deben ser correctas o fallar todas. En estos casos, al confirmar latransacción (COMMIT) o al deshacerla (ROLLBACK) garantizamos que todos los datos quedan en un estado consistente. En una transacción los datos modificados no son visibles por el resto de usuarios hasta que se confirme la transacción.

El siguiente ejemplo muestra una supuesta transacción bancaria: DECLARE importe NUMBER; ctaOrigen VARCHAR2(23); ctaDestino VARCHAR2(23); BEGIN importe := 100;ctaOrigen := '2530 10 2000 1234567890'; ctaDestino := '2532 10 2010 0987654321'; UPDATE CUENTAS SET SALDO = SALDO - importe WHERE CUENTA = ctaOrigen; UPDATE CUENTAS SET SALDO = SALDO + importe WHERE CUENTA = ctaDestino; INSERT INTO MOVIMIENTOS (CUENTA_ORIGEN, CUENTA_DESTINO,IMPORTE, FECHA_MOVIMIENTO) VALUES (ctaOrigen, ctaDestino, importe*(-1), SYSDATE); INSERT INTO MOVIMIENTOS (CUENTA_ORIGEN,CUENTA_DESTINO,IMPORTE, FECHA_MOVIMIENTO) VALUES (ctaDestino,ctaOrigen, importe, SYSDATE); COMMIT; EXCEPTION WHEN OTHERS THEN dbms_output.put_line('Error en la transaccion:'||SQLERRM); dbms_output.put_line('Se deshacen las modificaciones); ROLLBACK; END;

4.1 Propiedades de la transacción. Una transacción debe reunir cuatro requisitos para poder considerarla válida. Estos requisitos se conocen comopropiedades ACID. «ACID» es un acrónimo de atomicidad, consistencia, aislamiento (isolation) y durabilidad. SQL Server ofrece mecanismos para ayudar a asegurar que una transacción cumpla todos estos requisitos. Atomicidad SQL Server asegura que todas las modificaciones de datos de una transacción se completen como un grupo si la transacción tiene éxito o que no se lleve a cabo ninguna de ellas si no lotiene en otras palabras, SQL Server asegura la atomicidad de las transacciones. La transacción debe llevarse a cabo como si fuera una unidad atómica de ahí el término «atomicidad». Para que una transacción tenga éxito, cada paso (o instrucción) de la transacción debe tener éxito. Si uno de los pasos falla, falla toda la transacción y cualquier modificación efectuada desde su comienzo se deshace.SQL Server proporciona un mecanismo de administración de transacciones que lleva a cabo de manera automática la tarea de determinar si una transacción ha tenido éxito o ha fracasado y deshace todas las modificaciones de los datos, según sea necesario, en el caso de fracaso.

Consistencia SQL Server también asegura la consistencia de las transacciones. Consistencia significa que todos los datos...
tracking img