48
ESCUELA DE CIENCIAS DE LA COMPUTACION CAPÍTULO 20 CAPÍTULO 20 GESTIÓN DE TRANSACCIONES CUESTIONES DE REPASO Argenis Riofrío

Gestion de Transacciones - Cap 20

Embed Size (px)

Citation preview

Page 1: Gestion de Transacciones - Cap 20

ESCUELA DE CIENCIAS DE LA COMPUTACION

CAPÍTULO 20CAPÍTULO 20

GESTIÓN DE TRANSACCIONES

CUESTIONES DE REPASO

Argenis Riofrío

Page 2: Gestion de Transacciones - Cap 20

20.1 Explique el concepto de

transacción. ¿Por qué son las

Argenis Riofrío

transacción. ¿Por qué son las transacciones unidades de

operación tan importantes en un SGBD ?

Page 3: Gestion de Transacciones - Cap 20

Son un conjunto de acciones que se

realizan de una manera de trabajo

lógico que lleva a la base de datos, estás

pueden ser coherentes o incoherentes,

Argenis Riofrío

pueden ser coherentes o incoherentes,

pero que en su respuesta darán un

resultado acorde con lo solicitado.

Page 4: Gestion de Transacciones - Cap 20

20.2

Los aspectos de coherencia y fiabilidad de las

transacciones se deben a las propiedades

ACID de las mismas. Explique cada una de

Argenis Riofrío

ACID de las mismas. Explique cada una de

dichas propiedades y cómo se relacionan

con los mecanismos de control de

concurrencia y de recuperación.

Proporcione ejemplos para ilustrar su

respuesta.

Page 5: Gestion de Transacciones - Cap 20

Las propiedades de las transacciones son:

◄ Atomicidad

◄ Coherencia

◄ Aislamiento

Argenis Riofrío

◄ Aislamiento

◄ Permanencia

Page 6: Gestion de Transacciones - Cap 20

◄ Atomicidad

o Ejemplo

Si se está realizando una transacción de dinero

de una cuenta a otra en un banco, y antes de

Argenis Riofrío

de una cuenta a otra en un banco, y antes de

confirmar el sistema se para y no termina la

operación, por lo tanto la transacción no se

realiza.

Page 7: Gestion de Transacciones - Cap 20

◄ Coherencia

o Ejemplo

En caso de una transacción de dinero de una

cuenta a otra, pude ocurrir que se realizó a una

Argenis Riofrío

cuenta a otra, pude ocurrir que se realizó a una

cuenta errónea por lo tanto no es responsable

el SGBD, entonces la incoherencia viene a partir

de los desarrolladores, pero se cumple con la

operación que ha sido programada.

Page 8: Gestion de Transacciones - Cap 20

◄ Aislamiento

o Ejemplo

Si existió un error en la transacción del dinero

no debería afectar las demás, ya que se

Argenis Riofrío

no debería afectar las demás, ya que se

bloquearían para que puedan acceder otros

usuarios, por lo tanto debería tratarse como

acceso independiente, por usuario o por

transacciones.

Page 9: Gestion de Transacciones - Cap 20

◄ Permanencia

o Ejemplo

En el momento de realizar la transacción del

traspaso de dinero de una cuenta a otra, debe

Argenis Riofrío

traspaso de dinero de una cuenta a otra, debe

ser confirmada en el caso de ORACLE, se utiliza

en COMMIT, que permitirá confirmar la

permanencia de los datos, y además que en

caso de un error debe guardarse

automáticamente.

Page 10: Gestion de Transacciones - Cap 20

20.3

Describa, con ejemplos, los tipos de

problemas que pueden producirse en un

entorno multiusuario cuando se permite un

Argenis Riofrío

entorno multiusuario cuando se permite un

acceso concurrente a la base de datos.

Page 11: Gestion de Transacciones - Cap 20

• EL problema de la actualización perdida:

Lee $50 Lee $50

Deposita $10 Retira $30

Lee $60

T1 T2

Argenis Riofrío

Deposita $10 Retira $30

Nuevo saldo $60 Nuevo saldo $20Bloqueo T2

Nuevo saldo $60 Nuevo saldo $30Se perdió $10

Page 12: Gestion de Transacciones - Cap 20

• EL problema de la dependencia no

confirmada (o de la lectura sucia):

T1 T2

Lee $50

Hasta que haya

confirmado

Argenis Riofrío

Lee $20

Lee $50

Deposita $10

Retira $30

Nuevo saldo $30

Nuevo saldo $20

