La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Transacciones y Concurrencia Bases de Datos II Universidad Argentina J. F. Kennedy - Año 2008 Maletin Yahoo => briefcase.yahoo.com Usuario => bd2_jfk Psw.

Presentaciones similares


Presentación del tema: "Transacciones y Concurrencia Bases de Datos II Universidad Argentina J. F. Kennedy - Año 2008 Maletin Yahoo => briefcase.yahoo.com Usuario => bd2_jfk Psw."— Transcripción de la presentación:

1 Transacciones y Concurrencia Bases de Datos II Universidad Argentina J. F. Kennedy - Año 2008 Maletin Yahoo => briefcase.yahoo.com Usuario => bd2_jfk Psw => kennedy

2 2 Transacción Definición de Transacción Definición de Transacción Propiedades de las Transacciones Propiedades de las Transacciones Administración de Fallas en Transacciones Administración de Fallas en Transacciones Problemas de Concurrencia Problemas de Concurrencia Two Phase Commit Two Phase Commit

3 3 Transacción Ejemplo => Un deposito bancario implica: INSERT INTO MOV (CTA, FEC, IMP)INSERT INTO MOV (CTA, FEC, IMP) VALUES ( , ,100); VALUES ( , ,100); UPDATE CTACTEUPDATE CTACTE SET SALDO = SALDO + 100; SET SALDO = SALDO + 100;

4 4 Transacción Más de una operación puede ser una unidad lógica de trabajoMás de una operación puede ser una unidad lógica de trabajo Transacción => Puede ser una o varias operacionesTransacción => Puede ser una o varias operaciones La secuencia de operaciones se deben ejecutar como una sola operación atómica (todo o nada).La secuencia de operaciones se deben ejecutar como una sola operación atómica (todo o nada).

5 5 Transacción PUNTO de CONSITENCIA: Pasa de un estado consistente de datos a otro también consistente.PUNTO de CONSITENCIA: Pasa de un estado consistente de datos a otro también consistente. UNIDAD de RECUPERO: En caso de falla del sistema se recupera la transacción completa.UNIDAD de RECUPERO: En caso de falla del sistema se recupera la transacción completa. PUNTO de SINCRONIZMO: Cada vez que termino una transacción estoy generando un punto de sincronizmo de datosPUNTO de SINCRONIZMO: Cada vez que termino una transacción estoy generando un punto de sincronizmo de datos

6 6 Administrador de Transacciones Proporciona atomicidad a través de las instrucciones: COMMIT (comprometer): indica la finalización de una transacción satisfactoria.COMMIT (comprometer): indica la finalización de una transacción satisfactoria. ROLLBACK (revertir): indica la finalización de una transacción no satisfactoria.ROLLBACK (revertir): indica la finalización de una transacción no satisfactoria.

7 7 ROLLBACK Puede ser ejecutado en dos formas: Explícitamente: el usuario o el programa instruyen al RDBMS su ejecución.Explícitamente: el usuario o el programa instruyen al RDBMS su ejecución. Implícitamente: ante cualquier falla (comunicación, hardware, energía, etc.) el RDBMS hará un rollback de las transacciones en curso.Implícitamente: ante cualquier falla (comunicación, hardware, energía, etc.) el RDBMS hará un rollback de las transacciones en curso.

8 8 Ciclo de vida de una Transacción BEGIN TRANSACTION COMMITROLLBACK COMMIT Punto de confirmación (estado consistente) Punto de confirmación INSERT… UPDATE… DELETE… : (estado inconsistente)(estado consistente) Vuelve al último punto de confirmación (estado consistente)

9 9 Transacción Definición de Transacción Definición de Transacción Propiedades de las Transacciones Propiedades de las Transacciones Administración de Fallas en Transacciones Administración de Fallas en Transacciones Problemas de Concurrencia Problemas de Concurrencia Two Phase Commit Two Phase Commit

10 10 Transacción Una transacción es una secuencia de operaciones realizadas como una sola unidad lógica de trabajo. Una unidad lógica de trabajo debe exhibir cuatro propiedades, conocidas como propiedades de Atomicidad, Consistencia (coherencia), Aislamiento y Durabilidad (ACID), para ser calificada como transacción.

11 11 Propiedades ACID Atomicidad: es indivisible, todo o nada.Atomicidad: es indivisible, todo o nada. Consistencia: transforma un estado consistente de la base de datos en otro igual, sin necesidad de conservar la consistencia en todos los puntos intermediosConsistencia: transforma un estado consistente de la base de datos en otro igual, sin necesidad de conservar la consistencia en todos los puntos intermedios Aislamiento: aunque en general hay muchas transacciones ejecutándose en forma concurrente, las actualizaciones de una transacción dada están ocultas ante las demás, hasta que esa transacción sea confirmadaAislamiento: aunque en general hay muchas transacciones ejecutándose en forma concurrente, las actualizaciones de una transacción dada están ocultas ante las demás, hasta que esa transacción sea confirmada Durabilidad: una vez que es confirmada, sus actualizaciones sobreviven en la base de datos aun cuando haya una caída posterior del sistema.Durabilidad: una vez que es confirmada, sus actualizaciones sobreviven en la base de datos aun cuando haya una caída posterior del sistema.

12 12 Consecuencias de la falta de Atomicidad

13 13 Oracle Para modificar un registro, la aplicación lo borra y lo inserta: BEGIN TRANSACTION; DELETE FROM ORDENES WHERE ORDEN=1234; COMMIT; >> BEGIN TRANSACTION; INSERT INTO ORDENES(…) VALUES(…); COMMIT; Microcortes El usuario acusa al departamento de sistemas de tocar sus datos. Al hacerse la modificación en dos transacciones se vuelve frecuente la pérdida de registros en forma inexplicable en la base de datos. Consecuencias de la falta de atomicidad No llega a ejecutarse en la base de datos

14 14 Oracle Modificación de un registro: BEGIN TRANSACTION; DELETE FROM ORDENES WHERE ORDEN=1234; INSERT INTO ORDENES(…) VALUES(…); COMMIT; Microcortes Se corrige el sistema haciendo que la modificación sea una operación atómica, una única transacción. Consecuencias de la falta de atomicidad

15 15 Transacción Definición de Transacción Definición de Transacción Propiedades de las Transacciones Propiedades de las Transacciones Administración de Fallas en Transacciones Administración de Fallas en Transacciones Problemas de Concurrencia Problemas de Concurrencia Two Phase Commit Two Phase Commit

16 16 Fallas: Caida del Sistema ¿Cómo se garantiza la integridad de los datos cuando se emite un ROLLBACK? ¿Como se garantiza la integridad de los datos ante una falla del sistema?

17 17 Escritura anticipada de log de transacciones Archivos de datos log de transacciones activo Directorio de logs de transacciones archivados Escritura física de las transacciones satisfactorias Nuevas transacciones Una vez lleno el log activo se copia a un directorio de almacenamiento Ante una falla del medio, a partir del último backup de los archivos de datos, se pueden reescribir físicamente todas las transacciones producidas desde el punto de backup de los mismos y hasta el momento en que se produjo la pérdida. Esta operación se llama ROLL-FORWARD. Ante una falla del sistema después de haber recibido un COMMIT, y antes de escribir físicamente las actualizaciones en la base de datos, al reiniciarse, es capaz de descubrir los valores que hay que escribir, examinando las entradas relevantes en el log de transacciones.

18 18 Fallas: Caida del Sistema

19 19 Transacción Definición de Transacción Definición de Transacción Propiedades de las Transacciones Propiedades de las Transacciones Administración de Fallas en Transacciones Administración de Fallas en Transacciones Problemas de Concurrencia Problemas de Concurrencia Two Phase Commit Two Phase Commit

20 20 Problemas de Concurrencia Modificación PerdidaModificación Perdida Modificación sin COMMITModificación sin COMMIT Análisis InconsistenteAnálisis Inconsistente

21 21 Modificación Perdida

22 22 Modificación sin COMMIT

23 23 Análisis Inconsistente

24 24 Concurrencia Se necesita una SOLUCION !!!!

25 25 Concurrencia - Bloqueo XS- XNoNoSí sNoSíSí -SíSíSí Matriz de compatibilidad de tipos de Locks

26 26 Modificación Perdida (cuadro actualizado)

27 27 Modificación sin COMMIT (cuadro actualizado)

28 28 Modificación sin COMMIT

29 29 Bloqueo: Análisis Inconsistente

30 30 Abrazo Mortal - Dead Lock

31 31 Transacción Definición de Transacción Definición de Transacción Propiedades de las Transacciones Propiedades de las Transacciones Administración de Fallas en Transacciones Administración de Fallas en Transacciones Problemas de Concurrencia Problemas de Concurrencia Two Phase Commit Two Phase Commit

32 32 Bases de Datos Distribuidas ¿Cómo se administra un COMMIT cuando actualizamos datos distribuidos en más de un DBMS? ¿Y si cuando lanzado el COMMIT se corta la comunicación con alguno de los DBMS?

33 33 Bases de Datos Distribuidas Programa Participante COMMIT - ROLLBACK ¿Quién verifica que todos los Participantes responda con un simple OK?

34 34 BD Distribuidas – Confirmación de dos Fases El COMMIT o ROLLBACK "global" es manejado por un componente del sistema llamado coordinador que: Garantizar que los DBMS confirmen o deshagan al unísono las actualizaciones de las que son responsablesGarantizar que los DBMS confirmen o deshagan al unísono las actualizaciones de las que son responsables Proporcionar esa garantía aunque el sistema falle a mitad del procesoProporcionar esa garantía aunque el sistema falle a mitad del proceso

35 35 Confirmación de dos Fases Fase 1 Coordinador Participante Da instrucciones a todos los administradores de recursos a fin de que estén listos para manejar la transacción "de una u otra forma". En la práctica esto significa que cada participante en el proceso debe forzar todos los registros de log de los recursos locales usados por la transacción, hacia su propio log físico (es decir, hacia el almacenamiento no volátil), esto con el fin de que, sin importar qué pase después, el administrador de recursos tenga ahora un registro permanente del trabajo que hizo a nombre de la transacción y por lo tanto sea capaz de confirmar o deshacer las actualizaciones según sea necesario. log Fin Transacción Programa

36 36 Confirmación de dos Fases Fase 1 Coordinador Participante Suponiendo que la escritura forzada es satisfactoria, el administrador de recursos responde ahora un "OK" al coordinador, y en caso contrario responde "No OK". OK / No OK Programa

37 37 Confirmación de dos Fases Fase 2 Coordinador Participante Cuando el coordinador ha recibido las respuestas de todos los participantes, fuerza una entrada en su propio log físico registrando su decisión con respecto a la transacción. Si todas las respuestas fueron "OK", esa decisión es "confirmar", y si alguna respuesta fue "No OK", la decisión es "deshacer". log Programa

38 38 Confirmación de dos Fases Fase 2 Coordinador Participante El coordinador informa después su decisión a cada participante y luego cada participante debe confirmar o deshacer la transacción localmente según se le indica. COMMIT - ROLLBACK Programa


Descargar ppt "Transacciones y Concurrencia Bases de Datos II Universidad Argentina J. F. Kennedy - Año 2008 Maletin Yahoo => briefcase.yahoo.com Usuario => bd2_jfk Psw."

Presentaciones similares


Anuncios Google