Transacciones
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Transacciones

on

  • 7,456 views

 

Statistics

Views

Total Views
7,456
Views on SlideShare
7,444
Embed Views
12

Actions

Likes
0
Downloads
75
Comments
0

1 Embed 12

http://www.slideshare.net 12

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Transacciones Presentation Transcript

  • 1. Escuela Ciencias de la Computación Base de datos Avanzada Transacciones Nombre: Elizabeth Margarita Nero O
  • 2. 20.1 Explique el concepto de transacción ¿Por qué son las transacciones unidades de operación tan importantes en un SGBD?
    • Una transacción es un conjunto de operaciones tomadas como una unidad lógica, son importantes ya que mediante ellas se determina si la base de datos esta en un estado coherente o incoherente
  • 3. 20.2 Los aspectos de coherencia y fiabilidad de las transacciones se deben a las propiedades 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
    • Atomicidad.- se refiere que una transacción bien es completada o no, se relaciona con el sistema de recuperación para que la base de datos sea coherente, un ejemplo es que un depósito se puede cumplir o no pero no se puede dejar a medias
    • Coherencia.- la base de datos antes y después de una transacción debe ser coherente aunque en el transcurso de la transacción si puede haber incoherencia , se relaciona con el sistema de recuperación, por ejemplo si se realizó el depósito con éxito entonces se debe actualizar la cuenta en la cual se realizó el depósito
  • 4.
    • Aislamiento .- se refiere a que una transacción no puede interferir en la realización de otra, esto se relaciona con el sistema de control de concurrencia, un ejemplo sería que si un estudiante quiere ver su saldo a favor y si se están actualizando las notas no debería crearse ningún problema ya que lo que el estudiante desea es ver su saldo
    • Permanencia.- la coherencia de la base de datos después de una transacción se registra de manera permanente, esto se relaciona con el sistema de control de recuperación por ejemplo si ya se realizó el depósito y luego se quiere realizar otro pero el segundo fallón no es que se pierde también el primer depósito sino solo el segundo
  • 5. 20.3 Describa, con ejemplos, los tipos de problemas que pueden producirse en un entorno multiusuario cuando se permite un acceso concurrente a la base de datos
    • Actualización perdida.- por ejemplo se empiezan realizar dos transacciones la primera es la actualización de la nota de un estudiante y la otra es la suma de dos puntos adicionales al estudiante ambas recuperaron que la nota anterior era 15 entonces al realizarse la primera transacción en la base de datos se escribió como la nota final un 18 a esto se debía sumar los 2 puntos pero como la segunda transacción también había leído como nota a actualizar el 15 entonces al 15 sumo 2 y esto lo sobrescribió en la nueva nota como resultado 17 y en realidad debía ser la nota final 20
  • 6.
    • Dependencia no confirmada.- con el mismo ejemplo anterior supongamos que para sumar los dos puntos se recuperó la nota de 18 pero en realidad no se confirmó la primera transacción y para la segunda se tomó el valor de 18 y en realidad se debió tomar el valor de 15
    • Análisis incoherente .- por ejemplo si se está calculando el promedio de un estudiante y una nota se está actualizando en ese mismo instante
  • 7. 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 se 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
    • Un mecanismo para el control de concurrencia sería que si una transacción necesita realizarse con datos que otra transacción desea actualizar se debe primero realizar la transacción de actualización y luego si se debe realizar la otra transacción de tal manera que se evite incoherencias en la base de datos
  • 8. 20.5 Explique los conceptos de planificaciones serie, no serie y serializables . Indique las reglas de equivalencia de planificaciones
    • Serie.- las operaciones de cada transacción se ejecutan consecutivamente sin que se entrelacen con operaciones de otras transacciones
    • No serie.- las transacciones se ejecutan concurrentemente
    • Serializables.- planificadores no serie que permite tener el mismo resultado que si se utilizar
  • 9. 20.6 Indique la diferencia entre la seriabilidad de conflictos y seriabilidad de vistas
    • La seriabilidad de conflictos ordena las operaciones conflictivas de la misma manera que alguna de las posibles ejecuciones serie mientras que la seriabilidad de vistas no importa el orden en que se realicen las operaciones lo que importa es que si un dato se lee producto de un transacción en la otra planificación el dato a leer debe ser también producto de la misma transacción
  • 10. 20.7 Explique los tipos de problemas que pueden tener lugar con los mecanismos de control de concurrencia basados en bloqueo y las acciones que el SGBD puede tomar para prevenirlos
    • Actualización perdida.- es el mismo problema presentado anteriormente, para resolver esto se utiliza el bloqueo en 2 fases una de las transacciones no se puede ejecutar si otra tiene un bloqueo exclusivo sobre los datos que requiere la primera transacción
    • Dependencia no confirmada.- igualmente lo que se utiliza para este problema es que mientras un bloqueo no sea liberado no se puede conceder otro bloqueo sobre los mismos datos
  • 11.
    • Análisis incoherente .- lo que se utiliza igualmente es el control de bloqueos en 2 fases
    • Anulaciones en cascada.- esto se trata de que si una operación de una transacción falla pero otras anteriores ya hay sido liberadas del bloqueo pero no se completó la tarea del planificador se deben volver atrás todas las operaciones que fueron realizadas la solución para esto sería que los bloqueos no se liberen hasta que se complete la transacción
    • Otro problema es que se produzcan interbloqueos.- que una transacción boquee a otra para ello se debe utilizar un esquema de detección y recuperación de interbloqueos
    • Otro problema es que se produzca un bloqueo indefinido.- transacciones incapaces de adquirir un nuevo bloqueo , lo que se debe utilizar es la prioridad de transacciones que mientras espere entonces debe ir aumentando su prioridad
  • 12. 20.8 ¿Por qué el bloqueo en dos fases no sería un esquema de control de concurrencia apropiado para los índices? Explique otro esquema de bloqueo más apropiado para índices basados en árboles
    • Ya que es probable que se acceda a los índices de manera frecuente particularmente a los niveles más altos lo que produce una alta tasa de contienda por los bloqueos
    • El esquema más apropiado sería el de bloquear un nodo hijo y liberar el bloqueo en el nodo padre si es posible es decir cuando se trate de un bloqueo compartido y algunos casos en bloqueos exclusivos
  • 13. Una marca temporal es un identificador unívoco creado por el SGBD y que indica el tiempo de inicio relativo de un transacción. En el control de concurrencia basado en bloques existen dos fases: una de crecimiento que 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.
  • 14.
    • 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 que reciba será incoherente, esta deberá ser abortada y reiniciada con una nueva marca temporal. En caso contrario la operación se puede realizar.
    • 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 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 concurrencia las operaciones de escritura obsoletas.
  • 15.
    • La transacción T ejecuta un comando write:
    • 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.
    • La transacción T ejecuta un comando read:
    • Si la transacción desea leer un elemento 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.
    • Las versiones pueden borrarse cuando ya no sean necesarias.
  • 16. 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 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.
  • 17.
    • Existen muchos tipos de fallos que pueden afectar el procesamiento de la base de datos:
    • Paradas catastróficas del sistema: errores del software o del hardware, se pierde el contenido de la memoria principal.
    • Fallos de soporte físico: produce pérdida de parte de la información guardada en el almacenamiento secundario
    • Errores en el software de las aplicaciones: errores lógicos en los programas, que producen fallo de transacciones
    • Desastres físicos naturales: incendios, inundaciones, terremotos o apagones
    • Destrucción Negligente: no intencionada por operadores o usuarios
    • Sabotaje: destrucción intencionada de los datos, del hardware, software o de las instalaciones
  • 18. 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.
  • 19. 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 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 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. 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. b) Sagas: secuencia de transacciones que pueden entrelazarse con otras transacciones. c) Transacciones multinivel : al igual que en las transacciones anidadas las transacciones están en forma de un árbol con la característica especial de que las que se encuentren en el mismo nivel se corresponden con operaciones del mismo nivel de abstracción en un SGBD Transacciones con reestructuración dinámica: comprende dos nuevas operaciones: transacción dividida y la transacción de combinación. La primera divide una transacción en dos y divide también sus acciones y recursos