Transacciones y Concurrencia Bases de Datos II Universidad Argentina J. F. Kennedy - Año 2008...

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

Transcript of Transacciones y Concurrencia Bases de Datos II Universidad Argentina J. F. Kennedy - Año 2008...

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

Transacciones y Transacciones y ConcurrenciaConcurrencia

Bases de Datos IIBases de Datos II

Universidad Argentina J. F. Kennedy - Año 2008

Maletin Yahoo => Maletin Yahoo => briefcase.yahoo.combriefcase.yahoo.com

Usuario => bd2_jfkUsuario => bd2_jfk

Psw => kennedy Psw => kennedy

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

22

TransacciónTransacciónDefinición de TransacciónDefinición de Transacción

Propiedades de las TransaccionesPropiedades de las Transacciones

Administración de Fallas en TransaccionesAdministración de Fallas en Transacciones

Problemas de ConcurrenciaProblemas de Concurrencia

Two Phase CommitTwo Phase Commit

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

33

TransacciónTransacción

Ejemplo => Un deposito bancario implica:Ejemplo => Un deposito bancario implica:

• INSERT INTO MOV (CTA, FEC, IMP)INSERT INTO MOV (CTA, FEC, IMP)

VALUES (11223344,”2008-01-15”,100);VALUES (11223344,”2008-01-15”,100);

• UPDATE CTACTEUPDATE CTACTE

SET SALDO = SALDO + 100;SET SALDO = SALDO + 100;

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

44

TransacciónTransacción

• Más de una operación puede ser una unidad Más de una operación puede ser una unidad lógica de trabajológica de trabajo

• Transacción => Puede ser una o varias Transacción => Puede ser una o varias operacionesoperaciones

• La secuencia de operaciones se deben ejecutar La secuencia de operaciones se deben ejecutar como una sola operación como una sola operación atómicaatómica (todo o nada). (todo o nada).

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

55

TransacciónTransacción

• PUNTO de CONSITENCIA:PUNTO de CONSITENCIA: Pasa de un estado Pasa de un estado consistente de datos a otro también consistente.consistente de datos a otro también consistente.

• UNIDAD de RECUPERO:UNIDAD de RECUPERO: En caso de falla del En caso de falla del sistema se recupera la transacción completa.sistema se recupera la transacción completa.

• PUNTO de SINCRONIZMO:PUNTO de SINCRONIZMO: Cada vez que Cada vez que termino una transacción estoy generando un termino una transacción estoy generando un punto de sincronizmo de datospunto de sincronizmo de datos

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

66

Administrador de Administrador de TransaccionesTransacciones

Proporciona atomicidad a través de las Proporciona atomicidad a través de las instrucciones:instrucciones:

• COMMITCOMMIT (comprometer): (comprometer): indica la indica la finalización de una transacción finalización de una transacción satisfactoria.satisfactoria.

• ROLLBACKROLLBACK (revertir): (revertir): indica la finalización indica la finalización de una transacción de una transacción no satisfactoriano satisfactoria. .

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

77

ROLLBACKROLLBACK

Puede ser ejecutado en dos formas:Puede ser ejecutado en dos formas:

• Explícitamente:Explícitamente: el usuario o el programa el usuario o el programa instruyen al RDBMS su ejecución.instruyen al RDBMS su ejecución.

• Implícitamente:Implícitamente: ante cualquier falla ante cualquier falla (comunicación, hardware, energía, etc.) el (comunicación, hardware, energía, etc.) el RDBMS hará un rollback de las RDBMS hará un rollback de las transacciones en curso. transacciones en curso.

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

88

Ciclo de vida de una Ciclo de vida de una TransacciónTransacción

BEGIN TRANSACTION

COMMIT ROLLBACK

COMMITPunto 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)

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

99

TransacciónTransacción Definición de TransacciónDefinición de Transacción

Propiedades de las TransaccionesPropiedades de las Transacciones

Administración de Fallas en TransaccionesAdministración de Fallas en Transacciones

Problemas de ConcurrenciaProblemas de Concurrencia

Two Phase CommitTwo Phase Commit

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

1010

TransacciónTransacciónhttp://technet.microsoft.com/es-es/library/ms190612.aspx

Una transacción es una secuencia de operaciones Una transacción es una secuencia de operaciones realizadas como una sola unidad lógica de realizadas como una sola unidad lógica de

trabajo.trabajo.

Una unidad lógica de trabajo debe exhibir cuatro Una unidad lógica de trabajo debe exhibir cuatro propiedades, conocidas como propiedades de propiedades, conocidas como propiedades de

Atomicidad, Consistencia (coherencia), Atomicidad, Consistencia (coherencia), Aislamiento y Durabilidad (ACID),Aislamiento y Durabilidad (ACID), para ser para ser

calificada como transacción.calificada como transacción.

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

1111

Propiedades “ACID”Propiedades “ACID”

• AtomicidadAtomicidad:: es indivisible, todo o nada. es indivisible, todo o nada.

• Consistencia:Consistencia: transforma un estado consistente de la transforma un estado consistente de la base de datos en otro igual, sin necesidad de conservar base de datos en otro igual, sin necesidad de conservar la consistencia en todos los puntos intermedios la consistencia en todos los puntos intermedios

• Aislamiento:Aislamiento: aunque en general hay muchas aunque en general hay muchas transacciones ejecutándose en forma concurrente, las transacciones ejecutándose en forma concurrente, las actualizaciones de una transacción dada están ocultas actualizaciones de una transacción dada están ocultas ante las demás, hasta que esa transacción sea ante las demás, hasta que esa transacción sea confirmada confirmada

