20 jul 2012

transacciones grupo 2


Exposición de Base de Datos Grupo Numero 2 


Profesor: 
    Gines Rodriguez

Integrantes:
    Dayana Seijas
    Monica Moronta
    Alex Carvajal
    Yenny Martinez
    Eduardo Coa
    Ramón Alcubilla

Tema:
Transacciones

Manejo de transacciones 
      Una transacción es un programa que se ejecuta como una sola operación. Esto quiere decir que luego de una ejecución en la que se produce una falla es el mismo que se obtendría si el programa no se hubiera ejecutado. Los SGBD proveen mecanismos para programar las modificaciones de los datos de una forma mucho más simple que si no se dispusiera de ellos.
Conceptos de Transacciones

A) Una transaccion en un sistema de gestion de bases de datos (SGBD), es un conjunto de ordenes que se ejecutan formando una unidad de trabajo, es decir, una forma indivisible o atomica.

B) Transaccion consiste en lograr hacer cualquier tipo de operacion en una base de datos, basandonos en consultas desde las mas simples hasta las de mayor grado de complejidad.

C) Transaccion se entiende en el ambito de las bases de datos en lograr hacer acciones sobre las bases de datos deseadas, logrando operaciones de ingreso, borrado, actualizacion y visualizar.
         Una transacción en un Sistema de Gestión de Bases de Datos (SGBD), es un conjunto de órdenes que se ejecutan formando una unidad de trabajo, es decir, en forma indivisible o atómica.
          Un ejemplo habitual de transacción es el traspaso de una cantidad de dinero entre cuentas bancarias. Normalmente se realiza mediante dos operaciones distintas, una en la que se decrementa el saldo de la cuenta origen y otra en la que incrementamos el saldo de la cuenta destino. Para garantizar la atomicidad del sistema (es decir, para que no aparezca o desaparezca dinero), las dos operaciones deben ser atómicas, es decir, el sistema debe garantizar que, bajo cualquier circunstancia (incluso una caída del sistema), el resultado final es que, o bien se han realizado las dos operaciones, o bien no se ha realizado ninguna.
Ejemplo de una 
Transacción

Problemas de Concurrencia

      El propósito del control de concurrencia es mantener la consistencia de la BD cuando ésta es actualizada
por múltiples usuarios. Existen casos en los que las transacciones ejecutadas aisladamente originan nuevos
estados consistentes, sin embargo las mismas transacciones ejecutadas concurrentemente pueden originar
efectos como pérdidas de operaciones y/o violación de restricciones de integridad; a continuación se
ilustran algunos casos típicos de anomalías.

Control De Concurrencia

     Un algoritmo de control de concurrencia asegura que las transacciones se ejecuten automaticamente controlando la intercalacion de transacciones concurrentes, para dar la ilusion de que las transacciones se ejecutan serialmente, una despues de la otra sin ninguna intercalacion.

Control de concurrencia:

 Es la actividad de coordinar accesos concurrentes a la base de datos, permite a los usuarios acceder a la base de datos de una forma multiprogramada mientras se mantiene la imagen de que cada usuario esta utilizándola solo en sistema dedicado. Asegura que transacciones múltiples sometidas por usuarios diferentes no interfieran unas con otras de forma que se produzcan resultados incorrectos. El control de concurrencia en base de datos distribuidas es más compleja que en sistemas centralizados. Un aspecto interesante del control de concurrencia es el manejo de ínterbloqueos, el sistema no debe permitir que dos o más transacciones se bloqueen entre ellas.   


Control de concurrencia o de los accesos simultáneos a la base de datos:

       De no ser considerada esta responsabilidad se pueden dar el caso que una serie de actualizaciones a los mismos datos pero en tiempos minimamente diferentes, hagan que se pierdan todas las actualizaciones menos la última.      


Confiabilidad

        Se de be de tener la certeza de que un sistema en linea no puede fallar dado que si existe algun error en nuestro algoritmo ocasionaria no solo que se estrofeara una operacion, pueden significar estos errores perdidas economicas bastante grandes, para que nuestro sistema de bases de datos sea confiable se tienen que tener probadas todas las posibles operaciones que se pueden realizar en el para simular una transaccion de un cliente en un tiempo determinado.

Propiedeades De Las Transacciones

· Atomicidad:

      Una transacción es tratada como una unidad de operación. Por lo tanto todas las acciones de la transacción se llevan a cabo o ninguna de ellas se realiza .La atomicidad requiere que si una transacción se interrumpe por una falla, sus resultados parciales deben ser deshechos. Se efectúan todas las transacciones, pero en caso de fallas no se realiza ninguna. Una transacción  debe concluir comprometida o abortada. En el caso del compromiso se instalan todas las actualizaciones y en el aborto se descartan todas las actualizaciones.  

