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 un 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.
Transacciones
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.
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. 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.
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.
No hay comentarios.:
Publicar un comentario