Transacciones seguras  Concurrencia Ing. Yeberth Martinez Programación II.

Slides:



Advertisements
Presentaciones similares
Construcción de Sistemas Distribuidos “Transacciones Distribuidas”
Advertisements

Sistema Operativo Elaborado: Angel Camacho.
IBD Clase 18.
Base de Datos Distribuidas FUNDAMENTOS DE BASES DE DATOS DISTRIBUIDAS
Introducción a los Sistemas de Bases de Datos
Confiabilidad en Bases de Datos Distribuidas
Bases de Datos Introducción.
Introducción Importancia de la Seguridad en Bases de Datos.
Sistemas Distribuidos y Paralelos
Integrantes: Karen Huaman Leva Nelly Quispe Troncoso
Introducción a los Sistemas de Bases de Datos Distribuidos
UNIDAD II Modelo de Datos.
Johanna Lizeth Rodríguez Lorena Fda. Chávarro Ramos
BASES DE DATOS DISTRIBUIDAS
Armando Lechler Avitia
INTEGRANTES ALEXIS MENDOZA ALDAIR ARRIETA CARLOS PASTOR LORENA RODRIGUEZ ANTHONY JIMENEZ.
Introducción a los Conceptos de Bases de Datos Docente: Ing. Marleny Soria Medina.
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
Transacciones, Recuperación y Control de Concurrencia
Semana 5 Subprogramas..
PARTE I  ANDRI GIOVANNI HERNANDEZ CAMPOSECO. ANDRI GIOVANNI HERNANDEZ CAMPOSECO Check point video: Dead Lock:
Técnicas de recuperación de bases de datos
Ing. Fabián Ruano.  Definición  Diferencias con BD Centralizadas.
DISEÑO DE SOFTWARE 1ª. Parte
Introducción a la Base de Datos
Sistemas Concurrentes: programación concurrente
Bases de Datos Relacionales.  Responsable Cátedra: Silvina Migani  JTP: Liliana Romera  Ayudante:
Introducción A Las Bases De Datos
DATA WAREHOUSE Equipo 9.
GESTION DEL CAMBIO Los presencia continua de competencia, la internacionalización económica y la aparición de nuevas tecnologías de información e informática.
Características de un sistema operativo
Un sistema de gestión de bases de datos: Es un conjunto de programas que permite a los usuarios crear y mantener una base de datos. Por tanto, el SGBD.
Control de Transacciones.
Elaborado por: Guillermo Baquerizo I Término
Transacciones en sistemas de base de datos
SISTEMAS DE PROCEDIMENTO DE TRANSACCIONES
BASES DE DATOS DISTRIBUIDAS
Introducción a los Sistemas Operativos
Introducción a los SOs.
Tema 8: Introducción a los SOs. Tema 8: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.), Introducción.
PROYECTO EMPRESARIAL Clase # 1.
VENTAJAS DE LAS BASES DE DATOS.  Los sistemas de ficheros almacenan varias copias de los mismos datos en ficheros distintos. Esto hace que se desperdicie.
Programación Orientada a Objeto
Modelo de 3 capas.
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.
Base de datos.
MEDIOS DE ALMACENAMIENTO
Por Luis Esteban Monsalve Martínez
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
BASE DE DATOS.
Objetivos de una Base de Datos Unidad I. Conceptos de Base de Datos Realizó: I.S.C Raquel Gpe Saucedo Chacón Tema 1.2.
Tecnologías Cliente / Servidor
UNIVERSIDAD TECNOLOGICA DE IZUCAR DE MATAMOROS TECNOLOGIAS DE LA INFORMACION Y COMUNICACIÓN BASE DE DATOS PARA APLICACIONES MTRO: GONZALO ROSAS CABRERA.
Funciones principales!
Unidad 1. CONCEPTOS DE BASES DE DATOS
Tendencia De Los Sistemas Operativos
También es conocido como proceso ligero. Es una entidad básica de utilización de CPU y esta formado por un contador de programa, algunos registros y una.
SISTEMAS OPERTIVOS DE RED Los usuarios están conectados a la red y que pueden compartir recursos. Cada equipo ejecuta con sus propios recursos su propio.
Bases de Datos y Sistemas de Gestión de Bases Relacionales.
El administrador de los formatos de bases de datos Es el profesional que administra las tecnologías de la información y la comunicación, siendo responsable.
 Definir conceptos fundamentales de las BDD como DTM y DBMS.  Conocer el esquema actual de la Base de datos de la UNACH.  Analizar cuándo utilizar.
Conociendo el modelo Cliente-Servidor
Administración de Base de Datos Recuperación Prof Mercy Ospina Torres
BASES DE DATOS DISTRIBUIDAS M.C.C. María Guadalupe Villanueva Carrasco INGENIERIA EN SISTEMAS COMPUTACIONALES.
Bases de datos ITecnológico San Agustín1 BASES DE DATOS Conceptos Básicos Paulo César Acosta Lozano –
Consistencia y Replicación
1 Tema 16: Servidores de Archivos y otros Conceptos Sistemas Operativos (Tema 18 en apuntes prof. Rovayo)
Transcripción de la presentación:

Transacciones seguras  Concurrencia Ing. Yeberth Martinez Programación II

INTRODUCCIÓN  La definición de concurrencia en términos generales es:  Coincidencia de varios sucesos o cosas a un mismo tiempo  La concurrencia en las bases de datos :  Se refiere al hecho de que los Sistemas Administradores de Base de Datos permiten que muchas transacciones accedan a una misma Base de Datos a la vez.  Cuando existen varios usuarios intentando modificar los datos al mismo tiempo, se necesita establecer algún tipo de control para que dichas modificaciones de un usuario no interfieran en las de los otros, a este sistema se le denomina control de concurrencia.  Los sistemas de control de concurrencia deben garantizar la propiedad de aislamiento de transacciones que se ejecutan de manera concurrente.

DEFINICIÓN DE CONCURRENCIA  En el campo informático, el termino concurrencia se refiere a la capacidad de los Sistemas de Administración de Base de Datos (DBMS), de permitir que múltiples procesos sean ejecutados al mismo tiempo, y que también puedan interactuar entre sí.  Los procesos concurrentes pueden ser ejecutados realmente de forma simultánea, sólo cuando cada uno es ejecutado en diferentes procesadores. En cambio, la concurrencia es simulada si sólo existe un procesador encargado de ejecutar todos los procesos, simulando la concurrencia, ocupándose de forma alternada de uno y otro proceso a muy pequeños intervalos de tiempo. De esta manera simula que se están ejecutando a la vez.  Algunos casos de concurrencia  La multiprogramación: El procesador es compartido dinámicamente por varios procesos.  Aplicaciones estructuradas: Se implementa como un conjunto de procesos concurrentes.  También se tiene que la misma estructura recién mencionada es utilizada en el diseño de los sistemas operativos, los cuales se implementan como un conjunto de procesos.  Debido a que los procesos concurrentes en un sistema pueden interactuar entre otros también en ejecución, el número de caminos de ejecución puede ser extremadamente grande, resultando en un comportamiento sumamente complejo. Las dificultades asociadas a la concurrencia han sido pensadas para el desarrollo de lenguajes de programación y conceptos que permitan hacer la concurrencia más manejable.

 El control de concurrencia permite que sus usuarios asuman que cada una de sus aplicaciones se ejecuta atómicamente, como si no existieran otras aplicaciones ejecutándose concurrentemente. Esta abstracción de una ejecución atómica y confiable de una aplicación se conoce como una transacción  Informalmente, una transacción es la ejecución de ciertas instrucciones que acceden a una base de datos compartida.  Cada transacción accede a información compartida sin interferir con otras, si una transacción termina normalmente, todos sus efectos son permanentes, en caso contrario no tiene afecto alguno.  Durante una transacción la base de datos pierde su consistencia, la que debe restituirse al momento de finalizar la transacción.

PROPIEDADES FUNDAMENTALES DE UNA TRANSACCIÓN  Atomicidad: Se refiere al hecho de que una transacción se trata como una unidad de operación.  Consistencia: La consistencia de una transacción es simplemente su correctitud.  las transacciones no violan las restricciones de integridad de una base de datos.  Aislamiento: Una transacción en ejecución no puede revelar sus resultados a otras transacciones concurrentes antes de finalizar.  Permanencia: Es la propiedad de las transacciones que asegura que una vez que una transacción finaliza exitosamente, sus resultados son permanentes y no pueden ser borrados de la base de datos por alguna falla posterior.  En esencia, lo que se persigue con el procesamiento de transacciones es, por una parte obtener una transparencia adecuada de las acciones concurrentes a una base de datos y por otra, manejar adecuadamente las fallas que se puedan presentar en una base de datos.  El procesamiento de transacciones es una de las tareas más importantes dentro de un sistema de base de datos, pero a la vez, es una de las más difíciles de manejar debido a diversos aspectos, tales como:  Confiabilidad: Puesto que los sistemas de base de datos en línea no pueden fallar.  Disponibilidad: Debido a que los sistemas de base de datos en línea deben estar actualizados correctamente todo el tiempo.  Tiempos de Respuesta: el tiempo de respuesta de las transacciones no debe ser mayor a doce segundos  Throughput: Los sistemas de base de datos en línea requieren procesar miles de transacciones por segundo.  Atomicidad: en el procesamiento de transacciones: No se aceptan resultados parciales.

PROBLEMAS DE CONCURRENCIA  Existen tres formas en las que una transacción, aunque sea correcta por sí misma, puede producir una respuesta incorrecta si alguna otra transacción interfiere con ella en alguna forma.  El problema de la Actualización Perdida  El problema de la Dependencia No Confirmada  El problema del Análisis Inconsistente

Actualización Perdida Procedure Depositar(Cuenta, Monto) begin Start; temp := Leer(Cuentas[Cuenta]); temp := temp + Monto; Escribir(Cuentas[Cuenta],temp); Commit; End  Leer1(Cuentas[7]) devuelve el valor de $1000  Leer2(Cuentas[7]) devuelve el valor de $1000  Escribir2(Cuentas[7], $101000)  Commit2  Escribir1(Cuentas[7], $1100)  Commit1

Análisis Inconsistente Procedure ImprimirSuma(Cuenta1, Cuenta2) begin Start; temp1 := Leer(Cuentas[Cuenta1]); output(temp1); temp2 := Leer(Cuentas[Cuenta2]); output(temp2); temp1 := temp1 $+$ temp2; output(temp1); Commit; end Leer4(Cuentas[8]) devuelve el valor de $200 Escribir4(Cuentas[8], $100) Leer3 (Cuentas[8]) devuelve el valor de $100 Leer3 (Cuentas[9]) devuelve el valor de $200 Leer4 (Cuentas[9]) devuelve el valor de $200 Escribir4 (Cuentas[9], $300) Commit4 Commit3

Sincronizador o Serializador

Bloqueos  La idea básica de un Bloqueo es que cuando se esta procesando una transacción, inhibe todas las demás transacciones

Bloqueos Transacciones Base de datos Bloqueo Exclusivo DB Transacción A Transacción B Bloqueo Exclusivo o de Escritura Tupla Si la transacción A pone un bloqueo exclusivo (X) sobre una tupla, entonces se rechazará una petición de cualquier otra transacción B para un bloqueo de cualquier tipo sobre la tupia

Bloqueos Transacciones Base de datos Tupla Bloqueo Compartido DB Transacción A Transacción B Bloqueo Compartido o de Lectura Transacción C Bloqueo Exclusivo Si la transacción A pone un bloqueo compartido (S) sobre la tupla entonces: Se rechazará una petición de cualquier otra transacción B para un bloqueo Exclusivo sobre la tupla. Se otorgará una petición de cualquier otra transacción B para un bloqueo S sobre la tupla (esto es, ahora también B tendrá un bloqueo S sobre la tupla Si la transacción A pone un bloqueo compartido (S) sobre la tupla entonces: Se rechazará una petición de cualquier otra transacción B para un bloqueo Exclusivo sobre la tupla. Se otorgará una petición de cualquier otra transacción B para un bloqueo S sobre la tupla (esto es, ahora también B tendrá un bloqueo S sobre la tupla