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

Document related concepts

SQL wikipedia , lookup

Base de datos distribuida wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

MongoDB wikipedia , lookup

Transcript
Transparencia de distribución
La transparencia de distribución permite manejar una base de datos
físicamente dispersa como si fuera centralizada. El nivel de transparencia
soportado por el Sistema de Administración de Base de Datos Distribuida
(DDBMS) varía de sistema a sistema. Se reconocen tres niveles de
transparencia de distribución (Rob, 2004):



La transparencia de fragmentación es el mayor nivel de
transparencia. El usuario o programador no necesita saber que una
base de datos está en particiones; por consiguiente, ni los hombres ni
la ubicación de los fragmentos se especifican antes de acceder a los
datos.
La transparencia de ubicación existe cuando el usuario o
programador debe especificar los nombres de los fragmentos de la
base de datos, pero no su ubucación.
La transparencia de ubicación local existe cuando el usuario o
programador debe especificar tanto los nombres como las ubicaciones
de los fragmentos.
La transparencia de distribución permite que una base de datos
distribuida sea tratada como una sola base de datos lógica. Si un
sistema de administración de base de datos distribuida exhibe
transparencia de distribución, el usuario no necesita saber:



que los datos están en particiones,
que los datos pueden ser replicados en varios sitios, o
la ubicación de los datos.
En la Tabla 1 se resumen las características de la transparencia de
distribución.
Si la instrucción SQL
requiere:
Nombre del
fragmento
Nombre de la
ubicación
Luego el DDBMS
soporta
Nivel de transparencia
de distribución
Sí
Sí
Mapeo local
Bajo
Sí
No
Transparencia de
ubicación
Medio
No
No
Transparencia de
fragmentación
Alto
Tabla 1. Resumen de características de transparencia de distribución.
Al examinar la Tabla 1, podríamos preguntarnos por qué no existe referencia
a una situación en la cual el nombre del fragmento es "No" y el de la
ubicación es "Sí". La razón por la que no se incluye este escenario es simple:
no puede tenerse el nombre de una ubicación que no haga referencia a un
fragmento existente (si no necesita especificarse el nombre de un fragmento,
su
ubicación
claramente
no
viene
al
caso).
Para ilustrar el uso de varios niveles de trasparencia, vamos a suponer que se
tiene una tabla EMPLEADO que contiene los atributos EMP_NOMBRE,
EMP_NAC, EMP_DIR, EMP_DEP y EMP_SALARIO. Los datos EMPLEADO
están distribuidos en tres lugares: Veracruz, Monterrey y DF. La tabla está
dividida por ubicación, es decir, todos los datos de los empleados de Veracruz
están guardados en el fragmento E1, los datos de los empleados de Monterrey
en el fragmento E2 y los de DF en el fragmento E3. Esto lo podemos ver en la
Figura 1.
Figura 1. Ubicaciones de los fragmentos.
Bien, ahora supongamos que el usuario desea poner una lista de todos los
empleados con fecha de nacimiento anterior al 1 de enero de 1940. Para
enfocarse en los temas de transparencia, también supongamos que la tabla
EMPLEADO está fragmentada y que cada fragmento es único (la condición de
fragmento único indica que todas las filas son únicas, sin hacer caso de qué
fragmento esté localizado en elllas). Por último, supongamos también que
ninguna parte de la base de datos está replicada en algún otro sitio de la red.
Según el nivel de soporte de la transparencia de distribución, pueden
examinarse tres casos de consulta:
CASO 1: LA BASE DE DATOS SOPORTA TRANSPARENCIA DE FRAGMENTACIÓN
La consulta se ajusta al formato de consulta de base de datos no distribuida,
es decir, no especifica nombres de ubicaciones de fragmento. La consulta dice
así:
SELECT *
FROM EMPLEADO
WHERE EMP_NAC < '01-ENE-1940';
CASO 2: LA BASE DE DATOS SOPORTA TRANSPARENCIA DE UBICACIÓN
En la consulta deben especificarse los nombres de fragmento, mas No su
ubicación. La consulta dice así:
SELECT *
FROM E1
WHERE EMP_NAC < '01-ENE-1940';
UNION
SELECT *
FROM E2
WHERE EMP_NAC < '01-ENE-1940';
UNION
SELECT *
FROM E3
WHERE EMP_NAC < '01-ENE-1940';
CASO 3: LA BASE DE DATOS SOPORTA TRANSPARENCIA DE UBICACIÓN LOCAL
En la consulta deben especificarse tanto el nombre como la ubicación del
fragmento. Si se utiliza pseudo SQL, la consulta dice así:
SELECT *
FROM E1 NODE VERACRUZ
WHERE EMP_NAC < '01-ENE-1940';
UNION
SELECT *
FROM E2 NODE MONTERREY
WHERE EMP_NAC < '01-ENE-1940';
UNION
SELECT *
FROM E3 NODE DF
WHERE EMP_NAC < '01-ENE-1940';
La palabra NODE indica la ubicación del fragmento de la base de
datos. Se utiliza NODE para propósitos de ilustración y no forma
parte de la sintaxis SQL.
Al examinarse los formatos de consulta precedentes, se ve la forma en la que
la transparencia de distribución afecta la interacción de los usuarios y
programadores
con
la
base
de
datos.
La transparencia de distribución es soportada por un Diccionario de Datos
Distribuidos (DDD, por sus siglas en inglés: Data Distributed Dictionara) o
un Catálogo de Datos Distribuidos (DDC, por sus siglas en inglés: Data
Distributed Catalog). El DDC contiene la descripción de toda la base de datos
tal como la ve su administrador. La descripción de la base de datos, conocida
como esquema global distribuido, en el esquema de base de datos común
utilizado por procesadores de transacciones locales, para transformar las
consultas de usuarios en subconsultas (solicitudes remotas) que serán
procesadas por diferentes procesadores de datos. El DDC es en sí mismo
distribuido, y está replicado en los nodos de red; por consiguiente, el DDC
debe mantener consistencia mediante la actualización en todos los sitios.
Para concluir, debemos tomar en cuenta que algunas versiones actuales de
DDBMS limitan el nivel de soporte de transparencia; por ejemplo, podría
distribuirse una base de datos, mas no una tabla, a través de varios sitios.
Una condición como ésa indica que el DDBMS soporta transparencia de
ubicación, pero no de fragmentación.