Download haz clic aquí para saber más de este tema

Document related concepts

Base de datos distribuida wikipedia , lookup

Partición (base de datos) wikipedia , lookup

OLTP wikipedia , lookup

Gestor transaccional wikipedia , lookup

X/Open XA wikipedia , lookup

Transcript
Transparencia de transacción
Peter Rob (2004) define a la transparencia de transacción como una
propiedad del Sistema de Administración de Base de Datos Distribuida
(DDBMS) que garantiza que las transacciones de base de datos mantendrán la
integridad y consistencia de la base de datos distribuida. Recordemos que una
transacción de base de datos realizada por el DDBMS puede actualizar los
datos guardados en muchas computadoras diferentes conectadas en una red.
La transparencia de transacción garantiza que la transacción será completada
sólo si todos los sitios implicados en la transacción completan su parte de
ésta.
Los sistemas de base de datos distribuida requieren mecanismos complejos
para manejar transacciones y garantizar la consistencia e integridad de la
base de datos. Para entender cómo se manejan las transacciones, se deberán
conocer los conceptos básicos que rigen solicitudes y transacciones remotas,
transacciones y solicitudes distribuidas.
La transparencia de transacción permite que una transacción
actualice datos en varios sitios de la red. La transaparencia de
transacción garantiza que la transacción se realizará o completada en
su totalidad o abortada, con lo cual se mantiene la integridad de la
base de datos.
Solicitudes y
transacciones
distribuidas
Se trate o no de una transacción distribuida, está formada por una o más
solicitudes a la base de datos. La diferencia básica entre una transacción no
distribuida y una distribuida, es que la segunda puede actualizar y solicitar
datos de varios sitios remotos en una red. Para ilustrar los conceptos de
transacción distribuida con más facilidad, comenzaremos por establecer la
diferencia entre transacciones remotas y distribuidas, utilizando el formato de
transacción BEGIN WORK y COMMIT WORK (podríamos utilizar otro
formato como BEGIN TRANSACTION, etc.; esto sólo es para efectos
ilustrativos). Debemos suponer la existencia de transparencia de ubicación
para
no
tener
que
especificar
la
de
ubicación.
Una solicitud remota, ilustrada en la Figura 1, permite acceder datos que
serán procesados por un solo procesador de base de datos remoto. En otras
palabras, la sentencia o solicitud SQL puede hacer referencia a datos en un
solo sitio remoto.
Figura 1. Solicitud remota.
Asimismo, una transacciión remota, compuesta de varias solicitudes, puede
acceder datos en sólo un sitio. En la Figura 2 se ilustra una transacción
remota.
Figura 2. Transacción remota.
Al examinar la Figura 2 puede observarse las siguientes características de la
transacción remota:




La transacción actualiza las tablas CLIENTE y FACTURA.
Ambas tablas están en el sitio B.
La transacción puede hacer referencia solamente a un procesador de
datos remoto.
Cada sentencia o solicitud SQL puede hacer referencia solamente a un
procesador de datos remoto (el mismo) a la vez, y toda la transacción
puede hacer referencia a y ser ejecutada sólo en un procesador de
datos remoto.
Una transacción distribuida permite que una transacción haga referencia a
varios sitios de procesamiento de datos diferentes (locales y remotos).
Aunque cada solicitud puede hacer referencia a sólo un sitio de procesamiento
de datos remotos, la transacción como un todo puede hacer referencia a
varios sitios de procesamiento de datos, porque cada solicitud puede hacer
referencia a un sitio diferente. El proceso de transacción distribuida se ilustra
en la Figura 3.
Figura 3. Transacción distribuida.
Observa las siguientes características de la Figura 3:



La transacción hace referencia a dos sitios remotos (B y C).
La primera solicitud (sentencia SELECT) es procesada por el
procesador de transacciones en el sitio remoto B, y las siguientes
solicitues (UPDATE e INSERT) son procesadas por el procesador de
datos en el sitio remoto C.
Cada solicitud puede acceder sólo un sitio remoto a la vez.
La tercera caraterística podría provocar problemas; por ejemplo, supón que la
tabla PRODUCTO está dividida en dos fragmentos, PROD1 y PROD2,
localizados en los sitios B y C, respectivamente; dado este escenario, la
transacción distribuida precedente no puede ser ejecutada porque la solicitud:
SELECT *
FROM PRODUCTO
WHERE PROD_NUM='231785'
No puede acceder datos de más de un sitio remoto; por consiguiente, el
DBMS
debe
ser
capaz
de
soportar
una
solicitud
distribuida.
Una solicitud distribuida permite hacer referencia a datos de varios sitios de
procesamiento de datos remotos. Como cada solicitud puede acceder datos de
más de un sitio de procesamiento de datos, una transacción puede acceder
varios sitios. La capacidad de ejecutar una solicitud distribuida proporciona
capacidades de procesamiento de base de datos totalmente distribuida,
porque se puede:


Dividir una tabla de base de datos en varios fragmentos.
Hacer referencia a uno o más de esos fragmentos solamente con una
solicitud. En otras palabras, se tiene transparencia de fragmentación.
La ubicación y partición de los datos deberá ser transparente para el usuario.
La Figura 4 ilustra una solicitud distribuida. Al examinar la Figura 4 se observa
que la transacción utiliza una sola sentencia SELECT para referirse a dos
tablas, CLIENTE y FACTURA. Las dos tablas están localizadas en dos sitios
diferentes, By C.
Figura 4. Solicitud distribuida.
La característica de solicitud distribuida también permite que una sola
solicitud haga referencia a una tabla físicamente dividida. Por ejemplo, supón
que una tabla CIENTE está dividida en dos fragmentos, C1 y C2, localizados
en los sitios B y C, respectivamente; supón además que el usuario desea
obtener una lista de todos los clientes cuyos saldos sean de más de $250. La
solicitud se ilustra en la Figura 5. El soporte de transparencia de
fragmentación es provisto sólo por un DDBMS que soporte solicitudes
distribuidas.
Figura 5. Otra solicitud distribuida.
La comprensión de los diferentes tipos de solicitudes a base de datos en
sistemas distribuidos, ayuda a abordar el tema de la transaparencia de
transacción con más eficacia. La transparencia de transacción garantiza que
las transacciones distribuidas sean tratadas como transacciones centralizadas
que garanticen su seriabilidad. Esto es, la ejecución de transacciones
concurrentes, sean o no distribuidas, llevará a la base de datos de un estado
consistente a otro.