- Control de concurrencia en
bases de datos - Propiedades fundamentales de
una transacción - Conclusiones
- Bibliografía
1. CONTROL DE
CONCURRENCIA EN BASES DE DATOS
El control de transacciones concurrentes en una base de datos
brinda un eficiente desempeño del Sistema de Base
de Datos, puesto que
permite controlar la ejecución de transacciones que operan
en paralelo, accesando a información compartida y, por lo tanto,
interfiriendo potencialmente unas con otras.
El hecho de reservar un asiento en una avión
mediante un sistema basado en aplicaciones web, cuando
decenas de personas en el mundo pueden reservarlo también,
nos da una idea de lo importante y crucial que es el control de
concurrencia en un sistema de base de datos a mediana o gran
escala.
Otro ejemplo en el que podemos observar la incidencia
del control de concurrencia en el siguiente: en una Base de Datos
bancaria podría ocurrir que se paguen dos cheques en
forma simultánea sobre una cuenta que no tiene saldo
suficiente para cubrirlos en su totalidad, esto es posible
evitarlo si se tiene un control de concurrencia.
Los sistemas que
tratan el problema de control de concurrencia permiten que sus
usuarios asuman que cada una de sus aplicaciones se ejecutan
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 accesan 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.
3.
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 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. - Por lo tanto, los sistemas manejadores de base de
datos aseguran que los resultados de una transacción
sobrevivirán a fallas del sistema. Esta propiedad
motiva el aspecto de recuperación de base de datos, el
cual trata sobre cómo recuperar la base de datos a un
estado consistente donde todas las acciones que han
finalizado con éxito queden reflejadas en la
base. - 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 representa una
enorme y significativa porción del mercado
de los sistemas informáticos (más de
cincuenta billones de dólares al año) y es,
probablemente, la aplicación simple más
amplia de las computadoras.Además, se ha convertido en el elemento que
facilita el comercio
electrónico.Como puede percibirse, 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: - La mayoría de medianas y grandes
compañías modernas utilizan el procesamiento de
transacciones para sus sistemas de
producción, y es tan imprescindible que las
organizaciones no pueden funcionar en ausencia
de él. - 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 En sistemas de este
tipo, 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. - Permanencia No se permite la
eliminación en la base de datos de los efectos de una
transacción que ha culminado con
éxito.
La Concurrencia en las Bases de Datos es
de suprema importancia en los sistemas de
información, ya que evita errores en el momento de
ejecutar las diferentes transacciones….
MAGALY VARGAS VALENCIA
YURI CANO
Enviado por:
José Valle
ORIENTADOR WILLSON FERNANDO SOLARTE MOLINA
DOCENTE BASE DE DATOS
CORPORACIÓN UNIVERSITARIA MINUTO DE
DIOS
BELLO
2005