Sie sind auf Seite 1von 3

Transaccin: conjunto de operaciones que forman una nica unidad lgica de trabajo. Ejemplo: la transferencia de dineroentredoscuentas.2actualizaciones,unaparacadacuenta.

. Atomicidad: o se ejecutan todas las acciones de una transaccin, o bien, en caso de fallo, se deshagan los efectos parciales. Consistencia: la ejecucin aislada de la transaccin conserva la consistencia de la bd. (Sin otra transaccin concurrente).Lainformacinnoesalterada. Aislamiento:elSMBD(DBMS)debeproporcionarmecanismosparaaislarlastransaccionesdeotrastransaccionesque seejecutendemaneraconcurrente. Durabilidad:traslafinalizacinconxitodeunatransaccin,loscambiosrealizadosenlabdpermanecen,inclusosi hayfallosenelsistema.

Estadosdeunatransaccin: Activa:estadoinicial.Permaneceasdurantesuejecucin. Parcialmentecomprometida:seejecutlaltimainstruccin. Fallida:cuandosedeterminaquenopuedecontinuarsuejecucin. Abortada.Transaccinterminadasinxito. Retrocedido:cuandosehandeshecholoscambiosefectuadosporlatransaccinabortada. Comprometida:transaccinterminadaconxito. Ti:leer(A);A:=A50;escribir(A);leer(B);B:=B+50;escribir(B); Consistencia:lasumadeAyBnodebeseralteradaalejecutarlatransaccin.Responsable:programador.Siunabdes consistente antes de ejecutar la T, seguir sindolo despus de ejecutarla. Si no se cumpliera el requisito de consistencialatransaccinpodracrearodestruirdinero. Atomicidad:seproduceunfallodespusdeescribir(A)yantesdeescribir(B).ElDBMSmantienevaloresantiguosen disco. Durabilidad:completadalatransaccin,elresultadoespermanente.Responsable:DBMS Aislamiento: concurrencia. Incluso si se aseguran las propiedades de consistencia y de atomicidad para cada transaccin,sivariastransaccionesseejecutanconcurrentemente,sepuedenentrelazarsusoperacionesdeunmodo nodeseado,produciendounestadoinconsistente.Ejecutarlassecuencialmente.Responsable:DBMS.Aseguraqueel resultadoobtenidoalejecutarconcurrentementelasTesunestadodelsistemaequivalenteaunoobtenidoalejecutar unatrasotraenalgnorden. Ventajasdelaconcurrencia: Productividadyutilizacinderecursosmejoradas:utilizacinelCPUylosdiscosdurospuedentrabajarenparalelo. OperacionesdeE/SsepuedenrealizarenparaleloconelCPU.MientrasunaTejecutaunalecturaoescrituraenun disco,otraTpuedeejecutarseenelCPUyunaterceraTejecutaunalecturaoescrituraenotrodisco.Incrementodela PRODUCTIVIDADdelsistema(elnmerodeTquepuedeejecutarenuntiempodado).LaUTILIZACINdelprocesador ydiscoaumenta;estnmenostiempodesocupados. Tiempodeesperareducido:existeunamezcladeTqueseejecutanenelsistema,algunascortasyotraslargas.Sise ejecutaransecuencialmente,unaTcortadebeesperaraquelaTlargaanteriorsecomplete,locualpodraproducirun retardoimpredecible.SilasToperanenpartesdiferentesdelabdesmejorhacerquelohaganconcurrentemente, compartiendolosciclosdelCPUylosaccesosadiscoentreellas.Semejoraeltiempomedioderespuesta. Planificacin Son secuencias de ejecucin. Representan el orden cronolgico en el que se ejecutan las instrucciones en el sistema. Secuenciales>T1luegoT2T2>T1(n!planificacionessecuencialesvlidasdistintas) CuandoelDBMSejecutaconcurrentementevariasT,laplanificacincorrespondientenotieneporqusersecuencial.ElOS puedeejecutarunaTduranteuntiempopequeo,luegocambiaraotraT,yassucesivamente. Sepuedeasegurarlaconsistenciadelabdenunaejecucinconcurrentesiseestsegurodequecualquierplanificacinque seejecutetieneelmismoefectoqueotraquesehubieseejecutadosinconcurrencia.Esdecir,laplanificacindebeser,en ciertomodo,equivalenteaunaplanificacinsecuencial.

