4. Concurrencia.

Slides:



Advertisements
Presentaciones similares
Administración de transacciones y bloqueos
Advertisements

Confiabilidad en Bases de Datos Distribuidas
Transacción Es una unidad de trabajo sobre la base de datos
Cristian Alaniz - Daniel Hielpos. Agenda - Arquitectura - Tipos de Objetos - Lenguaje de Consulta - Transacciones - Backup y Recuperación - Seguridad.
Transacciones (MySQL). Definición: Conjunto de sentencias que se tratan como una sola. Comienzan con BEGIN/START TRANSACTION; Se puede confirmar (COMMIT)
Universidad del Cauca – FIET – Departamento de Sistemas
Control de Transacciones.
Elaborado por: Guillermo Baquerizo I Término
CONCEPTO SOBRE TRANSACCIONES
Transacciones en sistemas de base de datos
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.
UNIVERSIDAD TECNOLOGICA DE IZUCAR DE MATAMOROS TECNOLOGIAS DE LA INFORMACION Y COMUNICACIÓN BASE DE DATOS PARA APLICACIONES MTRO: GONZALO ROSAS CABRERA.
INTRODUCCIÓN A LAS BASES DE DATOS Revisión de Conceptos.
Base de Datos SQL - Introductorio - DDL. DEFINICIÓN SQL Volver a los Objetivos.
Base de Datos I – Ing. Mary Carlota Bernal J.  Cada instrucción PL/SQL tiene asociado internamente un cursor  Los cursores en PL/SQL pueden ser de dos.
Lenguaje MySQL, DDL (Lenguaje de definición de datos) Ing. Linda Masias Morales.
UNIDAD IV. Diseño de Base de Datos Relacionales
PROGRAMACIÓN I CENTRO DE ESTUDIOS INTEGRADOS EL MARISCAL - CEIM Ing. Luisa Fernanda Arenas Castañeda Feb 6 de 2016.
1 Concurrencia y Transacciones (... o bien, transacciones y concurrencia...) Universidad de los Andes Demián Gutierrez Enero 2009.
Se trata de un conjunto de programas no visibles al usuario final que se encargan de la privacidad, la integridad, la seguridad de los datos y la interacción.
ORACLE SQL DEVOLPER TableSpace. Propósito:  Se utiliza la instrucción CREATE TABLESPACE para crear un espacio en la tabla, que es una asignación de espacio.
1 LENGUAJES DE PROGRAMACIÓN. Son aplicaciones específicas diseñadas para crear otras aplicaciones o programas. Son programas para crear programas. 2.
Componentes y funciones de los SGDB.. El objetivo de un SGBD es proporcionar una interfaz adecuada y eficaz para la manipulación de la información que.
Conferencia 12. Temas Avanzados de Integridad de Bases de Datos.
SQL: Structured Query Language
PL/SQL Francisco Moreno Universidad Nacional.
Aidan Hogan CC Bases de Datos Primavera 2016 Clase 11: Integridad, Transacciones, ACID (I) Aidan Hogan
Ram Delta Systems We bring you a better future… Co-Med On Line
Paul Leger Transacciones Paul Leger
CC Bases de Datos Primavera Clase 12: Implementación de ACID
BASE DE DATOS INTRODUCCION.
Ciclos condicionales y exactos Estructura de control de ciclos
U.T. 11: Introducción A Las Bases De Datos
Stored Procedures Firebird.
Sesión IV Consultando múltiples tablas
SAP Business One, Versión 9.0
Sistema Distribuido para entidad bancaria
UN DISPARADOR O TRIGGER es un procedimiento que se ejecuta cuando se cumple una condición establecida al realizar una operación. Es una rutina autónoma.
CAPÍTULO 2: PRINCIPIOS BÁSICOS DE MATLAB
TRANSACCIONES ATÓMICAS: ING. WALTER ZULOAGA CONTRERAS ALUMNOS: SHARON Y. CONZA CASTILLO BEKER MONTERROSO VALVERDE.
FUNCION DE CONTROL LIC MSC MIRIAN VEGA.
TÍTULO DEL PROYECTO Plataformas Computacionales de Entrenamiento, Experimentación, Gestión y Mitigación de Ataques a la Ciberseguridad.
UNIVERSIDAD PRIVADA SAN JUAN BAUTISTA ESCUELA PROFESIONAL DE INGENIERIA DE COMPUTACION Y SISTEMAS TRANSACCIONES Integrantes: Cancho Ramirez Kiara Angulo.
Modelo de 3 capas. Qué es la arquitectura de una aplicación? La arquitectura se refiere a la forma en la que es diseñada tanto física como lógicamente.
ROL DE LAS BASES DE DATOS EN EL SISTEMA DELTA-PENSUM
Bases de Datos Daniel Rojas UTN.
Taller de Bases de Datos Ingeniería en Sistemas Computacionales Clave de la asignatura: SCA-1025 (Créditos) SATCA1: 0 – 4 – 4.
Especificación de requerimientos por: Sonia Cristina Gamboa Sarmiento
UN EJEMPLO DE LECTURA CONSISTENTE EN INNODB
Estructuras de control en PHP
Un sistema distribuido debe permitir el apropiado uso de los recursos, debe encargarse de un buen desempeño y de la consistencia de los datos, además de.
Base de Datos II 2da Parte. Propiedad ACID  La propiedad ACIDa es una carácterística de un DBMS para poder compartir datos en forma segura.  A :
Una transacción corresponde a un grupo de sentencias que representan una unidad de trabajo y deben ejecutarse en su totalidad.
LENGUAJE C.
Administración de Base de Datos Recuperación de datos Profesora: Mercy Ospina UNIVERSIDAD CENTRAL DE VENEZUELA FACULTAD DE CIENCIAS.
Introducción de Base de Datos
Redes I Magistral Nro. 10 Capa 5: Sesión
Servicios de Seguridad Informática
Fundamentos de la Programación I
Metodología de la Programación
Instituto Tecnológico Superior de la Región Sierra
Procesamiento de consultas
Generaciones de Bases de Datos
Sistema Gestor de Bases de Datos (SGDB)
POSTGRE SQL CONCEPTO El uso de caracteres en mayúscula en el nombre PostgreSQL puede confundir a algunas personas a primera vista. Las distintas pronunciaciones.
BASES DE DATOS II.
UNIDAD 2 MODELO DE DATOS.
CC Bases de Datos Otoño 2019 Clase 11: Transacciones y ACID
Procesos Lic. Gonzalo Pastor.
Taller de Bases de Datos Ingeniería en Sistemas Computacionales M. en I.S.C Mariana Carolyn Cruz Mendoza Por Alexis Orlando Rebollar Lopez.
Transcripción de la presentación:

