TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de...

57
TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013

Transcript of TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de...

Page 1: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

TRANSACCIONES, AISLAMIENTO Y CANDADOS

Bases de DatosIngeniería de Sistemas

Universidad Nacional de Colombia2013

Page 2: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Ejemplo de una cuenta corriente

CONSIGNACION

Ingrese consignación

Lea saldo del cliente A

saldo = saldo + consignación

grabe saldo

RETIRO

Ingrese retiro

Lea saldo del cliente A

Si saldo >= retiro

saldo = saldo – retiro

grabe saldo

suministre dinero

Fin_SI

Page 3: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Operación sin control

RETIRO

Ingrese retiro

Lea saldo del cliente A

Si saldo >= retiro

saldo = saldo – retiro

grabe saldo

suministre dinero

Fin_SI

Retira 800

Saldo inicial del cliente A = 1000

retiro = 800

saldo = 1000

saldo = 200

Page 4: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Operación sin control

CONSIGNACION

Ingrese consigna

Lea saldo del cliente A

saldo = saldo + consigna

grabe saldo

RETIRO

Ingrese retiro

Lea saldo del cliente A

Si saldo >= retiro

saldo = saldo – retiro

grabe saldo

suministre dinero

Fin_SI

Retira 800 Retira 700 Retira 100 Consigna 300

retiro = 800 retiro = 700 retiro = 100 consigna = 300

Saldo inicial del cliente A = 1000

saldo = 1000 saldo = 1000 saldo = 1000 saldo = 1000

saldo = 200 saldo = 300 saldo = 900 saldo = 1300

Page 5: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Operación con control

CONSIGNACION

Ingrese consigna

Lea saldo del cliente A

saldo = saldo + consigna

grabe saldo

RETIRO

Ingrese retiro

Lea saldo del cliente A

Si saldo >= retiro

saldo = saldo – retiro

grabe saldo

suministre dinero

Fin_SI

Retira 800 Retira 700 Retira 100 Consigna 300

retiro = 800 retiro = 700 retiro = 100 consigna = 300

Saldo inicial del cliente A = 1000

saldo = 1000 Espere Espere Espere

saldo = 200 Espere Espere Espere

saldo = 200 saldo = 200 Espere

saldo = 100 saldo = 100

saldo = 400

Page 6: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Transacciones

Una transacción es una o más sentencias que se toman como una unidad (todo termina bien o todo se aborta)Una transacción es una unidad lógica de trabajo

Definida para las reglas del negocioTípicamente incluye al menos una modificación de datosPasa la base de datos de un estado consistente a otro

Una transacción tiene dos posibles salidas:Committed

Todas las modificaciones quedan en firmeRolled back

Las modificaciones retornan a su estado inicial

Page 7: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Rol de las transacciones

Proteger los datos de las fallas del software, hardware, y potencia eléctricaPermitir el aislamiento de datos de tal forma que varios usuarios pueden acceder simultáneamente a los datos sin interferencia

Page 8: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Cuándo usar transacciones?

Cuando un conjunto de sentencias se deben comportar como una unidad

Page 9: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Sentencias para transacciones

Cuatro sentencias definen la estructura de una transacción:

begin trancommit tranrollback transave

Page 10: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

begin tran y commit tran

begin tranInicia la transacción

commit tranFinaliza la transacciónTodas las modificaciones quedan en firme

Page 11: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

begin tran y commit tran

Sintaxis:begin { tran | transaction } [ transaction_name ]

commit [ tran | transaction | work ] [ transaction_name | savepoint_name ]

Page 12: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

rollback tran

rollback tran termina una transacciónDeshace las modificaciones que se hayan hechoLa ejecución continua con la instrucción siguiente a rollback

Page 13: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Sintaxis para rollback tran

Sintaxis:rollback [ tran [ transaction_name | savepoint_name ] |

transaction [ transaction_name | savepoint_name ] |work [ transaction_name | savepoint_name ] ]

