ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Transacciones De La Base De Datos


Enviado por   •  18 de Febrero de 2013  •  1.451 Palabras (6 Páginas)  •  631 Visitas

Página 1 de 6

Transacciones de la Base de datos

El servidor de Oracle garantiza la consistencia de los datos con base en

transacciones. 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 crédito a otra cuenta en la

misma cantidad. En su conjunto ambas acciones deben fallar o triunfar; el

crédito no se debe cometer sin el débito.

EL INICIO DE LAS TRANSICIONES

Una transacción 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

Después de que una transacción finaliza, la siguiente sentencia SQL ejecutada

automáticamente inicia la siguiente transacción.

Una sentencia DDL o DCL es automáticamente completada y por consiguiente

implícitamente finaliza una transacción.

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 lógicamente relacionadas

Control explicito del control de transacciones

Se puede controlar la lógica de transacciones con el uso de las sentencias

COMMIT, SAVEPOINT y ROLLBACK.

Por cierto!: SAVEPOINT no es estándar ANSI de SQL.!!!

Deshaciendo cambios a un SAVEPOINT

Se pueden crear marcas en una transacción con la utilización de la sentencia

SAVEPOINT la cual divide la transacción en secciones más pequeñas.

Por lo que se pueden descartar los cambios pendientes hasta la marca con el uso de la sentencia ROLLBACK TO SAVEPOINT.

Si se crea una segunda marca con el mismo nombre de un savepoint anterior,

el savepoint anterior es eliminado.

Procesando transacciones implícitas

También dice que un tercer comando está disponible en iSQL*Plus. El comando

AUTOCOMMIT puede ser habilitado o deshabilitado. Si se habilita, cada

sentencia DML individual es cometida e inmediatamente es ejecutada. No se

pueden deshacer estos cambios. Si se deshabilita, la sentencia COMMIT debe

ser usada explícitamente. También, la sentencia COMMIT es usada cuando

una sentencia DDL es usada o cuando sales de iSQL*Plus.

Fallas en el sistema

Cuando una transacción es interrumpida por que el sistema falla, la transacción

entera es automáticamente 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 sesión es lograda oprimiendo el

botón “Exit”. Con SQL*Plus, una salida normal es lograda escribiendo el

comando EXIT en la línea de comandos. Cerrar la ventana es interpretado

como una salida anormal.

Cometiendo cambios (committing)

Cada dato que cambia durante la transacción es temporal hasta que la

transacción es cometida (committed). El estado de los datos antes de usar las

sentencias COMMIT o ROLLBACK es:

Las operaciones de manipulación 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

manipulación de datos para consultar las tablas con el uso de la

sentencia SELECT.

Otros usuarios no pueden ver los resultados de las operaciones de

manipulación 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. Después 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 transacción

• 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.

En el ejemplo se elimina una fila de la tabla EMPLOYEES y se inserta

una nueva fila en la tabla DEPARTMENTS. Para hacer estos cambios

permanentes se utiliza la sentencia COMMIT.

Ejemplo

• Remueva los departamentos 290 y 300 de la tabla DEPARTMENTS

• actualice una fila en la tabla COPY_EMP.

• Haga todos los cambios permanentes

Deshaciendo cambios (rolling back)

Deshaga todos los cambios pendientes con el uso de la sentencia ROLLBACK.

...

Descargar como (para miembros actualizados) txt (10 Kb)
Leer 5 páginas más »
Disponible sólo en Clubensayos.com