4. Concurrencia

4. 1 Conceptos 4. 2 Propiedades de las transacciones 4 4.1 Conceptos 4.2 Propiedades de las transacciones 4.3 Grados de consistencia 4.4 Niveles de aislamiento 4.5 Commit y rollback

Conceptos No se puede hablar de Concurrencias en Base de datos sin el uso de las Transacciones. se ejecutan serialmente, una después de la otra, sin ninguna intercalación. Informalmente, una transacción es la ejecución de ciertas instrucciones que acceden a una base de datos compartida. Se llama Transacción a una colección de operaciones que forman una unidad lógica de trabajo en una BD realizada por una o más sentencias SQL estrechamente relacionadas.

Propiedades de las transacciones Una unidad lógica de trabajo debe exhibir cuatro propiedades, conocidas como propiedades ACID (atomicidad, coherencia, aislamiento y durabilidad), para ser calificada como transacción.

Atomicity: siginifica que el sistema permite operaciones atómicas Atomicity: siginifica que el sistema permite operaciones atómicas. Una operación atómica es aquella que si está formada por operaciones más pequeñas, se consideran como un paquete indivisible. Deben ejecutarse todas correctamente, o en el caso de que alguna de ellas no pueda hacerlo, el efecto de las que ya se han ejecutado no debe hacerse notar, debe deshacerse, como si el conjunto de las operaciones no se hubieran realizado. No obstante, atomicidad y transacción no son sinónimos. Mientras atomicidad es una propiedad, la transacción es el mecanismo que utilizan los SGBD para lograr la atomicidad. 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 Tx rollback).

Coherencia: Asegura que cualquier transacción llevará a la base de datos de un estado válido a otro estado válido. 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: Significa que en el mismo momento en que una operación ha terminado satisfactoriamente y el sistema informa de ello, sus efectos quedan ya registrados permanentemente. 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.

Grados de consistencia 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. Una transacción finalizada (confirmada parcialmente) puede no confirmarse definitivamente (consistencia). Si se confirma definitivamente el sistema asegura la persistencia de los cambios que ha efectuado en la base de datos. Si se anula los cambios que ha efectuado son deshechos.

La ejecución de una transacción debe conducir a un estado de la base de datos consistente (que cumple todas las restricciones de integridad definidas). Si se confirma definitivamente el sistema asegura la persistencia de los cambios que ha efectuado en la base de datos. Si se anula los cambios que ha efectuado son deshechos. Una transacción que termina con éxito se dice que está comprometida (commited), una transacción que haya sido comprometida llevará a la base de datos a un nuevo estado consistente que debe permanecer incluso si hay un fallo en el sistema. En cualquier momento una transacción sólo puede estar en uno de los siguientes estados.

