Está en la página 1de 15

Transaccionesycontroldeconcurrencia

Transaccionesycontroldeconcurrencia
UnSGBDdebegarantizarlacalidaddelos datosalmacenados
Client1 Client2 Client3

Programasde aplicacin

DBMS

DB

Metadatos

(DataBaseManagement System) y ) Sistema de Administracin dedatos Coleccin de programas p g que p q permite a losusuarios crear y mantener una basede datos
2

Transaccionesycontroldeconcurrencia
U DBMSdebe Un d b garantizar ti la l integridad i t id dde d la l BD: BD Losdatossealmacenandeformaadecuada Controlarelaccesonoautorizado Quelasactualizacionesdelosusuariosdela BDseejecutan j correctamente Queelalmacenamientoespersistente

Transaccionesycontroldeconcurrencia
UnDBMSdispone U di de d varios i mecanismos i que garantizanlaintegridaddelosdatos
AcadacambiodelaBD,compruebaquese c mplenlasrestriccionesdelsistema cumplen Siseproducenactualizaciones concurrentes, concurrentes se compruebalaejecucintransaccional destas Encasodefallo,esposiblereconstruirlaBD
4

Transacciones
LasoperacionesdeaccesoalaBDseorganizanen transacciones
(Insercin,eliminacin,modificacinyrecuperacin)

Unatransaccinesunasecuenciadeunaoms operacionesdeaccesoalabasededatosquehande ejecutarsedeformaatmica atmica. Unatransaccinseiniciaporlaejecucindeun programaescritoenunLMDoenlenguajede programacin(SQL,C++oJava).


5

Transacciones
L Loslmites l i de d unatransaccin i seespecifican ifi mediantelassentencias
begin b i transaction t ti . end transaction

Operacionesbsicasqueunatransaccinpuede incluirsonlassiguientes:
Leer(X):leerunelementodelaBDsobreunavariablede programadelmismonombre Escribir(X):actualizacindeldatoXdelabasededatos, usandolavariabledelprogramademismonombre
6

Transacciones
leer(X),pasos:
buscarladireccindelbloquequecontieneeldatoX copiarelbloqueenunbufferenmemoria copiareldatoX(contenidoenelbuffer)alavariableXdel programa

Conjuntodelecturadeunatransaccin(readset) Conjuntodetodosloselementosquela transaccinlee

Transacciones
escribir(X), ibi (X) pasos:
Sinosehaledoantesbuscarladireccindelbloquede fi h quecontiene fichero i el ld datoXycopiar i el lbl bloqueenun bufferenmemoria copiareldatoXdelavariableXdelprogramaalaposicin adecuadadelbuffer copiarelbloqueactualizadodelbufferaldisco disco.

Conjunto C j d deescritura i d deunatransaccin i ( (write i set) )


Conjuntodetodosloselementosquelatransaccin escribe ib
8

Transacciones:tiposdeproblemas
Problema ob e apor po prdida p d dadeactualizacin actua ac
Transaccionesqueaccedenalosmismosdatosdela basededatosytienenoperacionesinterpoladas detalmodoquehacequealgunosdatosdela basededatosseanincorrectos

Problemadelecturasucia
Esteproblemasurgecuandounatransaccin actualiza li und datod del laBDyfi finaliza li confallo. f ll Antesdedeshacerlaactualizacin,otra transaccin i accede d al ld datoactualizado li d
9

Transacciones:tiposdeproblemas
Problema ob e adela asuma su aincorrecta co ecta
Unatransaccinrealizaunasumasobrevarios registrosmientrasqueotratransaccinlosest modificando.

Problemadelalecturairrepetible
Unatransaccinrealizadoslecturasdelmismo elemento,yentrelasdoslecturas,dichoelemento esmodificadoporotratransaccin. ,laprimera p transaccinrecibedosvalores As, diferentesdelmismoelemento. 10

Transacciones
ElDBMSesresponsable p de: Garantizarquetodaslasoperacionesdela transaccinsecompletensatisfactoriamente Que Q suefecto f t segrabe b d def formapermanente t en labasededatos Nodebepermitirquealgunasoperacionessobre labasededatostenganefectoyotrasno.Esto ocurrecuandolatransaccinfalla despusde realizaralgunasactualizaciones.
11

Transacciones:causas defallo
Causasdefallo a odeu una at transaccin a sacc
1. 2. 3 3. Cadadelsistema latransaccinfallaporunerrordesoftware, hardwareodered Unerrordelatransaccin algunaoperacindelatransaccin falla,porejemplo,divisinporcero,desbordamientodeentero, Erroreslocalesalatransaccin seproducencondicionesquehace quelatransaccinnopuedaejecutarse.Porejemplo,noencontrarun dato. C Control ld deconcurrencia i la l transaccin i puede d abortar b porqueno cumplelascondicionesdecontroldeconcurrencia j delatransaccinsep produce Fallodedisco durantelaejecucin unerrordedisco,porejemploquesecaiganlascabezasdelecturay escrituradeldisco Problemasfsicos incendio, incendio fallodealimentacin, alimentacin .
12

4 4. 5.

6 6.

Transacciones:ciclodevida
Estadosdeunatransaccin
BEGIN_TRANSACTION (Inicio)Indicaelcomienzo deunatransaccin END_TRANSACTION (Finalizada)Indicaquese hanterminadolasoperaciones p (read/write) ( / )dela transaccin COMMIT_TRANSACTION COMMIT TRANSACTION(Confirmada)Indicael xitodelatransaccin.EstopermitealDBMS guardarlasmodificacionesenlaBD ROLLBACK (Anulada)Indicaelfracasodela transaccin ElDBMSdeshacelasmodificaciones transaccin. efectuadasporlatransaccin 13

Transacciones:propiedades
LaspropiedadesACID debenserimplementadasporel control l d dela l concurrencia i oporl losmtodos d d de recuperacin Atomicidad.Obienserealizantodaslasoperaciones delatransaccinadecuadamenteobiennoserealiza ninguna g deellas Consistencia.Unacorrectaejecucindeuna transaccindebellevaralaBDdesdeunestado consistente i t t aotro t t tambin bi consistente it t Durabilidad.Loscambiosdeunatransaccin confirmadahandeserpermanentes Aislamiento.Loscambiosrealizadosporuna transaccinnoconfirmadasoninvisiblesalrestode transacciones
14

Transacciones:Nivelesdeaislamiento
AlgunosSGBDpermitendefinirdiferentesnivelesde aislamiento il i paracada d transaccin. i
Nivel Lecturano comprometida Lectura comprometida Lecturarepetible Serializable Sepermiten lecturassucias,irrepetibles yfantasmas Nosepermitenlecturassucias Nosepermitenviolacionesque provoquen p q lecturassucias, ,niirrepetibles p Nosepermitenviolacionesque provoquen lecturassucias,fantasmaso irrepetibles
15

También podría gustarte