5.1.2 Transparencia

El propósito de establecer una arquitectura de un sistema de bases de datos distribuidas es ofrecer un nivel de transparencia adecuado para el manejo de la información.

La transparencia se define como la separación de la semántica de alto nivel de un sistema de los aspectos de bajo nivel relacionados a la implementación del mismo. Un nivel de transparencia adecuado permite ocultar los detalles de implementación a las capas de alto nivel de un sistema y a otros usuarios. El sistema de bases de datos distribuido permite proporcionar independencia de los datos.

 

La independencia de datos se puede dar en dos aspectos: lógica y física.

 

1.-Independencia lógica de datos. Se refiere a la inmunidad de las aplicaciones de usuario a los cambios en la estructura lógica de la base de datos. Esto permite que un cambio en la definición de un esquema no debe afectar a las aplicaciones de usuario. Por ejemplo, el agregar un nuevo atributo a una relación, la creación de una nueva relación, el reordenamiento lógico de algunos atributos.

 

2.-Independencia física de datos. Se refiere al ocultamiento de los detalles sobre las estructuras de almacenamiento a las aplicaciones de usuario. La descripción física de datos puede cambiar sin afectar a las aplicaciones de usuario. Por ejemplo, los datos pueden ser movidos de un disco a otro, o la organización de los datos puede cambiar.

 

La transparencia al nivel de red se refiere a que los datos en un SBDD se accedan sobre una red de computadoras, sin embargo, las aplicaciones no deben notar su existencia. La transparencia al nivel de red conlleva a dos cosas:

 

 

1.-Transparencia sobre la localización de datos. El comando que se usa es independiente de la ubicación de los datos en la red y del lugar en donde la operación se lleve a cabo. Por ejemplo, en Unix existen dos comandos para hacer una copia de archivo. Cp se utiliza para copias locales y rcp se utiliza para copias remotas. En este caso no existe transparencia sobre la localización.

 

2.-Transparencia sobre el esquema de nombramiento. Lo anterior se logra proporcionando un nombre único a cada objeto en el sistema distribuido. Así, no se debe mezclar la información de la localización con en el nombre de un objeto.

La transparencia sobre replicación de datos se refiere a que si existen réplicas de objetos de la base de datos, su existencia debe ser controlada por el sistema no por el usuario. Se debe tener en cuenta que cuando el usuario se encarga de manejar las réplicas en un sistema, el trabajo de éste es mínimo por lo que se puede obtener una eficiencia mayor. Sin embargo, el usuario puede olvidarse de mantener la consistencia de las réplicas teniendo así datos diferentes.

 

La transparencia a nivel de fragmentación de datos permite que cuando los objetos de la bases de datos están fragmentados, el sistema tiene que manejar la conversión de consultas de usuario definidas sobre relaciones globales a consultas definidas sobre fragmentos. Así también, será necesario mezclar las respuestas a consultas fragmentadas para obtener una sola respuesta a una consulta global. El acceso a una base de datos distribuida debe hacerse en forma transparente.

 

En resumen, la transparencia tiene como punto central la independencia de datos.

La responsabilidad sobre el manejo de transparencia debe estar compartida tanto por el sistema operativo, el sistema de manejo de bases de datos y el lenguaje de acceso a la base de datos distribuida. Entre estos tres módulos se deben resolver los aspectos sobre el procesamiento distribuido de consultas y sobre el manejo de nombres de objetos distribuidos.

 

 

 

 

La transparencia oculta al usuario la parte del cómo están organizadas las bases de datos distribuidas en los diferentes nodos físicos en las que se encuentran, esto hace que el usuario vea a la base de datos distribuida como si fuera una sola base de datos.

 

Dentro de los principales niveles de trasparencia tenemos:

  • Transparencia de Sistemas de gestión de base de datos SGBD
  • Transparencia de transacción
  • Transparencia de concurrencia
  • Transparencia respecto a fallos

 

Transparencia de Sistemas de gestión de base de datos SGBD

No es necesario para el usuario saber los nombres de los fragmentos menos la ubicación de estos, como se hace la replicación los nombres en cada uno de los nodos.

  1. Transparencia de fragmentación. El usuario no sabe cómo están fragmentadas las tabla en las base de datos. El usuario no necesita especificar el nombre de los fragmentos de las tablas.
  2. Transparencia de la ubicación. Puede darse el caso de que el usuario conozca cómo se encuentran fragmentadas las tablas, pero no conoce y no es necesario que sepa la ubicación de etas.
  3. Transparencia de la replicación. El usuario no sabe que nodos que contienen los fragmentos son replicados, tampoco es necesario que lo sepa para poner en funcionamiento una aplicación.
  4. Transparencia de denominación.  Cada elemento de la base de datos distribuida debe tener un nombre igual en cada uno de los nodos en que se encuentra distribuida, eso hace que el usuario manipule los elementos como si estudiaran centralizados en una sola base de datos.

 

Transparencia de concurrencia. Los sistemas de gestión de base de datos distribuidas brindan transparencia de concurrencia si es que las transacciones independientes son lógicas y tienen similitud con que se puedan hacer al mismo tiempo, es decir los resultados serían los mismos se hiciere de una sola vez. Esto sucede con la replicación, por ejemplo, dado que este proceso es asíncrono.

 

Transparencia de transacción

  1. Se garantiza que todas las transacciones mantengan la integridad y coherencia de datos de la base de datos distribuida, es decir en todos sus nodos y fragmentos. Por ejemplo se puede utilizar todos los fragmentos de una tabla – estos fragmentos pueden estar físicamente en diferentes ubicaciones – de una sola vez.
  2. Una transacción internamente está dividida en sub transacciones para ocupar cada uno de los nodos que contenga los datos que se requiere, esto no es visible para el usuario. Este, simplemente envía una sola transacción.

 

Transparencia respecto a fallos. Garantizar la atomicidad de la transacción, es decir mostrar los resultados si es que todas las sub transacciones no tuvieron error, o parar todo el proceso y algún subproceso tuvo error. Por lo tanto SGBDD debe sincronizar todas las sub-transacciones  mediante la transacción global.