Activa (Active): el estado inicial; la transacción permanece en este estado durante su ejecución. Parcialmente comprometida (Uncommited): Después de ejecutarse la última transacción. Fallida (Failed): tras descubrir que no se puede continuar la ejecución normal. Abortada (Rolled Back): después de haber retrocedido la transacción y restablecido la base de datos a su estado anterior al comienzo de la transacción. Comprometida (Commited): tras completarse con éxito.

Aspectos relacionados al procesamiento de transacciones Los siguientes son los aspectos más importantes relacionados con el procesamiento de transacciones: 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. Protocolos de control de réplicas. El control de réplicas se refiere a cómo garantizar la consistencia mutua de datos replicados. Por ejemplo se puede seguir la estrategia read-one-write-all (ROWA).

Niveles de aislamiento Las transacciones especifican un nivel de aislamiento que define el grado en que se debe aislar una transacción de las modificaciones de recursos o datos realizadas por otras transacciones. Los niveles de aislamiento se describen en cuanto a los efectos secundarios de la simultaneidad que se permiten, como las lecturas desfasadas o ficticias. Control de los niveles de aislamiento de transacción: Controla si se realizan bloqueos cuando se leen los datos y qué tipos de bloqueos se solicitan. Duración de los bloqueos de lectura.

Si una operación de lectura que hace referencia a filas modificadas por otra transacción: Se bloquea hasta que se libera el bloqueo exclusivo de la fila. Recupera la versión confirmada de la fila que existía en el momento en el que empezó la instrucción o la transacción. Lee la modificación de los datos no confirmados.

El nivel de aislamiento para una sesión SQL establece el comportamiento de los bloqueos para las instrucciones SQL. El estándar ANSI/ISO SQL define cuatro niveles de aislamiento transaccional en función de tres eventos que son permitidos o no dependiendo del nivel de aislamiento. Estos eventos son: Lectura sucia. Las sentencias SELECT son ejecutadas sin realizar bloqueos, pero podría usarse una versión anterior de un registro. Por lo tanto, las lecturas no son consistentes al usar este nivel de aislamiento. Lectura norepetible. Una transacción vuelve a leer datos que previamente había leído y encuentra que han sido modificados o eliminados por una transacción cursada.

Lectura fantasma. Una transacción vuelve a ejecutar una consulta, devolviendo un conjuto de registros que satisfacen una condición de búsqueda y encuentra que otros registro que satisfacen la condición han sido insertadas por otra transacción cursada. Los niveles de aislamiento SQL son definidos basados en si ellos permiten a cada uno de los eventos definidos anteriormente. Es interesante notar que el estándar SQL no impone un esquema de cierre específico o confiere por mandato comportamientos particulares, pero más bien describe estos niveles de aislamiento en términos de estos teniendo muchos mecanismos de cierre/coincidencia, que dependen del evento de lectura.

Commit y rollback Estructura de una transacción Una transacción de base de datos consta de una o más instrucciones. Específicamente, una transacción consiste en una de las siguientes: Una o más sentencias DML que en conjunto constituyen un cambio atómica a la base de datos Una declaración DML Una transacción tiene un principio y un final.

Inicio de una transacción Una transacción comienza cuando se encuentra la primera sentencia de SQL ejecutable. Una sentencia de SQL ejecutable es una instrucción SQL que genera llamadas a una instancia de base de datos, incluyendo DML y DDL y la instrucción SET TRANSACCIÓN.

Final de una transacción Una transacción termina cuando se produce alguna de las siguientes acciones: Un usuario emite una sentencia COMMIT -guardar- o ROLLBACK - deshacer- sin una cláusula SAVEPOINT -punto de restauración. Mediante COMMIT, un usuario solicita explícitamente o implícitamente que los cambios en la transacción sean permanentes. Los cambios realizados por la transacción son permanentes y visibles para otros usuarios sólo después de una transacción. Un usuario ejecuta una sentencia DDL como CREATE, DROP, RENAMEZ o ALTER.

La base de datos emite una sentencia COMMIT implícito antes y después de cada instrucción DDL. Si la transacción actual contiene instrucciones DML, a continuación, Oracle Database primera confirma la transacción y luego corre y se compromete la sentencia DDL como una nueva, transacción de un único estado. Un usuario sale normalmente de la mayoría de las utilidades y herramientas de base de datos Oracle, haciendo que la transacción actual que se ha comprometido de forma implícita. El comportamiento AUTOCOMMIT cuando un usuario se desconecta depende de la aplicación y la configuración del gestor

http://www.prograweb.com.mx/tallerBD/0405COMMIT_y_ROLLBACK.php