Secuencialidad Secuencialidad en cuanto a conflictos: Sean dos instrucciones, Ii e Ij, pertenecientes a dos transacciones Ti y Tj respectivamente (ij). Si se refieren a distintos elementos de datos se pueden intercambiar sin afectar al resultado de cualquier instruccin de la planificacin. Sin embargo, si se refieren al mismo elemento Q entonces el orden de los dos pasos puede ser importante. 4 casos: Ii=leer(Q); Ij=leer(Q): el orden no importa. Ii=leer(Q);Ij=escribir(Q): el orden importa. Ii=escribir(Q);Ij=leer(Q): el orden importa. Ii=escribir(Q);Ij=escribir(Q): el orden no afecta ni a Ti ni a Tj, pero si a la siguiente instruccin de leer(Q) Se dice que Ii e Ij estn en conflicto si existen operaciones de diferentes T sobre el mismo elemento de datos, y al menos una de esas instrucciones es una operacin de escribir. Si una planificacin P se puede transformar en otra P por medio de una serie de intercambios de instrucciones no conflictivas, se dice que P y P son equivalentes en cuanto a conflictos. Secuencialidad en cuanto a vistas: considerar dos Planificaciones, P y P, en las cuales participa el mismo conjunto de T. Se dice que P y P son equivalentes en cuanto a vistas si se cumplen las 3 condiciones siguientes: 1. Para todo Q, si Ti lee el valor inicial de Q en P, entonces Ti debe leer tambin el valor inicial de Q en P. 2. Para todo Q, si Ti ejecuta leer(Q) en P y el valor lo ha producido Tj (si existe) entonces, en P, la T Ti debe leer tambin el valor de Q que haya producido Tj. 3. Para todo Q, la transicin (si existe) que realice la ltima operacin escribir(Q) en P, debe realizar la ltima operacin escribir(Q) en P.

Recuperabilidad Una planificacin recuperable es aquella en la que para todo par de transacciones Ti y Tj tales que Tj lee elementos de datos que ha escrito previamente Ti, la operacin comprometer de Ti aparece antes que la de Tj. Una planificacin sin cascada es aquella para la que todo par de T, Ti y Tj tales que Tj lee un elemento de datos que ha escrito previamente Ti, la operacin comprometer de Ti aparece antes que la operacin de lectura de Tj.

Transacciones SQL. Se especifica el comienzo de una T explcitamente. Y terminan con COMMIT WORK o ROLLBACK WORK. Si no incluye ninguna, los cambios o bien se comprometen o se retroceden, no se especifica cul de las dos acciones tiene lugar. La definicin de secuencialidad es que la P debe tener el mismo efecto que tendra una P secuencial. Bloqueos Compartido. Si una Ti obtiene un bloqueo compartido (C) sobre Q, entonces Ti puede leer Q pero no escribirlo. Exclusivo. Si una Ti obtiene un bloqueo exclusivo (X) sobre Q, entonces Ti puede tanto leer como escribir Q. Notar que una T debe poseer un bloqueo sobre Q durante todo el tiempo que lo acceda. No siempre es aconsejable que una T desbloquee un Q inmediatamente despus de finalizar su acceso sobre l, ya que puede dejar de asegurarse la secuencialidad. Cuando aparece un interbloqueo, el sistema debe retroceder una de las T. Luego se desbloquean los elementos de datos que estuvieran bloqueados por la T y estarn disponibles para la otra T, la cual debe continuar su ejecucin. Si no se usan bloqueos o se desbloquean los Q tan pronto como sea posible despus de leerlos o escribirlos, se pueden obtener estados inconsistentes. Pero si no se desbloquea un elemento de datos antes de solicitar un bloqueo sobre otro, pueden producirse interbloqueos. Los interbloqueos son un mal necesario asociado a los bloqueos si se quieren evitar estados inconsistentes.