Nuevo saldo $60

confirmado

Hay un fallo y

aborta y regresa

a $50 Bloqueo T1

He perdido $30

Lee $50 Confirmado

Page 13: Gestion de Transacciones - Cap 20

• EL problema del análisis incoherente:

Esto sucede cuando se regresa nuevamente

a leer la tupla, pero esta ya ha sido

cambiada por tanto tendrá un nuevo valor y

Argenis Riofrío

cambiada por tanto tendrá un nuevo valor y

por lo tanto el cálculo realizado será

incoherente, para resolver esto se debe

realizar lo mismo que en el problema

anterior.

Page 14: Gestion de Transacciones - Cap 20

20.4

Describa en detalle un mecanismo para

control de concurrencia que pueda usarse

para garantizar que los tipos de problemas

enunciados en la cuestión 20.3 no

Argenis Riofrío

enunciados en la cuestión 20.3 no

produzcan. Muestre cómo dicho

mecanismo evita que aparezcan esos

problemas. Explique cómo interacciona el

mecanismo de control de concurrencia con

el mecanismo de transacciones.

Page 15: Gestion de Transacciones - Cap 20

• Una solución es que se ejecute solo una

transacción cada vez, es decir que para que

continúe con otra transacción esta debe

confirmarse para que comience la siguiente.

Argenis Riofrío

• Otra solución es que se ejecuten las

transacciones en paralelo y sin que

interfieran unas con otras.

Page 16: Gestion de Transacciones - Cap 20

• Existen dos planificaciones que se utilizan

para garantizar la concurrencia de

incoherencia.

• Planificación Serializable.- Es encontrar

planificaciones no serie, es decir que

Argenis Riofrío

planificaciones no serie, es decir que

produzca los mismos resultados que alguna

ejecución en serie. El orden es importante

de esta planificación debido a que en una

transacción escribe un elemento, y otra lee

o escribe el mismo elemento.

Page 17: Gestion de Transacciones - Cap 20

• Planificación recuperable.- Es que para cada

para de transacciones T1 y T2, si T1 lee un

elemento de datos previamente escrito por

T2, entonces la confirmación de T1 precede

Argenis Riofrío

T2, entonces la confirmación de T1 precede

de la confirmación de T2.

Page 18: Gestion de Transacciones - Cap 20

20.5

Explique los conceptos de planificaciones

serie, no serie y serializables. Indique las

reglas de equivalencia de planificaciones.

Argenis Riofrío

reglas de equivalencia de planificaciones.

Page 19: Gestion de Transacciones - Cap 20

Planificaciones no serie.- Es en la cual las

operaciones de un conjunto de

transacciones concurrentes están

entrelazadas.

Argenis Riofrío

entrelazadas.

Planificaciones no serie.- Es la cual las

operaciones de cada transacción se ejecutan

consecutivamente sin que se entrelacen

operaciones de otras transacciones.

Page 20: Gestion de Transacciones - Cap 20

Planificaciones serializables.- Se dice que si

el conjunto de transacciones se ejecuta

concurrentemente y si produce los mismos

resultados que alguna ejecución en serie, se

Argenis Riofrío

resultados que alguna ejecución en serie, se

denomina planificación serializable.

Page 21: Gestion de Transacciones - Cap 20

20.6

Explique la diferencia entre serializabilidad

de conflictos y serializabilidad de vistas

Argenis Riofrío

de conflictos y serializabilidad de vistas

Page 22: Gestion de Transacciones - Cap 20

Serializabilidad de conflictos: Esta

planificación ordena las operaciones

conflictivas de la misma manera que alguna

de las posibles ejecuciones serie.

Argenis Riofrío

Serializabilidad de vistas: Si es equivalente en

términos de vistas a una planificación en

serie, o si es serializable en términos de

conflictos, pero que no lo es vista a la

inversa.

Page 23: Gestion de Transacciones - Cap 20

20.7

Explique los tipos de problemas que pueden

tener lugar con los mecanismos de control

de concurrencia basados en bloqueo y las

Argenis Riofrío

de concurrencia basados en bloqueo y las

acciones que el SGBD puede tomar para

prevenirlos.

Page 24: Gestion de Transacciones - Cap 20

Anulación en cascada

Es que en una única transacción conduce a una serie de anulaciones.

Se consigue en dos faces, que consiste en dejar la liberación de todos los bloqueos hasta el final de la

Argenis Riofrío

liberación de todos los bloqueos hasta el final de la transacción.

Se puede provocar interbloqueos

