Gerardo Alejandro Arévalo AnayaTaller de administración de bases de datos
Slide 2
Una transacción es una secuencia de operaciones realizadas como una sola unidad lógica de trabajo. Una unidad lógica de trabajo debe exhibir cuatro propiedades, conocidas como propiedades de atomicidad, coherencia, aislamiento y durabilidad (ACID), para ser calificada como transacción.
AtomicidadUna transacción debe ser una unidad atómica de trabajo, tanto si se realizan todas sus modificaciones en los datos, como si no se realiza ninguna de ellas.
CoherenciaCuando finaliza, una transacción debe dejar todos los datos en un estado coherente. En una base de datos relacional, se deben aplicar todas las reglas a las modificaciones de la transacción para mantener la integridad de todos los datos. Todas las estructuras internas de datos, como índices de árbol b o listas doblemente vinculadas, deben estar correctas al final de la transacción.
AislamientoLas modificaciones realizadas por transacciones simultáneas se deben aislar de las modificaciones llevadas a cabo por otras transacciones simultáneas. Una transacción reconoce los datos en el estado en que estaban antes de que otra transacción simultánea los modificara o después de que la segunda transacción haya concluido, pero no reconoce un estado intermedio. Esto se conoce como seriabilidad, ya que deriva en la capacidad de volver a cargar los datos iniciales y reproducir una serie de transacciones para finalizar con los datos en el mismo estado en que estaban después de realizar las transacciones originales.
DurabilidadUna vez concluida una transacción, sus efectos son permanentes en el sistema. Las modificaciones persisten aún en el caso de producirse un error del sistema.
Slide 3
Commit
*Compromete la transacción actual; es decir, hace que los cambios realizados por la transacción sean permanentes en la base de datos.
Después de que se comprometa la transacción se inicia una nueva transacción automáticamente.*Finaliza una transacción y permite completar todos los cambios a la base de datos. Sintaxis EJEMPLO:La instrucción COMMIT, se representa con la siguiente sintaxis: START TRANSACTION COMMIT [ WORK ] [ AND [ NO ] CHAIN ] ISOLATION LEVEL READ UNCOMMITTED; SELECT * FROM ARTISTAS; COMMIT;En su punto más básico, la instrucción COMMIT requiere solamente la palabra clave COMMIT.
Todos los demás elementos de la instrucción son opcionales. COMMIT solo sirve para indicar que la transacción se realizo completamente.
Slide 4
RollBack
causa el retroceso de la transacción actual; es decir, deshace todas las actualizaciones realizadas por las instrucciones SQL de la transacción; así, el estado de la base de datos se restaura al que existía previo a la ejecución de la transacción.A pesar de que el objetivo de cualquier transacción es completar los cambios hechos por las instrucciones
en esa transacción, no hay duda que existirán ocasiones cuando se quiera reinvertir esos
cambios. Para poder controlar estas reinversiones, se debe utilizar una instrucción ROLLBACK
para deshacer los cambios y eliminar la transacción, o para regresar los cambios a un punto de
recuperación específico. La siguiente sintaxis muestra los diferentes elementos que pueden ser incluidos
en una instrucción ROLLBACK: ROLLBACK [ WORK ] [ AND [ NO ] CHAIN ]
[ TO SAVEPOINT ]ROLLBACK, a diferencia de la instrucción COMMIT, incluye la
cláusula opcional TO SAVEPOINT. La cláusula TO SAVEPOINT especifica un punto de recuperación
que se utiliza si los cambios tienen que ser reinvertidos.
Slide 5
Ejemplo RollBack y Savepoint
START TRANSACTION ISOLATION LEVEL SERIALIZABLE; SELECT TITULO_CD, EN_EXISTENCIA FROM DISCOS_COMPACTOS WHERE ID_DISQUERA = 832;
SAVEPOINT SECCION_1;
UPDATE DISCOS_COMPACTOS SET EN_EXISTENCIA = EN_EXISTENCIA + 2 WHERE ID_DISQUERA = 832;
ROLLBACK TO SAVEPOINT SECCION_1;
Slide 6
Save Point
Crea un punto de recuperación dentro de una transacción. Un punto de recuperación
marca una zona dentro de la transacción que actúa como un punto para detenerse
cuando una transacción tiene que regresar a su punto inicial. SINTAXISCrear un punto de recuperación en la transacción es muy simple, como se muestra en la siguiente
sintaxis:
SAVEPOINT <nombre del punto de recuperación>Todo lo que se necesita utilizar es la palabra clave SAVEPOINT, seguida del nombre del punto de
recuperación. Por ejemplo, para crear un punto de recuperación llamado SECCION_1, se deberá
utilizar la siguiente instrucción:
SAVEPOINT SECCION_1;
Una vez que se crea el punto de recuperación, se puede utilizar el nombre SECCION_1 para identificar
el punto de recuperación posteriormente en la transacción.
Slide 7
Set Transaction
La instrucción
SET TRANSACTION permite configurar la mayoría de las propiedades asociadas con el
proceso de transacción. Se puede ejecutar esta instrucción solamente cuando ninguna transacción
está activa (o en el caso de Oracle, sólo como la primera instrucción después de COMMIT o ROLLBACK).
Cuando sí se utiliza una instrucción SET TRANSACTION, las propiedades configuradas
dentro de la instrucción son aplicadas solamente a la siguiente transacción que es iniciada. Las
propiedades no se trasladan de una transacción a la otra.
La instrucción SET TRANSACTION no es obligatoria para iniciar una transacción. Si la instrucción
no es ejecutada, la transacción utiliza ya sea las propiedades de manera predeterminada,
o las propiedades suministradas en la instrucción subsecuente START TRANSACTION. Si se ejecuta
la instrucción SET TRANSACTION, la transacción utiliza las propiedades especificadas en
esa instrucción.
Slide 8
Sintaxis Set Transaction
la sintaxis utilizada para una instrucción SET TRANSACTION. En
su forma más básica, la sintaxis luce de la siguiente manera:
SET [ LOCAL ] TRANSACTION [ { , } ... ] se puede ver que el único tipo diferente
de opción que se necesita especificar es aquel representado por el marcador de posición .
Existen tres tipos de modos de transacción que se pueden especificar:
*Nivel de acceso
*Nivel de aislamiento *Tamaño de diagnóstico
Se deben especificar uno o más modos de transacción. Si se especifica más de uno, deben
quedar separados por comas. Además, no se puede incluir más de uno del mismo tipo de los modos
de transacción
Slide 9
Silberschatz A. & Korth H. & Sudarshan F.. (2002). Fundamentos de Bases de Datos. Madrid: McGraw-Hill.Microsoft. (2010). Transacciones (motor de la base de datos). agosto 19, 2010, de TechNet Sitio web: https://technet.microsoft.com/es-es/library/ms190612(v=sql.105).aspxOppel, Andy. & Sheldon, Robert.. (2010). Fundamentos de SQL. Madrid: McGRAW-HILL.