Page 14: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

save

save crea un nombre de un punto de grabaciónEs una extensión SQL que permite rollbacks parciales

Page 15: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Sintaxis para save

Sintaxis:save { transaction | tran } savepoint_name

Page 16: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Transacciones anidadas

Se pueden tener transacciones anidadas:

El begin y commit más externos comienzan y finalizan las transacciones

Las sentencias begin y commit internos solamente guardan un registro del nivel de anidamiento

Page 17: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Transacciones y el log de transacciones

El registro de transacciones almacena los efectos de cada insert, update y deleteEl sistema utiliza el registro de transacciones para rehacer las transacciones que se reversaronSe registra el comienzo de una transacción, los commits y rollbacks

Si un servidor falla durante una transacción, no hay registro de un rollback o commit

Durante la recuperación (recovery), las modificaciones en transacciones sin un registro de rollback o commit no tendrán efecto. Si las modificaciones fueron grabadas en disco, se revertirán.

Page 18: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Modo de transacción

Un modo de transacción especifica cómo el servidor debe definir las transaccionesDos modos de transacción

UnchainedChained

Page 19: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Modo unchained

En modo unchained, se requiere explícitamente de una sentencia begin tran

También se requiere de commit tran o rollback tran explícitosSintaxis:

Set chained off

Page 20: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

En modo chained, el servidor ejecuta un begin implícito antes de:Sentencias DML– insert, update, delete, selectSentencias de Cursor– open, fetch

Se requiere de commit tran o rollback tran explícitosEste modo es ANSI compliantSintaxis:

Set chained on

Modo chained

Page 21: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Necesidad de aislamiento

En ambientes multiusuario, las transacciones acceden a los datos simultáneamente

Datos que no estén aislados pueden estar errados

Page 22: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Bloqueo (locking)

Mecanismo automático que aisla los datos para prevenir conflictos de los datos que se están modificando

Page 23: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Estructura interna de una tabla

Page 24: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Alcance de los candados

El alcance de un candado determina cuántos datos se aislanTres alcances

Page 25: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Tipos de candados

El tipo de candado determina la extensión del aislamiento de datos de otras transaccionesTres tipos de candados

SharedExclusiveUpdate

Page 26: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Candados Shared

Usado por sentencias que leen datos (selects)

Otros procesos pueden leer los datos (coloca candado shared), pero ningún proceso puede cambiar los datos (coloca candado exclusive)

Page 27: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Candados exclusive

Usado por sentencias que cambian datos (inserts, updates, deletes)Ningún otro proceso puede leer los datos (coloca candado shared) o cambiar los datos (coloca candado exclusive sobre la página)

Page 28: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Candados update

Usado por operaciones que pueden o no cambiar los datos (updates, deletes)Cuando el proceso primero escanea los datos, le aplica un candado update. Otros procesos pueden colocar candados shared, pero ningún proceso puede colocar candados exclusive o update

Page 29: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Resúmen de tipos de candados

Statements

That Impose This Lock

If Data Already Has an S Lock

If Data Already Has an X Lock

If Data Already Has a U Lock

Scopes for Which This Lock Exists

Shared (S)

select Place another S lock

Wait for lock to be released

Place another S lock

Row, page, table

Exclusive (X)

insert, update*, delete*

Wait for lock to be released

Wait for lock to be released

Wait for lock to be released

Row, page, table

Update (U)

update, delete Place the U lock

Wait for lock to be released

Wait for lock to be released

Page

*Updates y deletes usan candados exclusive solamente para encontrar los datos que necesitan modificar

Page 30: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Deadlock

Page 31: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Resolución del deadlock

Page 32: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Esquema de bloqueo

Esquema de bloqueo es un atributo de la tabla que determina qué datos asociados con la tabla están bloqueados

Page 33: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

bloqueo “allpages”

Se pueden bloquear las páginas de índicesEl servidor usa candados de tabla y candados de página, pero no candados de fila

