Académique Documents
Professionnel Documents
Culture Documents
CANDADOS
Bases de Datos
Ingeniería de Sistemas
Universidad Nacional de Colombia
2013
Ejemplo de una cuenta corriente
RETIRO CONSIGNACION
Ingrese retiro Ingrese consignación
Lea saldo del cliente A Lea saldo del cliente A
Si saldo >= retiro saldo = saldo +
saldo = saldo – retiro consignación
grabe saldo grabe saldo
suministre dinero
Fin_SI
Operación sin control
Retira 800
RETIRO
Ingrese retiro retiro = 800
Lea saldo del cliente A
Si saldo >= retiro
saldo = saldo – retiro
grabe saldo
saldo = 1000
suministre dinero
Fin_SI
saldo = 200
Operación sin control
RETIRO CONSIGNACION
Ingrese retiro Ingrese consigna
Lea saldo del cliente A Lea saldo del cliente A
Si saldo >= retiro saldo = saldo + consigna
saldo = saldo – retiro grabe saldo
grabe saldo
suministre dinero
Fin_SI
RETIRO CONSIGNACION
Ingrese retiro Ingrese consigna
Lea saldo del cliente A Lea saldo del cliente A
Si saldo >= retiro saldo = saldo + consigna
saldo = saldo – retiro grabe saldo
grabe saldo
suministre dinero
Fin_SI
Saldo inicial del cliente A = 1000
Retira 800 Retira 700 Retira 100 Consigna 300
saldo = 400
Transacciones
begin tran
Inicia la transacción
commit tran
Finaliza la transacción
Todas las modificaciones quedan en firme
Sintaxis:
save { transaction | tran } savepoint_name
En ambientes
multiusuario, las
transacciones acceden
a los datos
simultáneamente
Mecanismo automático
que aisla los datos para
prevenir conflictos de los
datos que se están
modificando
Otros procesos pueden leer los datos (coloca candado shared), pero
ningún proceso puede cambiar los datos (coloca candado exclusive)
Update update, delete Place the U Wait for Wait for Page
(U) lock lock to be lock to be
released released
Sintaxis simplificada:
alter table table_name
lock { allpages | datapages |
datarows }
Sintaxis:
sp_procxmode [ procedure_name [ , {chained | unchained | anymode} ] ]
(1) Con begin tran inicia la (2) save tran no incrementa (3) save tran no incrementa
transacción. Nivel el nivel de anidamiento. el nivel de anidamiento.
anidamiento: 1.
(4) rollback regresa al punto
(5) rollback regresa al punto xyz. Entonces se ejecutan
(6) rollback deshace todas abc. Entonces se ejecutan las las subsiguientes sentencias
las sentencias en proc1, subsiguientes sentencias en en proc2.
proc1.
proc2, y batch
-o-
commit hace commit a todo.
Procedimiento almacenado
Caso B begin tran
... Trigger
(este caso insert ... begin tran s2
ocasiona un print "in sp" ....
error) ... rollback tran s2
commit tran print “tr done”
print "sp done" return
Procedimiento
almacenado Trigger
Caso C begin tran ....
... ....
insert ... rollback trigger
print "in sp" print “tr done”
... return
commit tran
print "sp done"
Procedimiento Almacenado
Caso E begin tran Trigger
....
...
....
insert ...
Rollback tran
print "in sp"
print “tr done”
...
return
commit tran
print "sp done"
Bases de Datos - 2013
Preguntas