ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

CONCURRENCIA EN BASE DE DATOS


Enviado por   •  22 de Marzo de 2014  •  4.065 Palabras (17 Páginas)  •  1.462 Visitas

Página 1 de 17

ÍNDICE

INTRODUCCIÓN 3

DEFINICIÓN DE CONCURRENCIA 4

TRANSACCIONES 5

PROPIEDADES FUNDAMENTALES DE UNA TRANSACCIÓN 6

PROBLEMAS DE CONCURRENCIA 8

CONTROL DE CONCURRENCIA EN BASES DE DATOS 11

BLOQUEOS 12

Bloqueo Mortal 13

SERIABILIDAD 15

OPINIÓN PERSONAL 16

CONCLUSIÓN 17

FUENTES DE INFORMACIÓN 18

INTRODUCCIÓN

Concurrencia 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 algun 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.

En este informe podremos ver algunos de los problemas que se presentan cuando la concurrencia no se controla y algunos de los mecanismos de bloqueo que nos permiten manejar la concurrencia en las transacciones. De esta manera, los sistemas de control de concurrencia deben garantizar la consistencia de transacciones que se ejecutan de manera concurrente.

DEFINICIÓN DE CONCURRENCIA

En el campo informatico, el termino concurrencia se refiere a la capacidad de los Sistemas de Administración de Base de Datos, de permitir que múltiples procesos sean ejecutados al mismo tiempo, y que tambien 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, pueden ser:

● La multiprogramación, ya que el tiempo del procesador es compartido dinámicamente por varios procesos.

● Las aplicaciones estructuradas, donde la programación estructurada 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.

TRANSACCIONES

Los sistemas que tratan el problema de control de concurrencia permiten 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.

Un algoritmo de control de concurrencia asegura que las transacciones se ejecuten atómicamente controlando la intercalación de transacciones concurrentes, para dar la ilusión de que las transacciones se ejecutan serialmente, una después de la otra, sin ninguna intercalación. Las ejecuciones intercaladas cuyos efectos son los mismos que las ejecuciones seriales son denominadas serializables y son correctos ya que soportan la ilusión de la atomicidad de las transacciones.

El concepto principal es el de transacción. Informalmente, una transacción es la ejecución de ciertas instrucciones que acceden a una base de datos compartida. El objetivo del control de concurrencia y recuperación es asegurar que dichas transacciones se ejecuten atómicamente, es decir:

Cada transacción accede a información compartida sin interferir con otras transacciones, y si una transacción termina normalmente, todos sus efectos son permanentes, en caso contrario no tiene afecto alguno.

Una base de datos está en un estado consistente si obedece todas las restricciones de integridad (significa que cuando un registro en una tabla haga referencia a un registro en otra tabla, el registro correspondientes debe existir) definidas sobre ella.

Los cambios de estado ocurren debido a actualizaciones, inserciones y supresiones de información. Por supuesto, se quiere asegurar que la base de datos nunca entre en un estado de inconsistencia.

Sin embargo, durante la ejecución de una transacción, la base de datos puede estar temporalmente en un estado inconsistente. El punto importante aquí es asegurar que la base de datos regresa a un estado consistente al fin de la ejecución de una 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. Por lo tanto, o todas las acciones de la transacción se realizan o ninguna de ellas se lleva a cabo. La atomicidad requiere que si una transacción se interrumpe por una falla, sus resultados parciales sean anulados.

● Consistencia: La consistencia de una transacción es simplemente su correctitud. En otras palabras, una transacción es un programa correcto que lleva a la base de datos de un estado consistente a otro con la misma característica. Debido a esto, 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. Más aún, si varias transacciones se ejecutan concurrentemente, los resultados deben ser los mismos que si ellas se hubieran ejecutado de manera secuencial.

● Permanencia: Es la propiedad de

...

Descargar como (para miembros actualizados)  txt (27.5 Kb)  
Leer 16 páginas más »
Disponible sólo en Clubensayos.com