miércoles, 13 de mayo de 2015

actividad # 17 B

Los mecanismos de control de transacciones para una base de datos distribuida

En la norma SQL el comienzo de una transacción se especifica explícitamente (usualmente begin/start transaction) 
Las transacciones terminan con una de las siguientes instrucciones: 

commit work (compromete la transacción actual)

 rollback work (provoca que la transacción aborte Si el programa termina sin ninguna de estas órdenes, los cambios se comprometen o abortan según indique cada sistema)

savepoint: guarda un punto de recuperación, es muy útil ya que podemos regresar al punto deseado.




Estructura de una transacción

La estructura de una transacción usualmente viene dada según el modelo de la transacción, estas pueden ser planas (simples) o anidadas.

Transacciones planas: Consisten en una secuencia de operaciones primitivas encerradas entre las palabras clave BEGIN y END. Por ejemplo: 
            BEGIN _TRANSACTION Reservación
              ....
             END.

Transacciones Anidadas: Consiste en tener transacciones que dependen de otras, estas transacciones están incluidas dentro de otras de un nivel superior y se las conoce como subtransacciones. La transacción de nivel superior puede producir hijos (subtransacciones) que hagan más fácil la programación del sistema y mejoras del desempeño.
En las transacciones anidadas las operaciones de una transacción pueden ser así mismo otras transacciones. Por ejemplo:
Monografias.com
 Una transacción anidada dentro de otra conserva las mismas propiedades que las de su padre, esto implica, que puede contener así mismo transacciones dentro de ella.

Operaciones de una transacción
  • Inicio de Transacción: Operación que marca el momento en el que una transacción comienza a ejecutarse.
  • Leer o Escribir: Operaciones de lectura/escritura de elementos de la base de datos.
  • Fin de la Transacción: Se verifica si la transacción debe abortarse por alguna razón.
  • Confirmar (COMMIT): La operación termino con éxito.
  • Abortar (ROLLBACK): La transacción termino sin éxito.
Estados de una Transacción
  • Transacción Activase encuentra en este estado justo después de iniciar su ejecución.
  • Transacción Parcialmente Confirmada: en este punto, se efectúan diferentes operaciones de verificación para asegurar que la transacción no interfiera con otras transacciones en ejecución.
  • Transacción Confirmada: Ha concluido su ejecución con éxito.
  • Transacción Fallida: En este caso, es posible que la transacción deba ser cancelada.
  • Transacción Terminada: indica que la transacción a abandonado el sistema.
Representación de los estados de una transacción
Monografias.com



Ejecución de transacciones distribuidas 
Una transacción distribuida asegura la actualización consistente del estado global del sistema o la restauración del estado previo si la transacción no termina. Un sistema de transacciones distribuidas pretende garantizar las propiedades transaccionales pese al fallo de alguno de sus componentes. Estos sistemas, a diferencia de los basados en comunicación a grupos, asumen siempre un modelo de sistema síncrono; si un proceso no responde en un plazo prefijado, se considera que el proceso falla.

El algoritmo para ejecutar la transacción es el siguiente:

• El iniciador envía a todos los participantes un mensaje de inicio con la transacción y un plazo de tiempo para realizarla.

• Cada participante (incluido el iniciador):
1. Recibe el mensaje de inicio de la transacción.
2. Ejecuta las operaciones especificadas en la transacción.
3. Dependiendo del resultado, establece su voto, SI o NO, para la actualización del estado global.
4. Ejecuta un protocolo de acuerdo atómico.





No hay comentarios:

Publicar un comentario