Se exige que toda T siga un conjunto de reglas llamado protocolo de bloqueo, que indica el momento en que una T puede bloquear y desbloquear cada uno de los elementos de datos. Este protocolo restringe el nmero de planificaciones posible. Inanicin. Si T2 tiene un bloqueoC(Q) y la T1 solicita un bloqueoX(Q). T1 tiene que esperar. Pero una T3 solicita un bloqueoC(Q), el gestor se lo concede, luego T4 solicita un bloqueoC(Q) antes de que T3 lo desbloquee, y as sucesivamente. Se puede evitar si para conceder un bloqueo 1) No exista otra T que posea un bloqueo sobre Q en conflicto. 2) No exista otra transaccin que est esperando un bloqueo sobre Q y que lo haya solicitado antes que Ti. Protocolo de bloqueo de dos fases. Asegura la secuencialidad. Exige que cada T realice las peticiones de bloqueo y desbloqueo de dos fases: 1) Crecimiento. Una T puede obtener bloqueos pero no puede liberarlos. 2) Decrecimiento. Una T puede liberar bloqueos pero no puede obtener ninguno nuevo. No asegura la ausencia de interbloqueos. Protocolo estricto: una T debe poseer todos los bloqueos en modo exclusivo que tome hasta que dicha T se complete. Riguroso: exige que se posean todos los bloqueos hasta que se comprometa la T. Conversiones de bloqueo. Se cambia un bloqueo compartido por uno exclusivo y viceversa. De compartido a exclusivo: subir (fase crecimiento), de exclusivo a compartido: bajar (fase decrecimiento). Los bloqueos estricto de dos fases y riguroso de dos fases (con conversin de bloqueos) se usan ampliamente en sistemas de bases de datos comerciales. Tratamiento de interbloqueos La nica solucin a una situacin de interbloqueo dentro de un sistema es que se invoque alguna accin drstica, como retroceder alguna de las T involucradas, puede ser parcial o total. Existen 2 mtodos: Prevencin de interbloqueos: asegura que el sistema nunca llega a un estado de interbloqueo. Se usa cuando la probabilidad de que el sistema llegue a un interbloqueo es relativamente alta. Dos enfoques: 1) Asegura que no puede haber esperas cclicas, ordenando las peticiones de bloqueo o exigiendo que todos los bloqueos se adquieran juntos. Exige que cada T bloquee todos sus elementos de datos antes de comenzar su ejecucin. O bien se bloquean todos en un paso o ninguno de ellos. 2) Realiza retrocesos de las T en lugar de esperar un bloqueo, siempre que el bloqueo pueda llevar potencialmente a un interbloqueo. Dos esquemas: a) esperar-morir (tcnica sin expropiacin) se basa en marcas temporales. Si Ti solicita un elemento de datos que posee Tj, Ti puede esperar slo si tiene una marca temporal ms pequea que la de Tj (es decir, Ti es anterior a Tj). b) herir-esperar (tcnica con expropiacin). Cuando Ti solicita un elemento de datos que posee Tj, Ti puede esperar slo si tiene una marca temporal mayor que la de Tj (es decir, Ti es ms reciente que Tj). En otro caso Tj se retrocede (Ti hiere a Tj). Deteccin y recuperacin de interbloqueos: permite que el sistema llegue a un estado de interbloqueo y trata de recuperarse. Es ms eficiente, pero necesita una sobrecarga que incluye no slo el costo en tiempo de ejecucin para mantener la informacin necesaria para ejecutar el algoritmo de deteccin, sino tambin las prdidas potenciales inherentes a la recuperacin de un interbloqueo. Peridicamente se invoca a un algoritmo que examina el estado del sistema para determinar si hay un interbloqueo. Si lo hay, entonces el sistema debe intentar recuperarse. Para ello, el sistema debe: a) Mantener informacin sobre la asignacin de los elementos de datos a las transacciones, as como de toda peticin de elemento de datos pendiente. b) Proporcionar un algoritmo que use esta informacin para determinar si el sistema ha entrado un en estado de interbloqueo. c) Recuperarse del interbloqueo cuando el algoritmo de deteccin determine que existe uno. La solucin ms comn para recuperarse es retroceder una o ms T. 3 acciones: 1) Seleccin de la vctima. Se eligen aquellas que incurran en un costo mnimo. 2) Retroceso. Se debe determinar hasta donde se retroceder cada T. 3) Inanicin. Se puede elegir siempre a la(s) misma(s) T como vctima. Se debe garantizar que una T puede elegirse como vctima slo un nmero finito (y pequeo) de veces.

Das könnte Ihnen auch gefallen