Transacciones-Eq1

Anuncio
TRANSACCION
UNIVERSIDAD VERACRUZANA
FACULTAD DE ADMINISTRACION
SISTEMAS COMPUTACIONALES
ADMINISTRATIVOS
CONCEPTO DE TRANSACCION
BASE DE DATOS
EQUIPO 1
DUARTE MONTORO ULISES
ESPEJO CRUZ ABIGAIL JACOBO
MARTINEZ MANRIQUE EMILIO OMAR
NANNI ROJAS IKAR ALBERTO
VAZQUEZ VIRGEN TOMAS ALEJANDRO
LOPEZ CAMARA LUIS ALBERTO
25 DE MARZO 2011
1
TRANSACCION
INDICE
INTRODUCCION…………………………………………………… 2
CONCEPTO SOBRE TRANSACCIONES…………………………..3
INTRODUCCION A LAS TRANSACCIONES……………………..3
CONCEPTO DE TRANSACCION DE SISTEMAS…………………4
PROPIEDADES DESEABLES EN LAS TRANSACCIONES………6
PLANES Y RECUPERABILIDAD…………………………………..7
SERIABILIDAD DE TRANSACCIONES……………………………9
SOPORTE DE LAS TRANSACCIONES EN SQL…………………..11
EJEMPLOS EN SQL…………………………………………………..12
CONCLUSION………………………………………………………...13
BIBLIOGRAFIAS……………………………………………………..14
2
TRANSACCION
INTRODUCCION
Hoy en día es común que en varios desarrollos se acceda a la base de datos a
través de distintos frameworks que nos facilitan la tarea. Sin embargo, es
fundamental conocer el funcionamiento básico de las bases de datos con las
que interactuamos.
En este curso veremos los conceptos básicos de una base de datos, y como
utilizar SQL como lenguaje para realizar consultas y operaciones sobre los
datos almacenados
Este trabajo pretende ser una introducción al SQL, y en particular a las
transacciones que utiliza el SGBD My SQL. No se pretende realizar un estudio
exhaustivo de todas las opciones, comandos y aspectos de almacenamiento y
administración que se pueden considerar en SQL. Sólo se ha pretendido
introducir y explicar las transacciones más útiles, dejando los detalles más
específicos a los manuales de referencia.
3
TRANSACCION
CONCEPTO SOBRE TRANSACCIONES
Transacción: Colección de operaciones que forman una única unidad lógica
de trabajo en una BD realizada por una o más sentencias SQL estrechamente
relacionadas.
Una transacción es una unidad de la ejecución de un programa que lee y
escribe datos a y desde la Base de Datos. Puede consistir en varias
operaciones de acceso a la base de datos. Está delimitada por constructoras
como begintransaction y end-transaction (SQL-Server).
INTRODUCCION A LAS TRANSACCIONES
Una transacción es una unidad de la ejecución de un programa que lee y
escribe datos a y desde la Base de Datos. Puede consistir en varias
operaciones de acceso a la base de datos. Está delimitada por constructoras
como begintransaction y end-transaction (SQL-Server).
Pero también se considera...
Unidad lógica de integridad
¯ Unidad lógica de concurrencia
¯ Unidad lógica de recuperación
El programa se ejecuta como una pieza atómica. O se ejecutan todas las
operaciones que componen la transacción, o no se realiza ninguna.
En SQL
Éxito.
Fracaso
Begin transacction. Begin transacction.
Instrucción -1 .
Instrucción -1 .
Instrucción-2.
Instrucción-2.
....
....
Commit work.
Rollback work.
4
TRANSACCION
CONCEPTO DE TRANSACCIONES DE SISTEMAS
Un sistema de procesamiento de transacciones (TPS por sus siglas en
inglés) es un tipo de sistema de información. Un TPS recolecta, almacena,
modifica y recupera toda la información generada por las transacciones
producidas en una organización. Una transacción es un evento que genera o
modifica los datos que se encuentran eventualmente almacenados en un
sistema de información. Para que un sistema informático pueda ser
considerado como un TPS, este debe superar el test ACID.
Desde un punto de vista técnico, un TPS monitoriza los programas
transaccionales (un tipo especial de programas). La base de un programa
transaccional está en que gestiona los datos de forma que estos deben ser
siempre consistentes (por ejemplo, si se realiza un pago con una tarjeta
electrónica, la cantidad de dinero de la cuenta sobre la que realiza el cargo
debe disminuir en la misma cantidad que la cuenta que recibe el pago, de no
ser así, ninguna de las dos cuentas se modificará), si durante el transcurso de
una transacción ocurriese algún error, el TPS debe poder deshacer las
operaciones realizadas hasta ese instante. Si bien este tipo de integridad es
que debe presentar cualquier operación de procesamiento de transacciones
por lotes, es particularmente importante para el procesamiento de
transacciones on-line: si, por ejemplo, un sistema de reserva de billetes de una
línea aérea es utilizado simultáneamente por varios operadores, tras encontrar
un asiento vacío, los datos sobre la reserva de dicho asiento deben ser
bloqueados hasta que la reserva se realice, de no ser así, otro operador podría
tener la impresión de que dicho asiento está libre cuando en realidad está
siendo reservado en ese mismo instante. Sin las debidas precauciones, en una
transacción podría ocurrir una reserva doble. Otra función de los monitores de
transacciones es la detección y resolución de interbloqueos (deadlock), y cortar
transacciones para recuperar el sistema en caso de fallos masivos.
5
TRANSACCION
Características de los sistemas de procesamiento de transacciones
Respuesta rápida
En este tipo de sistemas resulta crítico que exista un rendimiento elevado con
tiempos de respuesta cortos. Una empresa no puede permitirse tener clientes
esperando por una respuesta del SPT; el tiempo total transcurrido desde que
se inicia la transacción hasta que se produce la salida correspondiente debe
ser del orden de unos pocos segundos o menos.
Fiabilidad
Muchas organizaciones basan su fiabilidad en los SPT; un fallo en un SPT
afectará negativamente a las operaciones o incluso parará totalmente el
negocio. Para que un SPT sea efectivo, su tasa de fallos debe ser muy baja. En
caso de fallo de un SPT, debe existir algún mecanismo que permita una
recuperación rápida y precisa del sistema. Esto convierte en esencial la
existencia procedimientos de copia de seguridad y de recuperación ante fallos
correctamente diseñados.
Inflexibilidad
Un SPT requiere que todas las transacciones sean procesadas exactamente de
la misma forma, independientemente del usuario, el cliente o la hora del día. Si
los SPT fuesen flexibles, habría entonces demasiadas posibilidades de ejecutar
operaciones no estándar. Por ejemplo, una aerolínea comercial necesita
aceptar de forma consistente reservas de vuelos realizadas por un gran
número de agencias de viaje distintas; aceptar distintos datos de transacción
de cada agencia de viajes supondría un problema.
Procesamiento controlado
El procesamiento en un SPT debe apoyar las operaciones de la organización.
Por ejemplo, si una organización establece roles y responsabilidades para
determinados empleados, el SPT debe entonces mantener y reforzar este
requisito.
6
TRANSACCION
PROPIEDADES DESEABLES EN LAS TRANSACCIONES
Una unidad lógica de trabajo debe exhibir cuatro propiedades, conocidas como
propiedades ACID (atomicidad, coherencia, aislamiento y durabilidad), para
ser calificacada como transacción.
Atomicity : Una Transacción (Tx) se ejecuta completamente ó de otra manera
se eliminan los cambios parciales realizados.
Begin Transaction - Programa - End Transaction
Responsable: el método de recuperación, de no completar todas las
operaciones, devuelve la BD a su estado anterior a empezar esa T (rollback).
Conservación de la Consistencia: Asegura que los datos que estamos
viendo
no cambian (por otros usuarios) hasta que acabemos la transacción.
Después de terminar una Transacción la Base de datos no viola ninguna de
sus reglas: valores obligatorios, claves únicas,etc.
Responsable: los programadores mediante la definición adecuada de la
integridad referencial: check, triggers, primary key, foreign key,…
Aislamiento: Los efectos de una Tx no son visibles a otros usuarios mientras
no se confirmen.
Una transacción en ejecución no puede revelar sus resultados a otras
transacciones concurrentes antes de finalizar.
Más aun, si varias transacciones, se ejecutan concurrentemente, los resultados
deben ser los mismos que si ellas se hubieran ejecutado secuencialmente.
Esto se conoce como seriabilidad debido a que su resultado es la capacidad de
volver a cargar los datos iniciales y reproducir una serie de transacciones para
finalizar con los datos en el mismo estado en que estaban después de realizar
transacciones originales.
Responsable: el método de concurrencia: mecanismos, reglas, protocolos
Durabilidad: Si el sistema falla no debe permitir que se pierdan las
operaciones realizadas por Tx ya confirmadas.
Responsable: el método o gestor de recuperación.
Estados y operaciones de una transacción
7
TRANSACCION
PLANIFICACION Y RECUPERABILIDAD
_ Clasificación de planificaciones:
_ Recuperables: una vez que una T ha confirmado nunca será necesario
deshacerla.
_ No recuperables: no satisfacen la condición anterior ( no se deben permitir).
_ Una planificación P es recuperable si ninguna transacción T de P se confirma
antes de que se hayan confirmado todas las transacciones T’ que han escrito
un elemento que T lee posteriormente.
8
TRANSACCION
La anterior es no recuperable porque T2 se confirma antes de que lo haga T1;
si T1 fallara se dificultaría la recuperación
Se transformaría en una planificación recuperable si posponemos la
confirmación de T2 hasta después de la de T1
Puede ocurrir el fenómeno de restauración en cascada
(Aborto en cascada): una transacción no confirmada debe deshacerse porque
leyó un elemento de una transacción fallida.
El aborto en cascada puede consumir mucho tiempo por lo que se intenta
evitar:
Planificación sin abortos en cascada: si toda transacción de la planificación
solo lee elementos escritos por transacciones confirmadas. Por ejemplo:
Pl
ani
fic
aciones estrictas: las transacciones no pueden leer ni escribir de un gránulo x
hasta que se confirme la última transacción que escribió x (fáciles de
recuperar).
9
TRANSACCION
SERIABILIDAD DE TRANSACCIONES
La serialización es el criterio de lo correcto, para el control de la concurrencia.
Un conjunto entrelazado de transacciones es correcto si es serializable. Es
decir si produce el mismo resultado mediante la ejecución en serie de las
mismas transacciones. Dado un conjunto de transacciones entrelazadas,
cualquier ejecución de esas transacciones se dice que es una calendarización
(“scheduling”)
Esta es la ejecución de esta aseveración:
1. - Las transacciones individuales son tomadas como correctas es decir, se da
por hecho que transforman un estado correcto de la base de datos en otro
estado correcto.
2. - Por lo tanto también es correcta la ejecución de una transacción a la vez en
cualquier orden serial y se dice en cualquier orden serial debido a que las
transacciones individuales son consideradas independientes entre sí.
3. - Por lo tanto una ejecución intercalada es correcta cuando equivale a una
ejecución serial, es decir cuando es seriable.
Es la propiedad que garantiza que un plan de ejecución concurrente es
equivalente al secuencial.
Formas de planificar la seriabilidad: 1) por conflicto 2) por visión
10
TRANSACCION
Por simplicidad solo se consideran las operaciones de lectura y escritura.
No se consideran las operaciones de cálculo sobre los datos obtenidos.
Seriabilidad por conflicto
Eliminar conflictos entre dos o mas transacciones
Operaciones sobre los mismos datos en mas de una transacción *
Tipos de operaciones:
T1: lectura y T2: lectura
No hay conflicto
T1: lectura y T2: escritura ó T1: escritura y T2: lectura
Conflicto: hay que respetar el orden
T1: escritura y T2: escritura
Conflicto: el orden afecta al valor final de la BD
Se dice que hay conflicto cuando se consideran operaciones sobre los mismos
datos en dos transacciones diferentes
Un plan de ejecución se puede transformar en otro cambiando de orden las
instrucciones y manteniendo la seriabilidad
Todos estos planes son equivalentes al plan secuencial.
Seriabilidad por visión
Se basa en definir una regla de equivalencia menos estricta que la de conflicto.
Pero basándose solo en las operaciones de lectura y escritura.
Se puede considerar como un refinamiento de la equivalencia por conflicto.
Pruebas de seriabilidad
Hacer la prueba de seriabilidad después de ejecutar el plan es un poco tarde.
El objetivo es desarrollar un protocolo de control de concurrencia que asegure
la seriabilidad.
No suele analizar el grafo de precedencia.
Lo habitual es imponer restricciones que aseguren la seriabilidad del plan.
Las pruebas sirven para ayudar a comprender los protocolos de control de
concurrencia
11
TRANSACCION
SOPORTE DE LAS TRANSACCIONES EN SQL
Definición de transacciones SQL
_ Inicio de transacción: es implícito en SQL
_ Final de transacción: en SQL
_ COMMIT
_ ROLLBACK
_ Características de una transacción SQL
_ mediante SET TRANSACTION
_ se puede fijar
_ Modo de acceso
_ Tamaño del área de diagnóstico
_ Nivel de aislamiento
Características de una transacción especificables en SQL:
Violaciones posibles con aislamiento < SERIALIZABLE:
_ Lectura sucia: una transacción T1 puede leer la actualización de T2 que
todavía no ha confirmado. Si T2 aborta, T1 habría leído un dato incorrecto.
_ Lectura no reproducible: Si una transacción lee dos veces un mismo dato y
en medio una transacción lo modifica, verá valores diferentes para el dato.
12
TRANSACCION
_ Fantasmas: una transacción T1 puede leer un conjunto de filas (que cumplan
una condición). Si una transacción T2 inserta una fila que también cumple la
condición y T1 se repite verá un fantasma, una fila que previamente no existía.
Violaciones posibles según el nivel de aislamiento
EJEMPLO DE TRANSACCION EN SQL
EXEC SQL WHENEVER SQLERROR GOTO UNDO;
EXEC SQL SET TRANSACTION
READ WRITE
ISOLATION LEVEL SERIALIZABLE;
EXEC SQL INSERT INTO EMPLEADO (ENOMBRE,DNO,SALARIO)
VALUES (‘Miguel López’,’2’,35000);
EXEC SQL UPDATE EMPLEDO SET SALARIO=SALARIO*1,1 WHERE
DNO=2;
EXEC SQL COMMIT;
FINAL:
UNDO:
EXEC SQL ROLLBACK
13
TRANSACCION
CONCLUSION
BIBLIOGRAFIAS
https://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r65918.PDF
http://www.taringa.net/posts/downloads/907782/Programas_-Bases-de-datosEgt_-MySQL.html
http://es.wikipedia.org/wiki/Sistema_de_procesamiento_de_transacciones#Cara
cter.C3.ADsticas_de_los_sistemas_de_procesamiento_de_transacciones
http://informatica.uv.es/iiguia/2000/BD2/3_0_BD2Tema3_06.pdf
G. Weikum, G. Vossen, “Transactional information
systems”, Morgan Kaufmann, 2002.
14
Descargar