Oracle - Control de transacciones

Written by lopezatienza on 23 Diciembre 2008 – 16:38 -


CONTROL DE TRANSACCIONES

DEFINICION: Conjunto de operaciones dependientes unas de otras que se realizan en la BD. Para que la transacción se ejecute, han de realizarse todas y cada una de las partes u operaciones que la componen; En el caso de que alguna falle se dará por fallida toda la transacción.

 

El usuario puede definir el comienzo y el fin de una transacción.

 

EN ORACLE:

.- Comienza la transacción con la 1º orden SQL de la sesión de usuario o con la 1º orden posterior a la finalización de la transacción anterior.

.- Finaliza cuando se ejecuta un comando de control de transacción (commit o rollback) , una orden de definición de datos (DDL) o cuando finaliza la sesión.

 

Una vez concluida la transacción esta no se puede deshacer.

 

COMANDOS DE CONTROL DE TRANSACION

.-COMMIT: Da por concluida la transacción haciendo definitivos los cambios efectuados, liberando las filas bloqueadas. Solo después de que se ejecute un commit los demás usuarios tendrán acceso a los datos modificados.

 

.- ROLLBACK: Da por concluida la transacción deshaciendo los cambios efectuados y liberando las filas bloqueadas.

 

.-ROLLBACK IMPLICITOS: Cuando  un programa falla y no se controla la excepción que produjo el fallo. Se deshacen todas las operaciones excepto aquellas que dentro del programa hayan sido confirmadas.

 

.-SAVEPOINT <PUNTO DE SALVAGUARDA>: Se usa con “rollback to” para marcar puntos de salvaguarda a la hora de procesar transacciones. Esto permitirá deshacer parte de una transacción.

 

.-ROLLBACK TO <PUNTO DE SALVAGUARDA>: Deshace el trabajo realizado sobre la BD después del punto de salvaguarda. No obstante tampoco confirma el trabajo hecho hasta el punto de salvaguarda. La transacción en realidad no se confirma o rechaza hasta que aparece un commit o un rollback.

 

 

I1

I2

SAVEPOINT P1

I3

I4

SAVEPOINT P2

I5

I6

ROLLBACK TO P1

COMMIT/ROLLBACK

 

Los ámbitos de p1, p2 dependen del a transacción.

 

 

·         TRANSACCIÓN AUTONOMA

 

Son las que  se pueden confirmar o rechazar con independencia de lo que ocurre en la transacción en curso. Y viceversa, lo que ocurra con la transacción en curso no afecta a la autónoma.

Se usan en pequeños programas o bloques.

Se declaran en la sesión declarativa como:

         PRAGMA AUTONOMOUS_TRANSACTION; (se crea la transacción autónoma)

…………………………….

Commit / rollback;

 

UPDATE

UPDATE

 

F(X)à pragma autonomous_transaction i1 i2 i3 i4 commit;

 

Rollback

UPDATE

UPDATE

 

·         TRANSACIONES DE SOLO LECTURA

 

Se usan para garantizar la consistencia de los datos recuperados entre distintas consultas frente a posibles cambios que puedan ocurrir entre ellas.

 

El comienzo de una transacción de solo lectura se establece con SET TRANSACTION READ ONLY. Todas las consultas que se ejecuten después solamente verán aquellos cambios confirmados antes del comienzo de la transacción. (Como si hiciéramos una fotografía de la BD). Se confirma o rechaza con commit o rollback.

 

Antes del una transacción read only hay que hacer un rollback o commit o algo que finalice la transacción actual.


Tags:
Posted in Oracle |

Leave a Comment

RSS