Você está na página 1de 12

UNIVERSIDAD CAPITAN GENERAL GERARDO BARRIOS

CIENCIA Y TECNOLOGIA

BASE DE DATOS I

DOCENTE: CARLOS SIBRIAN

TEMA: TRANSACCIONES (BASE DE DATOS)

INTEGRANTES: CAROLINA ELIZABETH CRUZ PINEDA KATYA BEATRIZ CRUZ PINEDA

SABADO 9 DE JUNIO DE 2012

Introduccin

En el presente reporte damos a conocer las funciones, transacciones de base de datos

definiciones y tipos

de

como tambin mostrar de qu manera funcionan las

sentencias y propiedades de una base de datos de transaccin, por lo cual presentaremos un breve ejemplo de un programa de transaccin el cual se denomina transaccin de remesa familiar, cuyo programa ha sido creado por quienes conforman el grupo Por lo tanto esperamos su comprensin de la mejor manera. Los temas a destacar son los siguientes: Qu es transaccin? Ejemplo Propiedades Tipos de transacciones Instrucciones SQL Cundo inicia y finaliza una transaccin? Ventajas de sentencias begin, commit y rollback entre otros.

Objetivo General

Comprender el manejo de procesos en una base de datos de transaccin, creada en el gestor de base de datos SQL.

Objetivo especficos

Mostrar las posibles fallas que se pueden presentar en una transaccin y su resultado final.

Denominar las ventajas de una transaccin de base de datos como tambin las sentencias e instrucciones a aplicar.

Transacciones
Una transaccin es una interaccin con una estructura de datos compleja, compuesta por varios procesos que se han de aplicar uno despus del otro. La transaccin debe realizarse de una sola vez y sin que la estructura a medio manipular pueda ser alcanzada por el resto del sistema hasta que se hayan finalizado todos sus procesos. Ejemplo La transferencia de fondos entre dos cuentas corrientes de un banco. Si queremos transferir, supongamos 5000 de la cuenta corriente de A y B y las cuentas tienen, respectivamente, 20000 y 0 de saldo los pasos lgicos seran: 1. Comprobar si en la cuenta A hay dinero suficiente. 2. Restar 5000 de la cuenta de A, con lo que su saldo pasa a ser de 15000. 3. Sumar 5000 a la cuenta de B, con lo que los saldos quedan A= 15000 y B= 5000 Ahora bien, si entre el paso 2 y el 3 el sistema sufre una parada o error inesperado las cuentas quedaran como A= 15000 y B= 0 con lo cual se han volatilizado 5000 y presumiblemente ni A ni B estarn contentos, y hubiesen preferido que la transaccin nunca hubiese sido iniciada. Este ejemplo ilustra por qu las transacciones tienen un comportamiento deseado de Todo o nada, o se realiza completamente o no debe tener ningn efecto.

Propiedades
Las transacciones deben cumplir cuatro propiedades ACID: 1. Atomicidad (Atomicity): 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.

2. Consistencia (Consistency): es la propiedad que asegura que slo se empieza aquello que se puede acabar. Por lo tanto, se ejecutan aquellas operaciones que no van a romper la reglas y directrices de integridad de la base de datos. 3. Aislamiento (Isolation): 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 nunca generar ningn tipo de error. 4. Permanencia (Durability): es la propiedad que asegura que una vez realizada la operacin, sta persistir y no se podr deshacer aunque falle el sistema.

La atomicidad frente a fallos se suele implementar con mecanismos de journaling, y la proteccin frente a accesos concurrentes mediante bloqueos en las estructuras afectadas. La serialibilidad viene garantizada por la atomicidad. La permanencia se suele implementar forzando a los perifricos encargados de almacenar los cambios a confirmar la completa y definitiva transmisin de los datos al medio (generalmente, el disco). La forma algortmica que suelen tener las transacciones es la siguiente:

Iniciar transaccin (lista de recursos a bloquear) Ejecucin de las operaciones individuales. If (todo_ok){ Aplicar cambios } Else { Cancelar cambios }

En cualquier momento, el programa podra decidir que es necesario hacer fallar la transaccin, con lo que el sistema deber revertir todos los cambios hechos por operacin ya hechas en SQL se le denomina: COMMIT aplicar cambios y ROLLBACK cancelar cambios. Una transaccin explcita es aquella en la que se definen explcitamente el inicio y el

final de la transaccin. Se pueden especificar mediante instrucciones SQL o funciones API de la base de datos.

Instrucciones SQL
Con SQL Server Management Studio se pueden utilizar las siguientes instrucciones SQL para definir transacciones explcitas:

BEGIN Marca el punto de inicio de una transaccin explcita para una conexin.

COMMIT Finaliza correctamente una transaccin si no se han encontrado errores. Todos los datos modificados por la transaccin se convierten en parte permanente de la base de datos. Se liberan los recursos ocupados por la transaccin.

ROLLBACK Borra una transaccin en la que se han encontrado errores. Todos los datos modificados por la transaccin vuelven al estado en el que estaban al inicio de la transaccin. Se liberan los recursos ocupados por la transaccin. Transacciones de base de datos Las transacciones proporcionan mayor flexibilidad y control cuando los datos cambian y ello asegura la consistencia de los datos en el caso de un fallo en el proceso del usuario o del sistema. Las transacciones consisten de sentencias DML que componen un cambio consistente en los datos. Por ejemplo, una transferencia de fondos entre dos cuentas debe incluir el debito de una cuenta y el crdito a otra cuenta en la misma cantidad. En su conjunto ambas acciones deben fallar o triunfar; el crdito no se debe cometer sin el dbito.

Cundo inicia y finaliza una transaccin? Una transaccin inicia cuando la primera sentencia DML es encontrada y finaliza cuando ocurre alguno de los siguientes puntos: Una sentencia COMMIT o ROLLBACK es usada Una sentencia DDL, como CREATE es utilizada Una sentencia DCL es usada El usuario sale de iSQL*Plus Una computadora falla o el sistema falla

Despus de que una transaccin finaliza, la siguiente sentencia SQL ejecutada automticamente inicia la siguiente transaccin. Una sentencia DDL o DCL es automticamente completada y por consiguiente implcitamente finaliza una transaccin.

Ventajas de las sentencias COMMIT y ROLLBACK


Asegurar la consistencia de datos Ver previamente los cambios de los datos antes de hacerlos permanentes Agrupar operaciones lgicamente relacionadas

Control explicito del control de transacciones


Se puede controlar la lgica de transacciones con el uso de las sentencias COMMIT, SAVEPOINT y ROLLBACK.

Fallas en el sistema
Cuando una transaccin es interrumpida por que el sistema falla, la transaccin entera es automticamente deshecha. Esto previene errores por causas no deseadas en el cambio de los datos y regresa las tablas de su estado al estado del ltimo commit. De esta manera, el servidor de Oracle protege la integridad de las tablas. Desde iSQL*Plus, una salida normal de una sesin es lograda oprimiendo el botn Exit. Con SQL*Plus, una salida normal es lograda escribiendo el comando EXIT en la lnea de comandos. Cerrar la ventana es interpretado como una salida anormal.

Cometiendo cambios (committing)


Cada dato que cambia durante la transaccin es temporal hasta que la transaccin es cometida (committed). El estado de los datos antes de usar las sentencias COMMIT o ROLLBACK es:

Las operaciones de manipulacin de datos afectan en primera instancia el buffer de la base de datos; por lo tanto, el estado previo de los datos se puede recuperar.

El usuario actual puede revisar los resultados de las operaciones de manipulacin de datos para consultar las tablas con el uso de la sentencia SELECT.

Otros usuarios no pueden ver los resultados de las operaciones de manipulacin de datos hechas por el usuario actual. El servidor de Oracle establece la consistencia para asegurar que cada usuario vea los datos como existieron desde el ltimo commit.

Las filas afectadas son bloqueadas; otros usuarios no pueden cambiar los datos de las filas afectadas. Haga permanentes todos los cambios pendientes con el uso de la sentencia COMMIT. Despus de una sentencia COMMIT:

Los cambios de datos son escritos en la base de datos El estado previo de los datos es perdido permanentemente Todos los usuarios pueden ver los resultados de la transaccin Los bloqueos en las filas afectadas son liberados; las filas son ahora disponibles para que otros usuarios realicen nuevos cambios a los datos Todos los savepoints son borrados.

Ejemplo Remueva los departamentos 290 y 300 de la tabla DEPARTMENTS, y actualice una fila en la tabla COPY_EMP. Haga todos los cambios permanentes.

Sentencia de Nivel ROLLBACK

La parte de una transaccin puede ser excluida con un ROLLBACK implcito si en la ejecucin de una sentencia es detectado un error. Si una sola sentencia DML falla durante la ejecucin en una transaccin, su efecto es deshacer por medio de una sentencia de nivel ROLLBACK, pero los cambios hechos por las anteriores sentencias DML en la transaccin no son deshechos. Ellos pueden ser cometidos o deshechos explcitamente por el usuario. Oracle utiliza un commit implcito antes y despus de cualquier sentencia DDL. As, incluso si la sentencia DDL no se ejecuta correctamente, no se puede deshacer la sentencia previa puesto que el servidor a usado un commit. Termine sus transacciones explcitamente con la ejecucin de sentencias COMMIT y ROLLBACK.

Conclusin

En esta investigacin concluimos en lo importante que es conocer y comprender los procesos de los cuales est compuesta una transaccin que se aplican por secuencias y las propiedades que esta cumple, de igual manera comprender las sentencias e instrucciones que se aplican en una base de datos creada en SQL cmo y cuando se deben utilizar.

Você também pode gostar