CONCEPTO SOBRE TRANSACCIONES

Slides:



Advertisements
Presentaciones similares
Transacciones y Concurrencia en Oracle
Advertisements

integridad referencial
IBD Clase 18.
Rocio Contreras Aguila Primer Semestre Para poder ejecutar esto SQL Server nos permite definir datos y nos entrega herramientas para poder exigir.
Administración de transacciones y bloqueos
SISTEMAS DE PROCESAMIENTO DE TRANSACCIONES
Introducción a los Sistemas de Bases de Datos
Confiabilidad en Bases de Datos Distribuidas
MODELO RELACIONAL.
RESPALDO.
Maestría en Bioinformática Bases de Datos y Sistemas de Información SQL: DML Ing. Alfonso Vicente, PMP
Integrantes: Karen Huaman Leva Nelly Quispe Troncoso
SISTEMAS TRANSACCIONALES
Johanna Lizeth Rodríguez Lorena Fda. Chávarro Ramos
Transacción Es una unidad de trabajo sobre la base de datos
Manejo de Transacciones
Transacciones (MySQL). Definición: Conjunto de sentencias que se tratan como una sola. Comienzan con BEGIN/START TRANSACTION; Se puede confirmar (COMMIT)
TRADUCTOR DE UN PROGRAMA
INGENIERÍA DE REQUERIMIENTOS
Proceso de información en la computadora
7. Control de la concurrencia
Administración de Bases de Datos
PARTE I  ANDRI GIOVANNI HERNANDEZ CAMPOSECO. ANDRI GIOVANNI HERNANDEZ CAMPOSECO Check point video: Dead Lock:
Universidad del Cauca – FIET – Departamento de Sistemas
Evaluación de los proyectos Método general. Evaluación de proyectos de inversión Todos los proyectos de inversión tienen características estructurales.
Técnicas de recuperación de bases de datos
6. Recuperación de fallos
Sistemas Concurrentes: programación concurrente
Material de apoyo Unidad 4 Estructura de datos
SISTEMAS DE PROCESAMIENTO DE TRANSACCIONES
Tecnologías de Información y Comunicación II CLASE 6.
Control de Transacciones.
Elaborado por: Guillermo Baquerizo I Término
Mayo de 2009Dos Ideas - La visión de Sistemas desde el Desarrollo Manipulación de Datos Conceptos básicos.
RESTRICCIONES Ing. Carolina Moreno Departamento de Sistemas Facultad de Electrónica y Telecomunicaciones Universidad del Cauca.
Transacciones en sistemas de base de datos
SISTEMA DE PROCESAMIENTO DE OPERACIONES (SPO)
TRANSACCIONES DISEÑO DE BASE DE DATOS.
SISTEMAS DE INFORMACION TRANSACIONAL
SISTEMAS DE PROCEDIMENTO DE TRANSACCIONES
Administración de Bases de Datos
Universidad Tecnológica de Izúcar de Matamoros
CICLO DE VIDA Y NORMAALIZACION DE UN SISTEMA DE BASE DE DATOS
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
TRABAJO 2: TIPOS DE SISTEMAS DE INFORMACIÓN GERENCIAL
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:21 PRESENTACION: BASE DE DATOS ALUMNAS: Adán Millán Sánchez.
Metodología de la programación
C ONCURRENCIA Y M ANEJO DE S ESIONES. C ONCURRENCIA Es una propiedad del sistema en el cual muchos calculos se estan ejecutando simultaneamente, y son.
1 FUNDAMENTOS DE BASES DE DATOS SISTEMA GESTOR DE BASES DE DATOS (SGBD) Consiste en una colección de datos interrelacionados y un conjunto de programas.
Protocolos de Sondeo SNOOPY
TIPOS DE PRUEBAS DEL SOFTWARE
BASE DE DATOS.
PLAN DE CONTINGENCIA. EVALUACIÓN DIAGNOSTICA 1. Sabes para que te puede ayudar el respaldar la información? 2. Conoces algún método para realizar un respaldo,
Microsoft Office Project INTRODUCCIÓN A LA GESTIÓN DE PROYECTOS Microsoft Office Project 2010.
UNIVERSIDAD TECNOLOGICA DE IZUCAR DE MATAMOROS TECNOLOGIAS DE LA INFORMACION Y COMUNICACIÓN BASE DE DATOS PARA APLICACIONES MTRO: GONZALO ROSAS CABRERA.
Transacciones seguras  Concurrencia Ing. Yeberth Martinez Programación II.
MSSQL SERVER CURSO BÁSICO 1. DESCRIPCIÓN DEL CURSO. Sesión 4: Sentencia Insert,Transacciones,Insert general, Insert Select * From, Sentencia Update,Update.
Ciclo de Vida del Software
Arquitectura de una aplicación Arquitectur a: desarrolla un plan general del sistema, asegurando que las necesidades de los usuarios sean atendidas. Ingeniería.
TIPOS DE SISTEMAS OPERATIVOS.  Que es un sistema operativo??  Es el encargado de brindar al usuario una forma amigable y sencilla de operar, interpretar,
Curso: Fundamentos de Computación
DISEÑO DE BASES DE DATOS (modelos para el diseño)
**SISTEMAS DE INFORMACIÓN: TRANSACCIONALES**
Administración de Base de Datos Recuperación Prof Mercy Ospina Torres
DLM Transact SQL Sesión I Introducción al SQL Server Uso de las herramientas de consultas del Transact SQL.
Bases de datos ITecnológico San Agustín1 BASES DE DATOS Conceptos Básicos Paulo César Acosta Lozano –
DML Transact SQL Sesión X Triggers. Duración 2 Horas.
Arquitectura de Computadoras (Taller) Semestre II de 2008.
 Trabaja con el esquema relacional surgido en los laboratorios de IBM  La instalación completa ocupa alrededor de 10 Mb incluyendo librerías, ejemplos.
1 Tema 16: Servidores de Archivos y otros Conceptos Sistemas Operativos (Tema 18 en apuntes prof. Rovayo)
Transcripción de la presentación:

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 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. Instrucción -1 . Instrucción-2. .... Commit work. Rollback work.

Propiedades de una Transacción (ACID). 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

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.

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: Sin las debidas precauciones, en una transacción podría ocurrir una reserva doble.

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.

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.

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. (Aborto en cascada): una transacción no confirmada debe deshacerse porque leyó un elemento de una transacción fallida.

Planificación sin abortos en cascada: si toda transacción de la planificación solo lee elementos escritos por transacciones confirmadas. Por ejemplo: Planificaciones 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).

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 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

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. _ 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

GRACIAS POR SU ATENCION