Академический Документы
Профессиональный Документы
Культура Документы
CONTROL DE CONCURRENCIA
INTRODUCCION
Oracle es un sistema manejador de bases de datos que permite concurrencia, es
decir, que varios usuarios realicen transacciones en el mismo instante de tiempo.
Dar soporte a esta solicitud es de vital importancia para los sistemas actuales y
deben tomarse medidas para garantizar que en ningn momento se pierdan datos
debido al acceso y modificacin concurrente en la BD.
En general, Oracle implementa un sistema basado en SCN (System Change
Number) que consiste en generar un nmero (relativo al tiempo del sistema) que
sirva de referencia para marcar una transaccin y que sta slo acceda a la versin
de los datos con un SCN cercano al suyo, evitando as que las transacciones
accedan a versiones modificadas de las tablas.
Oracle asegura la consistencia de los datos mediante un sistema de Control de
Concurrencia Multiversin, que se divide en dos partes. La primera es la
consistencia a nivel de sentencias y la segunda es la consistencia a nivel de
transacciones.
Por defecto, Oracle activa los protocolos de concurrencia a nivel de sentencias, que
consisten en que una consulta utilice los valores que se encontraban en
los registros justo antes de comenzar la consulta (y no antes de comenzar la
transaccin). De esta forma se evita que la consulta acceda a datos que no fueron
confirmados (Uncommited Data) o que estn siendo actualizados por otras
transacciones.
Tambin se permite activar el control de concurrencia a nivel de transacciones, esto
se logra obligando a las consultas de una misma transaccin a acceder a una sola
versin de los registros. Esto da como resultado que todas las consultas dentro de
una misma transaccin utilicen la misma versin de los datos, generando
consistencia dentro de la transaccin.
Como las transacciones son aisladas (segn las propiedades ACID), Oracle posee
distintos niveles de aislamiento para asegurar la consistencia. Entre ellos se
encuentran:
Lectura Confirmada: Una consulta solo utiliza datos que fueron confirmados
(Commited Data) antes del comienzo de la ejecucin de la consulta.
Serializable: Cada consulta utiliza los datos que fueron confirmados antes del
comienzo de la ejecucin de la transaccin, adems de acceder tambin a
los cambios realizados por sentencias INSERT, DELETE, UPDATE que
hayan sido ejecutadas dentro de esta transaccin.
Slo Lectura: Slo es visible la versin de los datos al momento del comienzo
de la transaccin y no se permiten sentencias INSERT, UPDATE, DELETE,
dentro de la transaccin.
Oracle tambin realiza bloqueos totales de sus objetos principales, tales como Logs,
Diccionario de Datos y Segmentos de los Tablespaces para asegurar que ningn
usuario manipule objetos vitales para el funcionamiento correcto de la BD.
En conclusin, el Sistema Manejador de Oracle posee mecanismos muy eficientes
para el control de concurrencia, que garantizan la consistencia y el aislamiento de
las transacciones.