EJECUCIÓN DE TRANSACCIONES DISTRIBUIDAS



ultimo post u.u

Una transacción es un Sistema de Gestión de Bases de Datos es un conjunto de órdenes que se ejecutan formando una unidad de trabajo, es decir, en forma indivisible o atómica.

Un SGBD se dice transaccional si es capaz de mantener la integridad de los datos, haciendo que estas transacciones no  puedan finalizar en un estado intermedio.

Cuando por alguna causa el sistema debe cancelar la transacción, empieza a deshacer las órdenes ejecutadas hasta dejar la base de datos en su estado inicial (llamado punto de integridad), como si la orden de a transacción nunca se hubiese realizado.

Una transacción debe contar con ACID ( un acrónimo ingles) que quiere decir: Atomicidad, Consistencia, Aislamiento y Durabilidad. 

Para esto, el lenguaje de consultas de datos SQL (Structured Query Language), provee los mecanismos para especificar que un conjunto de acciones deben construir una transacción:

  • BEGIN TRAN: Especifica que va a empezar una transacción.
  • COMMIT TRAN: Le indica al motor que puede considerar la transacción completada con éxito.
  • ROLLBACK TRAN: Indica que se ha alcanzado un fallo y que debe restablecer la base al punto de integridad.

Es un sistema ideal, las transacciones deberían garantizar todas las propiedades ACID;  en la práctica, a veces alguna de estas propiedades se simplifican o debilitan con vista a obtener un mejor rendimiento.

Transacciones: Propiedades ACID: Las propiedades ACID para las transacción transacciones locales, debido a la dificultad de controlar los fallos para las transacciones globales que actúan en varios Sitios; Atomicidad   (Atomicity), Consistencia (Consistency), Aislamiento (Isolation),Durabilidad (Durability).


ASPECTOS RELACIONADOS AL PROCESAMIENTO DE TRANSACCIONES

Los siguientes son los aspectos más importantes relacionados con el procesamiento de transacciones: 

1- Modelo de estructura de transacciones: Es importante considerar si las transacciones son planas o pueden estar anidadas.

Consistencia de la base de datos interna: Los algoritmos de control de datos semántico tienen que satisfacer siempre las restricciones de integridad cuando una transacción pretende hacer un COMMIT.

Protocolos de confiabilidad: En transacciones distribuidas es necesario introducir medios de comunicación entre los diferentes nodos de una red para garantizar la atomicidad y durabilidad de las transacciones. Así también, se requieren protocolos para la recuperación local y para efectuar los compromisos (COMMIT)globales.

 Algoritmos de control de concurrencia:  Los algoritmos de control de concurrencia deben sincronizar la ejecución de transacciones concurrentes bajo el criterio de correctitud. La consistencia entre transacciones se garantiza mediante el aislamiento de las mismas.

Protocolo de control de réplicas:  El control de réplica se refiere a cómo garantizar la consistencia mutua de datos replicados. Por ejemplo se puede seguir la estrategia readone- write- all (ROWA).


TIPOS DE TRANSACCIONES 

Las transacciones pueden pertenecer a varias clases. Las transacciones pueden ser agrupadas a  lo largo de las siguientes dimensiones: 

Áreas de aplicación: En primer lugar, las transacciones se pueden ejecutar en aplicaciones no distribuidas. Las transacciones que operan en datos distribuidos se les conoce como transacciones distribuidas. Por otro lado, los datos de una transacción que realiza un COMMIT son durables, la única forma de deshacer los efectos de una transacción con COMMIT es mediante otra transacción. A este tipo de transacciones se les conoce como transacciones compensatorias.

Tiempo de Duración: Tomando en cuenta el tiempo que transcurre desde que se inicia una transacción hasta que se realiza un COMMIT o se aborta, las transacciones pueden ser de tipo Batch o en Línea.

 Estructura: Considerando la estructura que puede tener una transacción se examinan dos aspectos: Si una transacción puede contener a su vez subtransacciones o el orden de las de lectura  y escritura dentro de una transacción.

Hay tres tipos de transacciones: 

1- En las transacciones de recuperación: Se accede a los datos para visualizarlos en la pantalla a modos de informe.

2- En las transacciones de actualización: Se insertan, borran o actualizan datos de la base de datos.

3- En las transacciones mixtas. Se mezclan operaciones de recuperación de datos y de actualización.

Estados de una transacción:

1-Activa (Active): El estado inicial; la transacción permanece en este sábado durante su ejecución.

2-Parcialmente comprometida (Uncommited): Después de ejecutarse la ultima transacción.

3- Fallida (Failed): Tras descubrir que no se puede continuar la ejecución normal.

4-Aborta  8Rolled Back): Después de haber retrocedido la transacción y restablecido la base de datos a su estado anterior de la transacción. 

5- Comprometida (Commited): Tras completarse con éxito.

GRADO DE CONSISTENCIA.

La consistencia es un término más amplio que el de integridad. Podría definirse como la coherencia entre todos los datos de la base de datos.

Cuando se pierde la integridad también se pierde la consistencia. Pero la consistencia también puede perderse por razones de funcionamiento.

GRADOS DE CONSISTENCIA.

Una transacción mantendrá la consistencia de la base de datos. Esto es, si la base de datos se encuentra en un estado consistente antes de ejecutar la transacción, una vez que esta termine la consistencia de la base de datos deberá conservarse.  

Consistencia de datos: Eliminado o controlando las redundancias de datos se reduce en gran medida el riesgo de que haya inconsistencias. Si un dato está almacenado solo una vez, cualquier actualización se debe realizar solo una vez y esta disponible para todos los usuarios inmediatamente, Si un dato está duplicado y el sistema conoce esta redundancia, el propio sistema puede encargarse de garantizar que todas las copias se mantiene consistentes.

NIVELES DE AISLAMIENTO

  • READ_ UNCOMMITTED:Este nivel permite que las transacciones vean los cambios no comprometidos en los datos. En este nivel son posibles todas las anomalías de base de datos.
  • READ_ COMMITTED:Este nivel protege parcialmente las lecturas e impide que la transacción lea los datos actualizados por otra transacción que todavía no se hayan confirmado. Impide las lecturas sucias.
  • REPEATABLE_READ:Este nivel impide que otra transacción actualice un dato que haya leído la transacción hasta que esta no se acabe.
  • SERIALIZABLE:Este nivel ofrece un aislamiento total y evita cualquier tipo de interferencias, incluyendo los fantasmas. 


A continuación un video explicando el tema:


Conclusión.


Este es el ultimo tema que se vera en este semestre para poder poner en practica nuestro proyecto final, debemos tomarlo en cuenta para poder construir nuestras tres bases de datos locales.


                                                                 chao amistades :,v

Referencias.

Toda la información se obtuvo de la siguiente fuente:

Adiooooos :)



Comentarios