Page 34: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Bloqueo “datapages”

Las páginas de índices nunca se bloqueanEl servidor usa candados de tabla y candados de página, pero no candados de fila

Page 35: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Bloqueo “datarows”

Las páginas de índices nunca se bloqueanEl servidor usa candados de tabla, candados de página y candados de fila

Page 36: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Fijar el esquema bloqueo

Sintaxis simplificada:create table table_name (column_name datatype [ NULL | NOT NULL | IDENTITY ] ,...column_name datatype [ NULL | NOT NULL | IDENTITY ] )[ lock { allpages | datapages | datarows } ]

Si no se especifica un esquema de bloqueo, la tabla usa el esquema default de bloqueo

Page 37: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Cambiar el esquema de bloqueo

Sintaxis simplificada:alter table table_name

lock { allpages | datapages | datarows }

Page 38: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Ver esquema de bloqueo

Ver el default del esquema de bloqueo actual:sp_configure "lock scheme"

Ver el esquema de bloqueo de una tabla:exec sp_help nombre_tabla

Page 39: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Leer datos no aislados

Hay tres tipos de consultas o “reads”, que pueden retornar datos que son inadecuados para limitar el aislamiento de datosLas características de cómo se hacen estos “reads” son propios de cada DBMSHay tres tipo de “reads”:

Dirty readsNonrepeatable readsPhantom reads

Page 40: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Lectura sucia

La transacción 1 modifica datosLa transacción 2 lee los datos modificados antes de que la modificación haya terminado

Esta transacción lee datos “uncommitted” o “dirty”

Page 41: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Lectura no repetible

La transacción 1 lee datosLa transacción 2 modifica esos datos antes de que la primera transacción haya terminado

La primera lectura es ahora “nonrepeatable”

Page 42: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Lectura fantasma

La transacción 1 lee un conjunto de filas que cumplen una condiciónLa transacción 2 modifica los datos de algunas columnas que no cumplían esa condición y ahora la cumplen, o al contrario

Las filas que aparecen y desaparecen se denominan “phantoms”

Page 43: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Nivel de aislamiento

Un nivel de aislamiento es un conjunto de candados que permiten o no una combinación particular de los tres tipos de lectura: sucia, no repetible o con fantasmasANSI define cuatro niveles de aislamiento, cada uno más restrictivo que el anterior

Dirty Reads Nonrepeatable

Reads Phantom Reads

Level 0 Allowed Allowed Allowed

Level 1 Prevented Allowed Allowed

Level 2 Prevented Prevented Allowed

Level 3 Prevented Prevented Prevented

Page 44: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Nivel 1 de aislamiento

Nivel 1 - Comportamiento de select:Se fijan candados Shared hasta que el select termine la

lectura de una fila o páginaselect espera a que se liberen los candados exclusive

Dirty reads prevented Nonrepeatable reads allowed Phantom reads allowed

Page 45: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Nivel 2 de aislamiento

Nivel 2 - Comportamiento de select:Se fijan candados Shared hasta que termine la transacción

Este comportamiento es diferente al del nivel 1select espera a que se liberen los candados exclusive

Comportamiento discreto de nivel 2 requiere bloqueo “row-level”Tables APL (All Pages Lock ) y tables DPL (Data Pages Lock) no tienen bloqueo

“row-level”Si una consulta con nivel de aislamiento 2 lee una tabla APL o DPL, se forza

comportamiento de aislamiento nivel 3

Dirty reads preventedNonrepeatable reads preventedPhantom reads allowed

Page 46: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Nivel 3 de aislamiento

Nivel 3 – El nivel más restrictivo:

Nivel 3 - Comportamiento de select:Se fijan candados shared hasta que termine la transacción

Este comportamiento es diferente al del nivel 1select espera a que se liberen los candados exclusive

Dirty reads prevented Nonrepeatable reads prevented Phantom reads prevented