• Durabilidad:Durabilidad: u una vez que es confirmada, sus na vez que es confirmada, sus actualizaciones sobreviven en la base de datos aun actualizaciones sobreviven en la base de datos aun cuando haya una caída posterior del sistema.cuando haya una caída posterior del sistema.

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

1212

Consecuencias de la falta Consecuencias de la falta

de Atomicidadde Atomicidad

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

1313

Oracle

Para modificar un registro, la aplicación lo borra y lo inserta:

BEGIN TRANSACTION;DELETE FROM ORDENES WHERE ORDEN=1234;COMMIT;<< Pérdida de enlace >>>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

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

1414

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

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

1515

TransacciónTransacción

Definición de TransacciónDefinición de Transacción

Propiedades de las TransaccionesPropiedades de las Transacciones

Administración de Fallas en TransaccionesAdministración de Fallas en Transacciones

Problemas de ConcurrenciaProblemas de Concurrencia

Two Phase CommitTwo Phase Commit

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

1616

Fallas: Caida del SistemaFallas: Caida del Sistema

¿Cómo se garantiza la integridad de los ¿Cómo se garantiza la integridad de los datos cuando se emite un ROLLBACK?datos cuando se emite un ROLLBACK?

¿Como se garantiza la integridad de los ¿Como se garantiza la integridad de los datos ante una falla del sistema?datos ante una falla del sistema?

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

1717

Escritura anticipada de log de Escritura anticipada de log de transacciones transacciones

Archivosde datos

log de transacciones

activo

Directorio de logs de transacciones archivados

Escritura física de las transaccionessatisfactorias

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.

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

1818

Fallas: Caida del SistemaFallas: Caida del Sistema

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

1919

TransacciónTransacción Definición de TransacciónDefinición de Transacción

Propiedades de las TransaccionesPropiedades de las Transacciones

Administración de Fallas en TransaccionesAdministración de Fallas en Transacciones

Problemas de ConcurrenciaProblemas de Concurrencia

Two Phase CommitTwo Phase Commit

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

2020

Problemas de ConcurrenciaProblemas de Concurrencia

• Modificación PerdidaModificación Perdida

• Modificación sin COMMITModificación sin COMMIT

• Análisis InconsistenteAnálisis Inconsistente

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

2121

Modificación PerdidaModificación Perdida

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

2222

Modificación sin COMMITModificación sin COMMIT

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

2323

Análisis InconsistenteAnálisis Inconsistente

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

2424

ConcurrenciaConcurrencia

Se necesita una SOLUCION !!!!

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

2525

Concurrencia - BloqueoConcurrencia - Bloqueo

XX SS --

XX NoNo NoNo SíSí

ss NoNo SíSí SíSí

-- SíSí SíSí SíSí

Matriz de compatibilidad de tipos de LocksMatriz de compatibilidad de tipos de Locks

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

2626

Modificación PerdidaModificación Perdida(cuadro actualizado)(cuadro actualizado)

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

2727

Modificación sin COMMITModificación sin COMMIT(cuadro actualizado)(cuadro actualizado)

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

2828

Modificación sin COMMITModificación sin COMMIT

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

2929

Bloqueo: Análisis InconsistenteBloqueo: Análisis Inconsistente

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

3030

Abrazo Mortal - Dead LockAbrazo Mortal - Dead Lock

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

3131

TransacciónTransacción Definición de TransacciónDefinición de Transacción

Propiedades de las TransaccionesPropiedades de las Transacciones

Administración de Fallas en TransaccionesAdministración de Fallas en Transacciones

Problemas de ConcurrenciaProblemas de Concurrencia

Two Phase CommitTwo Phase Commit

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

3232

Bases de Datos DistribuidasBases de Datos Distribuidas

¿Cómo se administra un COMMIT ¿Cómo se administra un COMMIT cuando actualizamos datos cuando actualizamos datos distribuidos en más de un DBMS?distribuidos en más de un DBMS?

¿Y si cuando lanzado el COMMIT ¿Y si cuando lanzado el COMMIT se corta la comunicación con se corta la comunicación con alguno de los DBMS?alguno de los DBMS?

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

3333

Bases de Datos DistribuidasBases de Datos Distribuidas

Programa

Participante

Participante

Participante

COMMIT - ROLLBACK

COMMIT - ROLLBACK

COMMIT - ROLLBACK

¿Quién verifica que ¿Quién verifica que todos los todos los “Participantes” “Participantes” responda con un responda con un simple “OK”?simple “OK”?

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

3434

BD Distribuidas – BD Distribuidas – Confirmación de dos FasesConfirmación de dos Fases

El COMMIT o ROLLBACK "global" es manejado El COMMIT o ROLLBACK "global" es manejado por un componente del sistema llamado por un componente del sistema llamado coordinador coordinador que:que:

• Garantizar que los DBMS confirmen o deshagan Garantizar que los DBMS confirmen o deshagan al unísono al unísono las actualizaciones de las que son las actualizaciones de las que son responsablesresponsables

• Proporcionar esa garantía Proporcionar esa garantía aunque el sistema aunque el sistema falle a mitad del procesofalle a mitad del proceso

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

3535

Confirmación de dos FasesConfirmación de dos FasesFase 1Fase 1

Coordinador

Participante

Participante

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

log

log

Fin Transacción

Fin Tra

nsacc

ión

Fin Transacción

Programa

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

3636

Confirmación de dos FasesConfirmación de dos FasesFase 1Fase 1

Coordinador

Participante

Participante

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

OK / No OK

OK / No OK

Programa

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

3737

Confirmación de dos FasesConfirmación de dos FasesFase 2Fase 2

Coordinador

Participante

Participante

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

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

3838

Confirmación de dos FasesConfirmación de dos FasesFase 2Fase 2

Coordinador

Participante

Participante

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

COMMIT - ROLLBACK

COMMIT - ROLLBACK

Programa