Upload
argenis-riofrio
View
1.150
Download
1
Embed Size (px)
Citation preview
ESCUELA DE CIENCIAS DE LA COMPUTACION
CAPÍTULO 20CAPÍTULO 20
GESTIÓN DE TRANSACCIONES
CUESTIONES DE REPASO
Argenis Riofrío
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 ?
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.
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.
Las propiedades de las transacciones son:
◄ Atomicidad
◄ Coherencia
◄ Aislamiento
Argenis Riofrío
◄ Aislamiento
◄ Permanencia
◄ 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.
◄ 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.
◄ 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.
◄ 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.
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.
• 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
• 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
• 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.
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.
• 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.
• 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.
• 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.
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.
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.
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.
20.6
Explique la diferencia entre serializabilidad
de conflictos y serializabilidad de vistas
Argenis Riofrío
de conflictos y serializabilidad de vistas
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.
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.
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.
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
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.
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.
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?
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.
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?
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.
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.
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.
20.11
Describa como pueden usarse las versiones
para mejorar el grado de concurrencia.
Argenis Riofrío
para mejorar el grado de concurrencia.
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.
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.
20.12
Explique la diferencia entre el control de
Argenis Riofrío
Explique la diferencia entre el control de
concurrencia pesimista y el optimista.
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.
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.
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
◄ 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
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?
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.
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.
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.
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.
20.6
Explique los siguientes modelos avanzados de
transacciones:
Argenis Riofrío
transacciones:
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.