transacciones de base de datos
TRANSCRIPT
-
7/23/2019 Transacciones de Base de Datos
1/80
1
Procesamiento de
transacciones.
-
7/23/2019 Transacciones de Base de Datos
2/80
2
Procesamiento detransacciones.
Introduccin.Control de transacciones.
Control de concurrencia.
Recuperacin de transacciones.
-
7/23/2019 Transacciones de Base de Datos
3/80
3
Introduccin.
Que pasa cuando, por ejemplo, dostransacciones tratan de actualizar el mismo
elemento de datos, o cuando ocurre una falla del
sistema durante la ejecucin de una actualizacin.
Dada la naturaleza de una transaccin deactualizacin, al ocurrir algn error, a eces no sepuede simplemente reactiar su ejecucin tal !como se "ace con las consultas, puesto #ue
algunos datos pueden "a$er sido modificados
antes de #ue ocurriera la falla.
-
7/23/2019 Transacciones de Base de Datos
4/80
%
&l no tomar en cuenta estos factores puedeconducir a #ue la informaci
n en la $ase de
datos contenga datos incorrectos.
&l concepto fundamental a#u es el de
transaccin, asociado con los conceptos de'ejecucin consistente' ! 'procesamientoconfia$le, puesto #ue en el uso de $ases dedatos una transaccin de$e ser una unidad$sica de procesamiento consistente !confia$le.
-
7/23/2019 Transacciones de Base de Datos
5/80
(
)a administracin del proceso de transacciones, realizadapara garantizar la consistencia ! confia$ilidad de la *D, es el
o$jetio del procesador de transacciones+ el cual tiene las
siguientes funciones -esti-estin de transaccionesn de transacciones, encomendada al dministrador
de /ransacciones. PlaneaciPlaneacin de la ejecucin de la ejecucinn, realizada por el Despac"ador.
-esti-estin de recuperacionesn de recuperaciones, responsa$ilidad deldministrador de recuperacin. 0anejo de datos temporales0anejo de datos temporales, lleada a ca$o por el
dministrador de datos temporales
-
7/23/2019 Transacciones de Base de Datos
6/80
)o #ue persigue el procesador detransacciones es tener una transparencia
adecuada en la ejecucin de las accionesconcurrentes so$re una $ase de datos,
ascomo en el manejo de las fallas #uedurante la ejecucin se pueden presentar.
-
7/23/2019 Transacciones de Base de Datos
7/80
-r4ficamente la administracin centralizada de transacciones re#uiere
Resultados ynotificaciones
begin_transactionread, write,commit, abort
Aplicacin del usuario
Administrador de
transaccionesTM
DespachadorSC
Administrador derecuperacin
RM
resultadosread, write,commit, abort
operacionesdespachadas resultados
-
7/23/2019 Transacciones de Base de Datos
8/80
5
6na transaccin es una coleccin de acciones #ue "acentransformaciones consistentes ! confia$les a los estados de un sistema
preserando su consistencia. 6na $ase de datos est en un estado
consistente si o$edece todas las restricciones de integridad definidasso$re ella 7de datos, del negocio ! referencial8.
)o trascendente a#u es asegurar #ue la $ase de datos regresa a unestado consistente al fin de la ejecucin de cual#uier transaccin.
-
7/23/2019 Transacciones de Base de Datos
9/80
9
BDD en un estadoinconsistente, durante la
ejecucin de latransaccin.
BDD en un estadoconsistente, despus de la
ejecucin de latransaccin.
BDD en un estadoconsistente, antes de
la ejecucin de latransaccin.
Inicio de latransaccin !
"in de la transaccin !#jecucin de latransaccin !
tiempo
-
7/23/2019 Transacciones de Base de Datos
10/80
1:
)os aspectos ms importantes relacionados con elproceso de transacciones son
Consistencia de la $ase de datos internaConsistencia de la $ase de datos interna. )osalgoritmos de control semntico tienen #uesatisfacer siempre las restricciones de integridad
cuando una transaccin es procesada antes de#ue pretenda "acer un commit.
0odelo de estructura de transacciones0odelo de estructura de transacciones. &simportante considerar si las transacciones son
planas o pueden estar anidadas.
-
7/23/2019 Transacciones de Base de Datos
11/80
11
ControlControl de concurrenciade concurrencia. )os algoritmos de
control de concurrencia de$en sincronizar laejecucin de transacciones concurrentes $ajo elcriterio de correccin. Protocolos deProtocolos deconfia$ilidadconfia$ilidad. &s necesario introducir los medios
de control re#ueridos para garantizar laatomicidad ! dura$ilidad de las transacciones.
ControlControl de rde rplicasplicas. &l control de rplicas serefiere a cmo garantizar la consistencia mutuade datos replicados.
-
7/23/2019 Transacciones de Base de Datos
12/80
12
Control de transacciones./erminacin de una Transaccin.
&jemplo.Caracterizacin de transacciones.
Propiedades de las transacciones.
/ipos de transacciones.
&stados de una transaccin.
-
7/23/2019 Transacciones de Base de Datos
13/80
13
/erminacin de una transaccin. 6na transaccin siempre de$e terminar, aun en la
presencia de fallas. ;i una transaccin termina demanera e
-
7/23/2019 Transacciones de Base de Datos
14/80
1%
&jemplo.
Considere una agencia de reseraciones para lneas areas con las siguientesrelaciones
VUELO( Nume_Vue, Fecha_Vue, Salida_Vue, Destino_Vue,AstoVend_Vue, Capa_Vue)CLIENE( Nom!_Cli, Di"e_Cli, #ala_Cli )FEC$A_VUELO(Nume_Vue_FV, Fecha_FV, Nom!_Cli_FV, ipo_FV )
-
7/23/2019 Transacciones de Base de Datos
15/80
1(
$na transaccin de una reser%acin t&pica, cuando no e'istenasientos disponibles, puede ser implementada en la siguienteforma(
#e%in_t"ansaction &ese"'acin!e%ininput(Nume"o_Vue, Fecha, Nom!_Cli)*E+EC SL SELEC AstoVend_Vue, Capa_VueINO temp-, temp.F&O/ VUELO$E&E Nume_Vue 0 Nume"o_Vue AND Fecha_FV0 Fechai1 temp- 0 temp. thenoutput( 2no ha3 asientos li!"es2 )A!o"telseE+EC SL U4DAE VUELOSE AstoVend_Vue 0 AstoVend_Vue 5 -$E&E Nume_Vue 0 Nume"o_Vue AND Fecha_FV0 FechaE+EC SL INSE&INO FEC$A_VUELO (Nume_Vue_FV, Fecha_FV,Nom!_Cli_FV, ipo)VALUES (Nume"o_Vue, Fecha, Nom!_Cli, null )Commitoutput(2"ese"'acin te"minada2)endi1end
-
7/23/2019 Transacciones de Base de Datos
16/80
1
Caracterizacin de transacciones. )as transacciones leen ! escri$en datos, el
anlisis de estas acciones se usa paracaracterizarlas. ;e dice #ue los elementos dedatos #ue lee una transaccin constitu!en elconjunto de lectura =R;>. ;imilarmente, a los
elementos de datos #ue escri$e una transaccinse les denomina el conjunto de escritura =?;>.
@ote #ue los conjuntos de lectura ! escritura son
disjuntos. la unin de am$os conjuntos se leconoce como el conjunto $ase de la transaccin=*; A R; ?;>.
-
7/23/2019 Transacciones de Base de Datos
17/80
1
DefiniciDefinicin formal del concepto de transaccin formal del concepto de transaccinn. ;ea Bil7.
-
7/23/2019 Transacciones de Base de Datos
18/80
15
Caracterizacin de transacciones. )a transaccin /ies un orden parcial, /iA = i, i>,
donde
1. iA B;l=@l>
2. Para cuales#uiera dos operaciones, Bil, BiEB;l,
si BilA R7
-
7/23/2019 Transacciones de Base de Datos
19/80
19
&jemplo .
Considere una transaccin simple / #ue consiste de lossiguientes pasosRead7 < 8
Read7 ! 8
< < F !
?rite7 < 8
Commit
)a especificacin de la transaccin de acuerdo con lanotacin formal #ue se "a introducido es la siguiente
A = R7
-
7/23/2019 Transacciones de Base de Datos
20/80
2:
Caracterizacin de transacciones.
i A =7R7
-
7/23/2019 Transacciones de Base de Datos
21/80
21
&n otras pala$ras, una transaccin es unconjunto de operaciones en algn lenguaje dealto niel #ue de$en tratarse como una unidad
lgica.
-
7/23/2019 Transacciones de Base de Datos
22/80
22
Propiedades de las transacciones.
)as propiedades de una transaccin consistente !confia$le son
ttmicamica. 6na transaccin de$e tratarse como una
unidad de operacin. Por lo tanto, o todas lasacciones de la transaccin se realizan o ningunade ellas se llea a ca$o. )a atomicidad re#uiere
#ue si una transaccin se interrumpe por una falla,sus resultados parciales sean des"ec"os.
-
7/23/2019 Transacciones de Base de Datos
23/80
23
la actiidad referente a preserar la atomicidad de las
transacciones en presencia de a$ortos de$ido a errores de
entrada, so$recarga del sistema o a$razos mortales se le
llama recuperacin de transacciones. la actiidad deasegurar la atomicidad en presencia de cadas del sistemase le llama recuperacin de cadas.ConsistenteConsistente. &s simplemente la correccin de latransaccin. &s decir, una transaccin es un programacorrecto #ue llea la $ase de datos de un estado
consistente a otro. De$ido a esto, las transacciones no
iolan las restricciones de integridad de una $ase de datos.
-
7/23/2019 Transacciones de Base de Datos
24/80
2%
IndependienteIndependiente. 6na transaccin enejecucin no puede reelar sus resultadosa otras transacciones concurrentes antes
de su commit. 0s an, si ariastransacciones se ejecutanconcurrentemente, los resultados de$en
ser los mismos #ue si se "u$ieran
ejecutado de manera secuencial7seria$ilidad8.
-
7/23/2019 Transacciones de Base de Datos
25/80
2(
PersistentePersistente. &s la propiedad de las transacciones#ue asegura #ue una ez #ue una transaccin"ace su commit, sus resultados son permanentes! no pueden ser $orrados de la $ase de datos. Porlo tanto, los ;*D;*Daseguran #ue los resultados deuna transaccin so$reiirn a fallas del sistema.&sta propiedad motia el aspecto de recuperacinde $ases de datos, el cual trata so$re comorecuperar la $ase de datos a un estadoconsistente en donde todas las transacciones #ue
"an "ec"o un commit #ueden reflejadas.
-
7/23/2019 Transacciones de Base de Datos
26/80
2
Gtmica ! persistente en presencia de fallas.
G Correcta en presencia de accesos concurrentes!
G 6n manejo correcto de rplicas, en el caso de#ue se soporten.
&n resumen, las transacciones de$en
proporcionar una ejecucin
-
7/23/2019 Transacciones de Base de Datos
27/80
2
/ipos de transacciones. )as transacciones pueden clasificarse por
reasreasde aplicacide aplicacinn. )as transacciones pueden serG )ocales)ocales. ;on las #ue operan en forma centralizada.
G -lo$ales o distri$uidas-lo$ales o distri$uidas. ;on las #ue operan con
datos distri$uidos.
G CompensatoriasCompensatorias. ;on las #ue des"acen los efectos
de una transaccin #ue termina con un commit.G HeterogHeterogneaneas. ;on las #ue se ejecutan en
am$ientes "eterogneos.
-
7/23/2019 Transacciones de Base de Datos
28/80
25
//iempoiempo de duracide duracinn. /omando en cuenta el
tiempo #ue transcurre desde #ue se inicia unatransaccin "asta #ue termina las transaccionespueden ser
G *atc"*atc". ;on las #ue re#uieren tiempos
relatiamente largos ! acceden grandesporciones de la $ase de datos.
G &n&n llneanea. ;on las #ue se caracterizan porre#uerir tiempos de respuesta mu! cortos !
por acceder una porcin relatiamentepe#ue!a de la $ase de datos.
-
7/23/2019 Transacciones de Base de Datos
29/80
29
&structura&structura. &n $ase a la estructura #ue puede
tener una transaccin se pueden tener dosclasificaciones
Desde el primer punto de ista, una transaccinpuede ser plana o anidada.
G PlanasPlanas. ;on las #ue constan de una secuenciade operaciones primitias encerradas entre las
pala$ras clae $egin ! end.
-
7/23/2019 Transacciones de Base de Datos
30/80
3:
nidadasnidadas. ;on las #ue contienen su$transacciones.
6na transaccin anidada dentro de otra transaccin
consera las mismas propiedades #ue tienen suspadres, esto implica, #ue puede contener asmismotransacciones dentro de ella. &
-
7/23/2019 Transacciones de Base de Datos
31/80
31
&l segundo punto de ista considera el orden
de las lecturas ! escrituras.
/ransacciones generales/ransacciones generales. ;on a#uellas en
las #ue las acciones de lectura ! escritura
pueden ser mezcladas sin ningunarestriccin.
-
7/23/2019 Transacciones de Base de Datos
32/80
32
/ransacciones restringidas/ransacciones restringidas. ;on a#uellas en las
#ue se restringe o impone #ue un dato de$a serledo antes de #ue pueda ser escrito. ;i lastransacciones son restringidas a #ue todas las
acciones de lectura se realicen antes de las
acciones de escritura entonces se les conocecomo de dos pasos. dems. e
-
7/23/2019 Transacciones de Base de Datos
33/80
33
&stados de una transaccin.
&n ausencia de fallos todas las transacciones
terminan con J
-
7/23/2019 Transacciones de Base de Datos
34/80
3%
;i una transaccin termina con J
-
7/23/2019 Transacciones de Base de Datos
35/80
3(
&stados de una transaccin.
G LallidaLallida. &stado en #ue se encuentra despuJs de #ue ocurre una falla.
G $ortada$ortada. &stado en #ue se encuentra despuJs de "a$er des"ec"o las
actualizaciones #ue "u$ieren ocurrido, resta$leciendo la $ase de datos
al estado consistente en #ue inici su ejecucin.
G ComprometidaComprometida. &stado en #ue se encuentra despuJs de "a$er
terminado su ejecucin, dejando la $ase de datos en un nueo estado
consistente.
-
7/23/2019 Transacciones de Base de Datos
36/80
3
Dia"rama de estados#
)arcialmentecomprometida
*omprometida
+bortada
"allida
+cti%a
-
7/23/2019 Transacciones de Base de Datos
37/80
3
&stados de una transaccin. l llegar una transaccin al estado $ortada$ortada el
sistema puede efectuar alguna de dos accionesG Reiniciar la transaccinReiniciar la transaccin. ;lo cuando la transaccin
se "a!a a$ortado por algKn error de "ardare o uno
de softare no producido por la lgica de la
transaccin. 6na transaccin reiniciada es una
nuea transaccin.
G Cancelar la transaccinCancelar la transaccin. &sto se "ace cuando "a!
algKn error de lgica #ue slo se pueda corregirescri$iendo de nueo el programa de aplicacin,
por una entrada incorrecta o por#ue no se "a!an
encontrado los datos deseados en la $ase de datos.
-
7/23/2019 Transacciones de Base de Datos
38/80
35
6na manera de lograr #ue el sistema pueda
erificar la correccin de las actualizaciones"ec"as por las transacciones es "acer #ue
almacene temporalmente en memoria no ol4til
cual#uier alor producido por esas acciones, para
efectuar las escrituras reales slo si la transaccin
llega al estado ComprometidaComprometida, teniendo la
posi$ilidad de erificar dic"a escritura !, en caso
necesario, re"acerla.
-
7/23/2019 Transacciones de Base de Datos
39/80
39
Control de concurrencia.
Planteamiento del pro$lema.
/a
-
7/23/2019 Transacciones de Base de Datos
40/80
%:
Planteamiento del pro$lema.
Lrecuentemente las aplicaciones de *D
de$en soportar accesos proenientes de
la ejecucin de ms de un programa, o dearias ejecuciones del mismo programa,ocurriendo simultnea oconcurrentemente.
-
7/23/2019 Transacciones de Base de Datos
41/80
%1
6n ejemplo es un sistema de control de
reseraciones de una aerolnea, en el #ue muc"as
gencias de Mentas pueden estar endiendo$oletos ! por lo tanto cam$iando las listas de
pasajeros ! la cantidad de asientos disponi$les. &l
pro$lema real es #ue si no tenemos cuidado al
permitir #ue dos o ms programas accedan a la$ase de datos, simultnea o concurrentemente,podramos ender dos eces el mismo $oleto.
Intuitiamente, no de$e permitirse #ue dos o msprocesos lean ! cam$ien el alor de algn o$jetoconcurrente o simultneamente.
-
7/23/2019 Transacciones de Base de Datos
42/80
%2
6n segundo ejemplo es el de una $ase de datos estadstica, tal
como las de informacin censal, en las #ue muc"a gente a la ezpuede estar interrogando a la $ase de datos al mismo tiempo.
&n este caso, puesto #ue ninguno estcam$iando la informacin,no cuidamos realmente el orden en #ue se ejecuta el proceso de
lectura ! podemos dejar #ue el sistema operatio controle, comoresulte ms adecuado, la ejecucin simultnea de las lecturas.
-
7/23/2019 Transacciones de Base de Datos
43/80
%3
&n esta clase de situacin, donde solamente seestn "aciendo lecturas, de$emos permitir elm
-
7/23/2019 Transacciones de Base de Datos
44/80
%%
Consideraremos los modelos de control de
procesos concurrentes, tal ! como se utilizan en
las $ases de datos. )os modelos son distinguidos
inicialmente por el enfo#ue #ue aplican al control
de los procesos !, posteriormente, por el detallecon #ue acceden los elementos de la $ase de
datos.
/ d l i d
-
7/23/2019 Transacciones de Base de Datos
45/80
%(
/a
-
7/23/2019 Transacciones de Base de Datos
46/80
%
dems, las primitias se pueden usar en algoritmoscon dos puntos de ista el pesimista, #ue considera
#ue muc"as transacciones tienen conflictos conotras+ o el optimista #ue supone #ue no se
presentan muc"os conflictos entre transacciones.
)os primeros sincronizan la ejecucin concurrentede las transacciones en la etapa inicial de su ciclo
de ejecucin. )os segundos retrasan lasincronizacin de las transacciones "asta su
terminacin. simismo, los algoritmos se puedenagrupar en $asados en candados, $asados enordenamiento por estampas de tiempo e "$ridos.
/a
-
7/23/2019 Transacciones de Base de Datos
47/80
%
/a
-
7/23/2019 Transacciones de Base de Datos
48/80
%5
&lementos de las *D.
6n elemento es una porcin de la $ase dedatos #ue puede ser accedida por unatransaccin, protegindola con un candado.
Por medio de la colocacin de un candadoa un elemento, una transaccin puede eitar#ue otras transacciones accedan el
elemento, "asta #ue la transaccin actie lallae #ue #uita el candado al elemento.
-
7/23/2019 Transacciones de Base de Datos
49/80
%9
&l administrador de candados, coloca ! retiracandados, as como resuele los pro$lemasentre dos o ms re#uerimientos para colocar uncandado en el mismo elemento.
)a naturaleza ! tama!o de los elementos aproteger es mu! aria$le. Dependiendo de losre#uerimientos de un programa de aplicacin sepuede necesitar $lo#uear un arc"io, una ta$la,una tupla o un atri$uto.
)a seleccin de elementos grandes a$ate losgastos originados por el mantenimiento de loscandados, mientras #ue la seleccin deelementos pe#ue!os permite #ue muc"astransacciones puedan operar concurrentemente.
-
7/23/2019 Transacciones de Base de Datos
50/80
(:
)a seleccin adecuada del tama!o de un elemento es
a#uella #ue permite #ue el promedio de lastransacciones tenga acceso a pocos elementos. &sto
es, si la transaccin tpica lee o modifica una nNada, #ueencuentra a tras de un ndice, podra ser adecuado
tratar a la nNada como elemento. ;i la transaccin tpica"iciera una junta de dos o ms relaciones, re#uiriendo elacceso a todas las nNadas de esas relaciones, entonces
se podra tratar a las relaciones como elementos.
-
7/23/2019 Transacciones de Base de Datos
51/80
(1
&n adelante, asumiremos #ue cuando una parte
de un elemento es modificada, el elementocompleto es modificado ! reci$e un alor #ue es
nico ! diferente al alor #ue podra sero$tenido por cual#uier otra modificacin.
&sta asuncin se "ace para simplificar elmodelado de las transacciones, !a #ue re#uiere
muc"o tra$ajo el deducir #ue el resultado de
una modificacin dJ al elemento el alor #uetena despus de una modificacin preia.
-
7/23/2019 Transacciones de Base de Datos
52/80
(2
&jemplo.
Para entender la necesidad de proteger elementos concandados, consideremos dos transacciones t1! t2. Cada
una accede un elemento a, el #ue asumimos tiene un
alor entero, ! suma 1 a a. )as dos transacciones son
ejecuciones del programa P, definido como
P read a+ aA aF 1+ rite a
&l alor de ae
-
7/23/2019 Transacciones de Base de Datos
53/80
(3
aen la $ase
de datos
( ( ( (
t1 reada
aA aF 1 ritea
t2 read
a
aA aF 1 rite
aaen 4rea detra$ajo de t1
( (
aen 4rea de
tra$ajo de t2
( (
-
7/23/2019 Transacciones de Base de Datos
54/80
(%
&jemplo. @otamos #ue aun#ue cada una de las dos transacciones "a agregado 1
al alor de a, ste solamente se "a incrementado en 1. &ste sera unpro$lema serio si, por ejemplo, arepresentar los asientos endidos enun uelo de ain.
)a solucin al pro$lema presentado en la figura anterior es colocar uncandado so$re a. ntes de leer a, una transaccin tde$e colocarle un
candado, el cual eitar#ue otra transaccin pueda o$tener acceso a a"asta #ue t termine de ejecutarse ! #uite el candado a a. dems, lanecesidad de #ue tcolo#ue un candado so$re aeita #ue ttenga acceso
a asi alguna otra transaccin !a estusando a a+ tde$e aguardar "asta#ue la otra transaccin #uite el candado a a, lo #ue "ara solamente"asta terminar de utilizarla.
Consideremos a"ora los programas #ue interactan con la $ase dedatos, no slo le!endo ! escri$iendo elementos, sino colocndoles !#uitndoles candados.
-
7/23/2019 Transacciones de Base de Datos
55/80
((
&jemplo.
sumimos #ue un candado de$e ser colocado so$re un elemento por
un comando locElocEantes de leerlo o escri$irlo, ! #ue la operacin decolocar el candado acta como una sincronizacin primitia. &sto es,si una transaccin trata de colocar un candado en un elemento #ue!a estprotegido, de$e aguardar "asta #ue el candado sea #uitado
por un comando unlocEunlocE, ejecutado por la transaccin #ue estmanejando el candado. sumimos #ue cada programa est escritopara #uitar el candado al elemento al #ue se lo coloca. 6n plan de los
pasos elementales de dos o ms transacciones, tal #ue las reglasprecedentes respecto a la colocacin de candados son o$edecidas,es llamado legal.
&l programa Pantes isto podra ser escrito con candados como P locE a+ read a+ aA aF 1+ rite a+ unlocE a
;uponga otra ez #ue t1! t2son dos ejecuciones de P.
-
7/23/2019 Transacciones de Base de Datos
56/80
(
&jemplo. Si t1empieza primero, requerir la colocacin de un candado sobre a,
ejecutando locklock a. Asumiendo que ninguna otra transaccin tengacolocado un candado sobre a, el sistema permitir colocar el candado.Ahora t1y solamente t1podr tener acceso a a. Si tempezara antes
de que t1 terminara, entonces cuando ttratara de ejecutar locklocka, el
sistema causar!a que t aguardara. Solamente cuando t1 ejecutara
unlockunlock a el sistema permitir!a que t
procediera. "omo resultado, la
anomal!a indicada con anterioridad no podr!a ocurrir# ya que t1o tse
ejecutar!an completamente antes de que cualquier otra empezara, ysu e$ecto combinado ser!a agregar dos a a.
-
7/23/2019 Transacciones de Base de Datos
57/80
(
$razos lielocE.
Hemos descrito una parte de los sistemas administradores de $ases dedatos #ue otorga ! pone en igor los candados so$re los elementos. 6n
sistema tal no puede tra$ajar capric"osamente, o ciertos fenmenosindesea$les ocurrirn. Como una instancia, asumimos en el ejemplo antesisto #ue cuando t1li$ersu candado so$re a, el candado fue otorgado at2. Pero si mientras t2 est aguardando, una transaccin t3 tam$in est
re#uiriendo la colocacin de un candado so$re a, ! a t3le es otorgado elcandado so$re a antes #ue a t2+ despus, mientras t3 tiene el candadoso$re a, t%re#uiere un candado, #ue le es otorgado despus de #ue t3"a#uitado el candado so$re a, ! as sucesiamente. &identemente esposi$le #ue t2 pudiera aguardar por siempre, mientras alguna otra
transaccin tuiera siempre un candado so$re a, aun#ue "u$iera unnmero ilimitado de eces en #ue t2pudiera "a$er colocado un candadoso$re a.
6na condicin tal es conocida como a$razo lielocE.
-
7/23/2019 Transacciones de Base de Datos
58/80
(5
$razos lielocE.
&ste es un pro$lema #ue ocurre potencialmente en cual#uier medio
am$iente donde las transacciones se ejecutan simultnea oconcurrentemente. 6na manera simple de eitar estos a$razos es
registrar todos los re#uerimientos de colocacin de candados acada elemento #ue no "a!an sido inmediatamente atendidos, para
#ue cuando el elemento sea desprotegido, el sistema otorgue laproteccin a la transaccin #ue lo "a!a solicitado primero, de entretodas a#uellas #ue lo estn aguardando. &sta estrategia del
primero en llegar primero en atenderelimina la posi$ilidad de #ue
ocurran a$razos lielocE.
Btra forma de eitar estos a$razos se $asa en aproec"ar elmanejo de prioridades, incrementando la prioridad de las
transacciones #ue no "a!an sido atendidas en un cierto tiempo.
$razos deadlocE
-
7/23/2019 Transacciones de Base de Datos
59/80
(9
$razos deadlocE. Ha! un pro$lema ms serio de procesamiento concurrente, #ue
puede ocurrir si no tenemos el cuidado de$ido. &ste pro$lema,
conocido como a$razo deadlocE, puede ilustrase mediante el
siguiente ejemplo. ;uponga #ue tenemos dos transacciones t1! t2,
cu!as acciones significatias, respecto al procesamiento
concurrente, son
t1 locE alocE $... unlocE aunlocE $ t2 locE $locE a... unlocE $unlocE a
Presumi$lemente t1 ! t2 "acen algo con a ! $, pero esto no es
importante a#u. ;uponga #ue t1! t2empiezan su ejecucin casi almismo tiempo. t1 re#uiere, reci$e ! protege, colocndole uncandado, el recurso a! t2 re#uiere, reci$e ! protege, colocndoleun candado, el recurso $. Despus, t1re#uiere colocar un candadoso$re el recurso $! es forzado a esperar de$ido a #ue t2tiene un
candado so$re este elemento. ;imilarmente, t2re#uiere colocar un
candado so$re el recurso a! tiene #ue esperar a #ue t1lo li$ere.
-
7/23/2019 Transacciones de Base de Datos
60/80
:
$razos deadlocE.
&stas transacciones nunca podrn proceder+ cada una est aguardando a#ue la otra des$lo#uee un elemento necesario, por tanto t1! t2aguardarnpor siempre.
6na situacin en la #ue cada una de un conjunto ; de dos o mstransacciones estaguardando para colocar un candado so$re un elemento#ue estprotegido por alguna otra transaccin en el conjunto ;es llamadoun a$razo deadlocE. Como cada transaccin en ;esta aguardando a #uealguna otra transaccin en ;li$ere el recurso necesitado para procesarse !iceersa, se #uedarn aguardando por siempre.
&ntre las propuestas "ec"as para dar una solucin a este pro$lema seencuentran
1. Hacer #ue cada transacci
n re#uiera todos los recursos #ue a a utilizar,
protegidos por un candado, a la ez, ! permitir #ue el sistema se los otorgue todos,
si es posi$le, o le otorgue alguno7s8 ! "aga #ue el proceso aguarde la asignacinde los dems.
-
7/23/2019 Transacciones de Base de Datos
61/80
1
$razos deadlocE.
2. signar un orden lineal ar$itrario a los elementos ! "acer #ue todas lastransacciones los re#uieran, para protegerlos con los candados, en ese
orden.
3. @o "acer nada por eitar los a$razos mortales. ;ino, e
-
7/23/2019 Transacciones de Base de Datos
62/80
2
Protocolos de candados de dos
fases. &n los protocolos de candados de dos fases una transaccin le pone un
candado a un o$jeto antes de usarlo. Cuando un o$jeto est$lo#ueadocon un candado e
-
7/23/2019 Transacciones de Base de Datos
63/80
3
Protocolos de candados de dos
fases. Puede suceder #ue cuando una transaccin a$orte despus de li$erar un
candado compartido, otras transacciones #ue "a!an accedido el mismo
elemento de datos a$orten tam$in proocando lo #ue se conoce comoa$ortos en cascada. Para eitar lo anterior, los despac"adores de
candados de dos fases implementan lo #ue se conoce como los candados
estrictos de dos fases usando solo candados e
-
7/23/2019 Transacciones de Base de Datos
64/80
%
Recuperacin de transacciones.
Planteamiento del pro$lema.
B$jetio.Recuperacin $asada en el arc"io )og.
Recuperacin por paginacin en la som$ra.
Recuperacin de transaccionesconcurrentes.
Planteamiento del pro$lema
-
7/23/2019 Transacciones de Base de Datos
65/80
(
Planteamiento del pro$lema.
6na computadora, al igual #ue cual#uier otro dispositio, est4 sujetaa fallos. &stos fallos pueden producirse por#ue
G ;e presenten pro$lemas en disco.
G ;e suspenda el suministro de corriente.
G Ha!a errores en el softare.
G Bcurra algKn desastre 7incendio, terremoto, inundacin8.
G ;e cometa sa$otaje.
&n cada uno de estos casos puede perderse informacin. Por tal
motio, el sistema con #ue se use la $ase de datos de$e garantizar
#ue las propiedades de atomicidad ! persistencia de las
transacciones se preseren a pesar de los fallos.
&l administrador de recuperacin es el mdulo responsa$le de la
restauracin de la $ase de datos al estado consistente preio al fallo.
-
7/23/2019 Transacciones de Base de Datos
66/80
B$jetio. Realizar todos los cam$ios inducidos por cada transaccin, ! si fuese el
caso, por las su$transacciones, o no realizar ninguno.
;i la transaccin realiza arias modificaciones a la $ase de datos, pueden
necesitarse arias operaciones de salida, pudiendo ocurrir un fallo despuJs
de "a$erse concluido alguna de estas modificaciones ! antes de "a$erlas
terminado todas.
Para alcanzar este o$jetio, se de$e efectuar primero la operacin de salida
de la informacin #ue descri$e las modificaciones del almacenamientoesta$le sin modificar todaOa la $ase de datos. Como eremos esto permitir4
la escritura de todas las modificaciones realizadas por una transaccin
comprometida aun#ue se produzcan fallos.
)as formas para realizar esto son
GRecuperacin $asada en el arc"io )og.
G Paginacin en la som$ra.
G Recuperacin de transacciones concurrentes.
Recuperacin $asada en el
-
7/23/2019 Transacciones de Base de Datos
67/80
Recuperacin $asada en el
arc"io )og. &sta es la tJcnica m4s usada. &l arc"io )oges una secuencia de registros #ue
contiene el registro de todas las operaciones de actualizacin a la $ase de datos.
&
-
7/23/2019 Transacciones de Base de Datos
68/80
5
Recuperacin $asada en el
-
7/23/2019 Transacciones de Base de Datos
69/80
9
Recuperacin $asada en el
arc"io )og. Dos tJcnicas #ue pueden usarse para garantizar la atomicidad mediante el
arc"io )ogson
0odificacin diferida de la $ase de datos.
Que garantiza la atomicidad de las transacciones mediante el almacenamiento de
todas las modificaciones a la $ase de datos en el arc"io )ogretardando la
ejecucin de todas las operaciones de escritura de la transaccin "asta #ue Jsta
se comprometa parcialmente.
Cuando la transaccin se compromete parcialmente, la informacin del arc"io
)ogasociada a esa transaccin puede usarse para la ejecucin de las escrituras
diferidas. ;i el sistema se cae antes de #ue la transaccin se comprometa, o si la
transaccin a$orta, simplemente se ignora la informacin del arc"io )og.
0odificacin inmediata de la $ase de datos. &sta tJcnica permite realizar la salida de las operaciones de actualizacin
directamente a la $ase de datos mientras #ue la transaccin est4 todaOa en
estado actio.
Recuperacin $asada en el
-
7/23/2019 Transacciones de Base de Datos
70/80
:
Recuperacin $asada en el
arc"io )og. )as modificaciones "ec"as por las
transacciones se denominan modificaciones
no comprometidas. &n caso de una caOda o
de un fallo en la transaccin, el sistema usael campo del alor anterior del arc"io )og
para restaurar los elementos modificados a
los alores #ue tenOan antes de comenzar la
transaccin. &sta modificacin se llea a
ca$o mediante la operacin 6ndo.
Recuperacin por paginacin en
-
7/23/2019 Transacciones de Base de Datos
71/80
1
Recuperacin por paginacin en
la som$ra. &sta es una tJcnica alterna a las #ue usan el arc"io )og, #ue consiste
en mantener dos ta$las de p4ginas durante la ida de una transaccin la
ta$la actual de p4ginas7/P8 ! la ta$la de p4ginas som$ra7/P;8. &stas
dos ta$las son idJnticas cuando comienza una transaccin. 0ientras
dura la transaccin no se altera el contenido de las p4ginas som$ra.
Cuando una transaccin realiza una operacin de actualizacin, la /Ppuede sufrir algKn cam$io. /odas las operaciones de entrada ! salida
usan la /Ppara encontrar las p4ginas de la $ase de datos.
;upngase #ue la transaccin realiza una operacin escri$ir78 ! #ue
pertenece a la iNJsima p4gina. )a operacin escri$ir se ejecutarOa como
sigue
1. &jecutar entrada78 si la iNJsima p4gina no est4 todaOa en memoria principal.
2. ;i es la primer escritura #ue esta transaccin realiza so$re la p4gina iNJsima,
modificar la /Psiguiendo estos pasos
Recuperacin por paginacin en
-
7/23/2019 Transacciones de Base de Datos
72/80
2
Recuperacin por paginacin en
la som$ra.a. &ncontrar una p4gina en el disco #ue no se "a!a utilizado. @ormalmente el ;*D
tiene acceso a una lista de p4ginas no utilizadas.
$. *orrar la p4gina encontrada en el paso anterior de la lista de p4ginas li$res.
c. 0odificar la /Ppara #ue la iNJsima entrada apunte a la p4gina encontrada en el
paso 2a.
3.signar el alor de i a en la p4gina de la memoria intermedia
&l enfo#ue de paginacin en la som$ra se $asa en almacenar la
/P;en almacenamiento no ol4til, de modo #ue pueda recuperarse
el estado consistente en #ue se encontra$a la $ase de datos antes
de la ejecucin de una transaccin en caso de producirse una caOda
del sistema o de #ue a$ortase la transaccin. )a /Pse escri$e en
almacenamiento no ol4til cuando la transaccin se compromete.&ntonces la /Pse conierte en la nuea /P;para la ejecucin de
la siguiente transaccin.
Recuperacin por paginacin en
-
7/23/2019 Transacciones de Base de Datos
73/80
3
Recuperacin por paginacin en
la som$ra. Para comprometer una transaccin se de$en seguir estos pasos
1.segurarse de #ue se escri$en en disco todas las p4ginas de la memoria
intermedia #ue se encuentren en memoria principal ! #ue "a!an sido
modificadas por la transaccin 7estas operaciones no cam$iar4n las
p4ginas de la *D#ue son apuntadas por las entradas de la /P;8.
2.&scri$ir en disco la /P. @o so$reescri$ir la /P;por#ue podrOare#uerirse si ocurriera una caOda.
3.&scri$ir la direccin del disco de la /Pen el lugar del almacenamiento
esta$le #ue contiene la direccin de la /P;. &sta accin so$reescri$e la
direccin de la /Panterior. Con esto la /Pes a"ora la /P;! la
transaccin se compromete. ;i se produce una caOda antes de terminar el paso 3, se uele al
estado anterior a la ejecucin de la transaccin. ;i la caOda
sucede despuJs no se re#uiere "acer nada.
Recuperacin por paginacin en
-
7/23/2019 Transacciones de Base de Datos
74/80
%
Recuperacin por paginacin en
la som$ra. &sta tJcnica presenta las siguientes entajas respecto a las $asadas en el
arc"io )og
1. &limina la so$recarga de escrituras del arc"io )og.
2. )a recuperacin es m4s r4pida por#ue no re#uiere 6ndoni Redo.
1.;in em$argo, tiene los siguientes inconenientes
1. ;o$recarga en el compromiso.
2. Lragmentacin de datos.
3. Recoleccin de $asura.
Recuperacin de transacciones
-
7/23/2019 Transacciones de Base de Datos
75/80
(
Recuperacin de transacciones
concurrentes. &n un sistema con capacidad de proceso de transacciones concurrentes se
sigue utilizando una sola memoria intermedia de disco ! un registro
"istrico Knico. /odas las transacciones comparten los $lo#ues de la
memoria intermedia permitiJndose actualizaciones inmediatas ! #ue un
$lo#ue de la memoria intermedia contenga elementos de datos #ue "a!an
sido modificados por una o m4s transacciones.
&n la recuperacin de transacciones concurrentes se de$en considerar los
siguientes aspectos
Interaccin con el control de concurrencia.
)a recuperacin depende en gran medida del es#uema de control de
concurrencia en uso. Para retroceder los efectos de una transaccin fallida,
de$en des"acerse las modificaciones realizadas por esa transaccin,
des"aciendo cual#uier otro cam$io "ec"o por cual#uier otra transaccin.
&s necesario #ue si una transaccin / modifica el alor de un elemento Q,
ninguna otra transaccin lo modi
Recuperacin de transacciones
-
7/23/2019 Transacciones de Base de Datos
76/80
Recuperacin de transacciones
concurrentes. fi#ue "asta #ue / se "a!a comprometido o se "a!a retrocedido. &ste
re#uisito se puede satisfacer f4cilmente usando el protocolo de candados
estrictos de dos fases, usando candados e
-
7/23/2019 Transacciones de Base de Datos
77/80
Recuperacin de transacciones
concurrentes. &stos puntos permiten #ue el arc"io )ogsea e
-
7/23/2019 Transacciones de Base de Datos
78/80
5
Recuperacin de transacciones
concurrentes. ;e supone #ue las transacciones no "acen actualizaciones so$re la
memoria intermedia ni so$re el arc"io )ogmientras se coloca el punto
de erificacin, lo #ue puede resultar molesto por detener su
procesamiento.
Recuperacin al reiniciar.
&l sistema de$e construir, cuando se recupera de una caOda, la listades"acer, con las transacciones #ue "an de des"acerse ! la lista
re"acercon las transacciones #ue de$en re"acerse. m$as listas se
constru!en durante la recuperacin en la siguiente forma.
1.;e inicializan am$as listas.
2.;e recorre el arc"io )og"acia atr4s e
-
7/23/2019 Transacciones de Base de Datos
79/80
9
Recuperacin de transacciones
concurrentes. 6na ez #ue se "an e
-
7/23/2019 Transacciones de Base de Datos
80/80
Recuperacin de transacciones
concurrentes.2.;e localiza el Kltimo registro erificacin,)ista del arc"io )og.
@tese #ue este paso puede re#uerir del recorrido del arc"io
log"acia adelante si el registro del punto de erificacin #ued
atr4s en el paso 1.
3.;e recorre el arc"io log"acia adelante desde el Kltimo registro
erificacin,)ista ! se realiza una operacin redopor cada
registro del arc"io log#ue pertenezca a cada transaccin /i de
la lista re"acer. &n esta fase se ignoran los registros del arc"io
)ogconcernientes a transacciones de la lista des"acer.
Cuando se "a terminado el proceso de recuperacin sepuede continuar el procesamiento normal de las
transacciones.