· Consistencia:

        Una transacción es un programa correcto que lleva la base de datos de un estado consistente a otro con la misma característica. Gracias a esto, las transacciones no violan las reglas de integridad de una base de datos.

·Aislamiento:

      Durante la ejecución de una transacción, esta no debe revelar sus resultados a otras transacciones concurrentes antes de su compromiso. Si varias transacciones se ejecutan concurrentemente, los resultados deben ser los mismos que si ellas se hubieran ejecutado en forma secuencial (Seriabilidad). La seriabilidad consiste en asegurarse que los cambios siguen un orden adecuado.

·Durabilidad:

     Es la propiedad de las transacciones que asegura que una vez que una transacción realiza su compromiso, sus resultados son permanentes y no pueden ser borrados de la base de datos, se asegura que los resultados de una transacción sobrevivirán a fallas del sistema.

       Las transacciones brindan una ejecución atómica y confiable en presencia de fallas, una ejecución correcta en presencia de accesos de usuario múltiples y un manejo correcto de replicas (en el caso que se soporten).

Estructura De Las Transacciones  

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:

BEGIN _TRANSACTION Reservación
..........
          BEGIN _TRANSACTION Vuelo
               ........
          END.( Vuelo ) ......
          BEGIN _TRANSACTION Hotel
              ........
          END
.....
END.

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. Existen restricciones obvias en una transacción anidada: debe empezar después que su padre y debe terminar antes que el. El compromiso de una subtransaccion es condicional al compromiso de su padre, si el padre de una o varias subtransacciones  aborta, las subtransacciones hijas también serán abortadas. Las transacciones anidadas brindan un nivel mas alto de concurrencia entre transacciones. Ya que una transacción consiste de varias transacciones es posible tener mayor concurrencia dentro de una sola transacción.

Así también, es posible recuperarse de de fallas de forma independiente de cada subtransaccion. Esto limita el daño a una parte mas pequeña de la transacción, haciendo que el costo de la recuperación sea el menor.

También se deben considerar el orden de las lecturas y escrituras. Si las acciones de lectura y escritura pueden ser mezcladas sin ninguna restricción, entonces, a este tipo de transacciones se les conoce como Generales .Por el contrario, si se restringe o impone que un dato debe ser leído antes de que pueda ser escrito entonces se tendrán transacciones Restringidas. Si las transacciones son restringidas a que todas las acciones de lectura se realicen antes de las acciones de escritura entonces se les conoce como de Dos Pasos. Finalmente existe un modelo de acción para transacciones restringidas en donde se aplica aun más la restricción de que cada par < read , write > tiene que ser ejecutado de manera atómica.

Ejecuciones libres de conflictos

·Definiciones

Es conveniente definir previamente una serie de conceptos básicos:
Gránulo.
Unidad de datos controlada individualmente por el subsistema de concurrencia.

Acción. Primitiva unitaria de manipulación de un gránulo tal que ejecutada individualmente por un usuario forzaría la integridad del gránulo.

Transacción. Secuencia de acciones T{a1, a2 .. an} ejecutadas por un usuario de modo que se respeta la consistencia de la BD; puede verse como una secuencia de transformaciones tal que si S es un estado consistente (S ╞ I), entonces :
( (
))
T ( S) =an an-1 ...a2 ( a1 ( S) ) ; T(S)╞ I,

Plan de ejecución de un conjunto de transacciones
(Schedule).

Sea {T1, T2 .. Tn} un conjunto de transacciones; un plan de ejecución (schedule) seráuna secuencia de acciones de T1, T2 .. Tn respetando el orden de ejecución en cada transacción.

Plan serial.
Un Plan S de {T1, T2 .. Tn} es serial si existe una permutación ∏ de {1, 2, ...n} tal
que S = < T ∏1, T∏2 .. T∏n >


Plan serializable
Un Plan S de {T1, T2 .. Tn} es serializable si tras su ejecución se alcanza el mismo estado final que con un plan serial de {T1, T2 .. Tn}

Acciones Permutables

Dos acciones ai y aj son permutables si es indiferente su orden de ejecución en lo permutables. relativo a la consistencia de la BD, es decir si E es un estado consistente:

            ai ( aj ( E ) ) = aj ( ai ( E ) ) . p. ej. dos lecturas sobre el mismo gránulo; una lectura
            y escritura sobre gránulos distintos. En general las lecturas y escrituras sobre el
            mismo gránulo no son permutables. 

No hay comentarios: