Download haz clic aquí para saber más de este tema
Document related concepts
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.