Debido a que las transacciones pueden tener que esperar a que se liberen los bloqueos sobre elementos de datos establecidos.

Page 25: Gestion de Transacciones - Cap 20

Puede existir que las transacciones queden

en bloqueo indefinido, es decir que se

queden en un estado de espera indefinida.

ACCIONES QUE TOMA SGBD

Argenis Riofrío

Para todo esto el SGBD utiliza un sistema

de prioridades en la que la prioridad vaya

aumentando a medida que lo hace el

tiempo de espera.

Se pude utilizar una cola de tipo FIFO

Page 26: Gestion de Transacciones - Cap 20

20.7

¿Por qué el bloque de dos faces no seria un

esquema de control de concurrencia

apropiado para los índices? Explique otro

Argenis Riofrío

apropiado para los índices? Explique otro

esquema de bloque más apropiado para

índices basados en árbol.

Page 27: Gestion de Transacciones - Cap 20

Debido a que se puede acceder con

frecuencia a los índices de nivel más altos de

los árboles, por lo tanto existirá una

contienda por los bloqueos.

Argenis Riofrío

Un bloque eficiente sería el acoplamiento

de bloqueos que consiste en bloquear un

nodo hijo y liberar el bloqueo en el nodo

padre si es posible.

Page 28: Gestion de Transacciones - Cap 20

20.9

¿Qué es una marca temporal? ¿En qué se

diferencian los protocolos de control de

Argenis Riofrío

diferencian los protocolos de control de

concurrencia basados en marcas

temporales de los basados en bloques?

Page 29: Gestion de Transacciones - Cap 20

Una marca temporal es un identificador unívoco

creado por el SGBD y que indica el tiempo de inicio

relativo de una transacción.

En el control de concurrencia basado en bloques

existen dos fases: el la una la de crecimiento se

Argenis Riofrío

existen dos fases: el la una la de crecimiento se

adquiere todos los bloques y en la fase de

decrecimiento se empieza a liberar cada uno de

estos bloques, mientras que en la que es basada

en marcas temporales se ubican en orden como

llegaron, y tienen prioridad según su marca

temporal sea más pequeña.

Page 30: Gestion de Transacciones - Cap 20

20.10

Describa el protocolo básico de ordenación

de marcas temporales para el control de

concurrencia. ¿Qué es la regla de escritura

Argenis Riofrío

concurrencia. ¿Qué es la regla de escritura

de Thomas y como afecta al protocolo

básico de ordenación de marcas

temporales?

Page 31: Gestion de Transacciones - Cap 20

a) Cuando un transacción T ejecuta un comando

read:

La transacción trata de leer un elemento que ya

ha actualizado por un operación posterior, por lo

que la transacción llega tarde y cualquier datos

Argenis Riofrío

que la transacción llega tarde y cualquier datos

que reciba será incoherente, esta deberá ser

abortada y reiniciada con una nueva marca

temporal. En caso contrario la operación se

puede realizar.

Page 32: Gestion de Transacciones - Cap 20

b) Cuando un transacción T ejecuta un

comando write:

La transacción solicita escribir un elemento

que ya ha sido por una operación más

Argenis Riofrío

reciente, una operación está ya

actualizando este elemento y sería

erróneo volver actualizar el elemento

ahora, en caso contrario la operación se

realiza.

Page 33: Gestion de Transacciones - Cap 20

Regla de escritura de Thomas

Se utiliza para modificar el protocolo

básico de ordenación, con el fin de

proporcionar un mayor grado de

Argenis Riofrío

proporcionar un mayor grado de

concurrencia las operaciones de escritura

obsoletas.

Page 34: Gestion de Transacciones - Cap 20

20.11

Describa como pueden usarse las versiones

para mejorar el grado de concurrencia.

Argenis Riofrío

para mejorar el grado de concurrencia.

Page 35: Gestion de Transacciones - Cap 20

Las versiones pueden borrarse cuando ya

no sean necesarias.

1. La transacción T ejecuta un comando

write:

si se quiere escribir el elemento de datos

Argenis Riofrío

si se quiere escribir el elemento de datos

x se debe garantizar que este no haya sido

leído por otra transacción. Si permitimos

que se realice la operación será obvio que

la siguiente transacción no podrá leer el

dato.

Page 36: Gestion de Transacciones - Cap 20

2. La transacción T ejecuta un comando

read:

Si la transacción desea leer un elemento

de datos x, debemos asignar la mayor

Argenis Riofrío

de datos x, debemos asignar la mayor

marca temporal de datos a x. para que

