Transacciones de Base de Datos

download Transacciones de Base de Datos

of 80

Transcript of Transacciones de Base de Datos

  • 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.