Page 47: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Nivel 0 de aislamiento

Nivel 0 – El nivel menos restrictivo:

Nivel 0 - Comportamiento de select:Se fijan candados Shared hasta que select termine la lectura

de una fila o páginaselect ignora los candados exclusive

Este comportamiento es diferente al del nivel 1

Dirty reads allowed Nonrepeatable reads allowed Phantom reads allowed

Page 48: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Rótulos de modo de transacción

Los procedimientos almacenados se rotulan con el modo de transacción con el cual fueron creados

No se puede ejecutar una transacción en un modo diferente al del rótulo

Page 49: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

sp_procxmode

sp_procxmode permite ver y cambiar el modo de transacción de un procedimiento

Sintaxis:sp_procxmode [ procedure_name [ , {chained | unchained | anymode} ] ]

Page 50: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Rollbacks no intencionales

Proc2(Procedimiento anidado)

begin tran<statements...>if <error>

beginrollback

tranreturn

end<statements...>commit tranreturn

• Un rollback no intencional es un rollback anidado que sin intención deshace el trabajo en transacciones externas

Proc1(Transacción más externa)begin tran<statements...>if <error>

beginrollback tranreturn

endexec proc2if <error>

beginrollback tranreturn

end<statements...>commit tranreturn

Page 51: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Savepoints y Rollbacks anidados

batch (Tran más externa)begin tran (1)<statements...>

exec proc1if <error>rollback tran (6)else commit tran

(1) Con begin tran inicia la transacción. Nivel anidamiento: 1.

(6) rollback deshace todas las sentencias en proc1, proc2, y batch-o-commit hace commit a todo.

• Usar savepoints para evitar rollbacks no deseadosproc 1save tran abc (2)<statements...>

exec proc2if <error>rollback tran abc (5)else ...

(2) save tran no incrementa el nivel de anidamiento.

(5) rollback regresa al punto abc. Entonces se ejecutan las subsiguientes sentencias en proc1.

proc 2

save tran xyz (3)<statements...>

if <error>rollback tran xyz(4)else ...

(3) save tran no incrementa el nivel de anidamiento.

(4) rollback regresa al punto xyz. Entonces se ejecutan las subsiguientes sentencias en proc2.

Page 52: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Triggers y rollbacks

Tres tipos de rollbacks:Deshacer el triggerDeshacer el trigger y la sentencia que lo disparóDeshacer toda la transacción

Page 53: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Deshacer un trigger

Para deshacer un trigger, declarar un punto de grabación y luego hacer el rollback

Un rollback sin punto de grabación deshace toda la transacción

Procedimiento almacenadoCaso A begin tran

...insert ...print "in sp"...commit tranprint "sp done"

Triggersave tran s1....rollback tran s1print “tr done”return

Procedimiento almacenadoCaso B begin tran

...(este caso insert ...ocasiona un print "in sp"error) ...

commit tranprint "sp done"

Triggerbegin tran s2....rollback tran s2print “tr done”return

Page 54: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

rollback trigger deshace el trigger y la sentencia que lo disparóSintaxis:rollback trigger [with raiserror error_number [error_statement] ]

Deshacer un trigger

Page 55: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Procedimiento almacenado

Caso C begin tran...insert ...print "in sp"...commit tranprint "sp done"

Trigger........rollback triggerprint “tr done”return

Deshacer un trigger

Page 56: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Procedimiento almacenadoCaso D begin tran

...insert ...print "in sp"...commit tranprint "sp done"

Triggerbegin tran...rollback tranprint "tr done”return

• Para deshacer toda la transacción donde está inmerso el trigger, ejecutar un rollback sin un punto de grabación

Procedimiento AlmacenadoCaso E begin tran

...insert ...print "in sp"...commit tranprint "sp done"

Trigger........Rollback tranprint “tr done”return

Deshacer una transacción

Page 57: TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013.

Bases de Datos - 2013

Preguntas

Gracias por su Atención