pueda ejecutarse, con este protocolo las

operaciones de lectura nunca fallan.

Page 37: Gestion de Transacciones - Cap 20

20.12

Explique la diferencia entre el control de

Argenis Riofrío

Explique la diferencia entre el control de

concurrencia pesimista y el optimista.

Page 38: Gestion de Transacciones - Cap 20

En las técnicas pesimistas o conservadoras

se realiza un retardo en las transacciones

por si haya un conflicto con tras

transacciones en algún instante. En cambio

Argenis Riofrío

transacciones en algún instante. En cambio

los métodos optimistas mantienen que los

conflictos son raros, ellos permiten a las

transacciones que continúen de manera no

sincronizada y los conflictos se los confirma

al final, cuando la transacción se confirma.

Page 39: Gestion de Transacciones - Cap 20

20.13

Explique los tipos de fallos que pueden tener

lugar en un entorno de base de datos.

Argenis Riofrío

lugar en un entorno de base de datos.

Explique por qué es importante que un

multiusuario proporcione un mecanismo de

recuperación.

Page 40: Gestion de Transacciones - Cap 20

Existen muchos tipos de fallos que puedenafectar el procesamiento de la base dedatos:

◄ Paradas catastróficas del sistema: errores

Argenis Riofrío

◄ Paradas catastróficas del sistema: erroresdel software o del hardware, se pierde elcontenido de la memoria principal.

◄ Fallos de soporte físico: produce pérdida departe de la información guardada en elalmacenamiento secundario

Page 41: Gestion de Transacciones - Cap 20

◄ Errores en el software de las aplicaciones:errores lógicos en los programas, queproducen fallo de transacciones

◄ Desastres físicos naturales: incendios,inundaciones, terremotos o apagones

Argenis Riofrío

inundaciones, terremotos o apagones

◄ Destrucción Negligente: no intencionadapor operadores o usuarios

◄ Sabotaje: destrucción intencionada de losdatos, del hardware, software o de lasinstalaciones

Page 42: Gestion de Transacciones - Cap 20

20.14

Explique por qué el archivo de registro (o diario) es

una característica fundamental de cualquier

mecanismo de operación. Explique que es la

recuperación hacia delante y hacia atrás y

Argenis Riofrío

recuperación hacia delante y hacia atrás y

describa cómo se utiliza el archivo de registro de

ambos tipos de recuperación ¿Cuál es la

importancia del protocolo de registro con

escritura anticipada? ¿Cómo afectan los puntos

de comprobación la protocolo de recuperación?

Page 43: Gestion de Transacciones - Cap 20

El archivo de registro es una característica

fundamental de cualquier mecanismo de

operación ya es este quien contiene

información sobre todas las actualizaciones

realizadas en la base de datos.

Argenis Riofrío

realizadas en la base de datos.

Page 44: Gestion de Transacciones - Cap 20

20.15

Indique las similitudes y diferencias entre los

protocolos de recuperación con

Argenis Riofrío

protocolos de recuperación con

actualización diferida y con actualización

inmediata.

Page 45: Gestion de Transacciones - Cap 20

En una actualización diferida las

actualizaciones son se escriben en una base

de datos hasta que la transacción no alcance

su punto de confirmación, si la transacción

Argenis Riofrío

su punto de confirmación, si la transacción

falla antes de alcanzar este punto no se

habrá modificado la base de datos y no será

necesario deshacer el cambio.

Page 46: Gestion de Transacciones - Cap 20

En cambio en una actualización inmediata las

actualizaciones son aplicadas en la base de datos

según se vayan realizando sin espera que alcance

su punto de confirmación. A demás de tener que

deshacer las actualizaciones de las transacciones

Argenis Riofrío

deshacer las actualizaciones de las transacciones

confirmadas después de un fallo, pueda que ahora

sea también necesario deshacer los efectos de las

transacciones que no se confirmaron en el

momento del fallo.

Page 47: Gestion de Transacciones - Cap 20

20.6

Explique los siguientes modelos avanzados de

transacciones:

Argenis Riofrío

transacciones:

Page 48: Gestion de Transacciones - Cap 20

a) Transacciones anidadas: transacciones en forma

de árbol o con jerarquía de subtransacciones.

Existen transacciones de primer nivel que tienen

transacciones hijas, y estas a su vez puede volver

a tener nuevas transacciones anidadas.

Argenis Riofrío

a tener nuevas transacciones anidadas.

b) Sagas: secuencia de transacciones que pueden

entrelazarse con otras transacciones.