Make your own free website on Tripod.com

Niveles de Transparencia de Distribución

 

En una BDD es deseable que cuente con las transparencias de distribución, que facilita al usuario de la misma, realizar las tareas con mayor eficacia, las cuales son:

a) Transparencia de Localización.- Permite a los usuarios accesar a la información de un archivo cualquiera de la BD sin necesidad de indicar en que computadora se encuentra el archivo.

b) Transparencia de Fragmentación.- Permite al usuario accesar a la información de un archivo fragmentado como si todos los datos del archivo estuvieran en una misma computadora. Es decir, cuando se crea transparencia de fragmentación, el sistema crea la ilusión de que los archivos no están fragmentados.

c) Transparencia de Mapeo Local.-  Es la forma en la que el DDBMs mapea los datos para realizar consultas distribuidas.

 

 

1.- Definición de la BD (análisis de la información, las llaves primarias, tipos de datos y tamaño), su esquema, relaciones y modelo que debe seguir.

2.- Definición del esquema de fragmentación (vertical, horizontal, horizontal derivada, mixta).

3.- Forma en que se determina el lugar físico donde se van a ubicar los datos colocándolos en los diferentes sitios que forma parte de un sistema distribuido. Los datos deberán ser colocados donde mas fácil pueda ser su localización. También se deben distribuir replicas en el lugar mas cercano de los datos originales.

4.- Forma en que el DDBMs mapea los datos para realizar consultas distribuidas.

 

Imágenes Físicas o replicas.-  Cuando llegamos al punto de definir el esquema de localización nos enfrentamos al problema de decidir donde colocar los datos físicos y donde colocar las copias de estos siguiendo las sig. recomendaciones:

**A un fragmento le corresponde una copia colocando en un diferente sitio garantizando la seguridad de los datos pero a la vez el DBMS tendrá que estar haciendo actualizaciones distribuidas; en el caso de que un fragmento pudiera tener mas de una copia podría darse por la necesidad del manejo y proceso de la información de dicho fragmento de tal forma que se incrementen las aplicaciones locales y con la desventaja de que tendrá que hacer varias actualizaciones distribuidas; en el caso de que el fragmento no cuente con replicas distribuidas ni locales no se puede garantizar la seguridad de los datos; sin embargo, es responsabilidad del administrador realizar un respaldo externo para la seguridad de la información y esto forzará a que el DBMS realice aplicaciones distribuidas sobre estos fragmentos cuando otros sitios así lo soliciten.

Características de la Fragmentación

1.- Condición de Complementación.- Todos los datos de la relación global deben ser mapeados en fragmentos; nunca debe pasar que algún elemento de un dato no pertenezca a algún fragmento. Y nunca debe pasar que algún dato se encuentre duplicado en otro fragmento. Ejemplo: 

A1= SL prom>=70 (alumnos)

A2= SL prom<70 (alumnos)

2.- Condición de Reconstrucción.- Siempre debe ser posible reconstruir cada relación global a partir de sus fragmentos. A través de la correlación lógica de los fragmentos deben ser capaces de reunirse y reconstruirse para poder trabajar con  transparencia de fragmentación. Ejemplo: Para el ejemplo anterior la relación Alumnos puede reconstruirse al calcular la unión de todos los fragmentos:

 Alumnos= A1 u A2

3.- Condición de Disjunción.- El hecho de que los fragmentos se encuentren disjuntos garantizan la existencia de una BDD de otra manera seria una BDC fragmentada.

Tipos de Fragmentación

La descomposición de una relación global en fragmentos se puede dar de dos diferentes formas:

** Horizontal

** Vertical

Fragmentación Horizontal.- Consiste en particionar las tuplas de una relación global en subconjuntos; esto es claramente útil en BDD donde cada subconjunto puede contener datos con propiedades comunes. Esto se puede definir expresando cada fragmento como una operación de selección (SL), de una relación global R. 

Ver ejemplos

En algunos casos la fragmentación horizontal de una relación puede estar basada en los atributos de su propia relación o de otra de aquí se desprende la fragmentación horizontal derivada.

Ver ejemplos

Fragmentación Vertical.- En su forma mas simple la fragmentación vertical es igual a la descomposición de sus atributos en grupos. La fragmentación vertical de R  involucra la definición de varios subconjuntos, los cuales se obtienen por proyecciones (PJ) de la relación global R.

La relación R puede reconstruirse a partir de los fragmentos realizando la reunión natural, por medio del operador JN (join) y haciendo referencia a un campo en común (llave primaria). Este tipo de fragmentación se lleva a cabo añadiendo un atributo especial, llamado identificador de tupla (id-tupla), al esquema R. Puesto que cada tupla debe tener una dirección única, el atributo identificador de tupla es una clave del esquema ampliado.

Ver ejemplos

De estos dos tipos de fragmentación se deriva otro llamado fragmentación mixta, en la cual la relación R se divide en varios fragmentos que constituyen las relaciones r1, r2...rn. Cada fragmento se obtiene de la aplicación del esquema de fragmentación, ya sea horizontal o vertical, sobre la relación R o sobre un fragmento de R que se haya obtenido con anterioridad; es decir la fragmentación mixta consiste en definir cláusulas para fragmentos verticales en base a cláusulas para fragmentos horizontales.

Ver ejemplos

Programación con SQL

Consultas sin transparencia de fragmentación de acceso directo considerando el esquema de fragmentación.

1.- La tabla de proveedores se encuentra fragmentada por la ciudad de origen de San Fco, Los Ángeles y otras. Lea la clave del proveedor y despliegue su nombre, también lea la ciudad de origen.

p1= Sl cd='SF' prov

p2= Sl cd='LA' prov

p3=Sl cd <>'SF' and cd <>'LA' prov

read (terminal,$cve_prov,$cd)

case $cd of

   'SF': select nom into $nom

           from p1

           where cve_prov=$cve_prov

   'LA': select nom into $nom

            from p2

            where cve_prov=$cve_prov

  else    select nom into $nom

             from p3

            where cve_prov=$cve_prov

end;

write(terminal, $nom)

Mas ejemplos

Evaluación: