bdd - clase 5

21
Diseño de Bases de Datos Distribuidas (3era Parte) Lic. Bárbara da Silva Sistemas de Bases de Datos Distribuidas - UCV

Upload: agentee4

Post on 07-Dec-2015

234 views

Category:

Documents


0 download

DESCRIPTION

BDD - Clase 5

TRANSCRIPT

Page 1: BDD - Clase 5

Diseño de Bases de Datos Distribuidas

(3era Parte)

Lic. Bárbara da Silva

Sistemas de Bases de Datos Distribuidas - UCV

Page 2: BDD - Clase 5

Esquema de la Clase

• Fragmentación Horizontal– Fragmentación Horizontal Derivada

• Fragmentación Vertical

• Fragmentación Mixta

Page 3: BDD - Clase 5

Reglas de Correctitud de Fragmentación

1. Completitud: La descomposición de una relación R en los fragmentos R1, R2, ..., Rn es completa si y solamente si cada elemento de datos en R se encuentra en algún de los Ri. En el caso de fragmentación horizontal el elemento de datos, normalmente, es una tupla, mientras que en el caso de fragmentación vertical es un atributo.

2. Reconstrucción: Debe ser posible definir una operación relacional que permita reconstruir la relación R a partir de los fragmentos. Esta regla asegura que se preserven las dependencias funcionales.

3. Disyunción: Si una relación R se descompone horizontalmente en una serie de fragmentos R1, R2, ..., Rn, y un elemento de datos Di se encuentra en algún fragmento Rj, entonces no se encuentra en otro fragmento Rk (k<> j).

Page 4: BDD - Clase 5

Fragmentación Horizontal Derivada

En la FHD los predicados son definidos sobre otra relación.

Es definida sobre una relación miembro de un enlace de acuerdo a la operación de selección especificada en su propietario.

Dado un enlace L donde propietario (L) = S y el miembro (L) = R, los fragmentos de R son definidos como

Ri = R SJ Si , 1 i w

Donde:• w es el máximo número de fragmentos de R

• Si = SLFi (S) donde Fi es la fórmula de la FHP que determinó Si.

Page 5: BDD - Clase 5

Fragmentación Horizontal Derivada

Titulo, SalarionumEmp, nombre, tituloL

Empleado Sueldo

PropietariaMiembro

Se tienen agrupados los empleados según el salario así:

Sueldo1 = SL Salario 3000 Sueldo

Sueldo2 = SL Salario > 3000 Sueldo

Un ejemplo de FHD seria:

Empleado1 = Empleado SJtitulo Sueldo1

Empleado2 = Empleado SJtitulo Sueldo2

Page 6: BDD - Clase 5

Fragmentación Horizontal Derivada

Si se tienen las siguientes tuplas de Empleado y Sueldo ¿Cómo quedan las tuplas en los fragmentos?

numEmp nombre titulo

100 Empleado1 Ingeniero Electrico

200 Empleado2 Ayudante

300 Empleado3 Ayudante

400 Empleado4 Ingeniero en Sistemas

500 Empleado5 Ayudante

Empleado

titulo salario

Ingeniero Electrico 5000

Ingeniero en Sistemas 4000

Ayudante 2000

Sueldo

Page 7: BDD - Clase 5

Fragmentación Horizontal Derivada

¿Qué se necesita para hacer la FHD?

• Los fragmentos de la relación propietaria• La relación miembro• Predicados de SemiJoin entre la relación propietaria y la relación miembro.

Page 8: BDD - Clase 5

Fragmentación Horizontal Derivada

El punto complicado es que comúnmente en una relación se tienen más de un enlace, por lo tanto más de una posible FHD. Se tienes dos criterios para evaluar las posibilidades:

• La fragmentación usada por más aplicaciones

• Procesamiento de querys -> joins -> tratar de colocar los fragmentos de la relación propietaria y miembro que correspondan en el mismo nodo.

Page 9: BDD - Clase 5

Fragmentación Horizontal Derivada

Verificando las Reglas de Correctitud

1. Completitud: Si cumple con la Integridad Referencial, es decir se asegura que las tuplas de cualquier fragmento de la relación miembro también están en la relación propietaria.

2. Reconstrucción: mediante la unión de los fragmentos.

3. Disyunción: Una tupla de la relación miembro no puede corresponder con dos o más tuplas de la relación propietaria cuando estas tuplas están en diferentes fragmentos de la relación propietaria.

Debe existir un grafo de unión simple entre los fragmentos de la tabla propietaria y la relación miembro.

Page 10: BDD - Clase 5

Fragmentación Vertical

La fragmentación vertical es la subdivisión de atributos en grupos.

El objetivo de la fragmentación vertical es dividir una relación en subconjuntos de relaciones que contengan los atributos a los que normalmente las aplicaciones de usuario acceden de manera simultánea, de forma que éstas corran solamente sobre esos fragmentos y reduzcan su tiempo de ejecución.

Page 11: BDD - Clase 5

Fragmentación Vertical

Dos de los enfoques para hacer fragmentación vertical son:

Agrupamiento: inicia asignando un atributo a cada fragmento y se va iterando uniendo dichos fragmentos

División: A partir de la relación se determinan los fragmentos basándose en el acceso de las aplicaciones a los atributos.

Page 12: BDD - Clase 5

Fragmentación Vertical

Ejemplo:

Se tiene la relación:Proyecto (numProy, nombre, presupuesto, localización)

Y sobre ella corren las siguientes aplicaciones:• Encontrar el presupuesto de un proyecto dado su número de identificación• Encontrar los nombres y presupuestos de todos los proyectos• Encontrar los nombres de los proyectos localizados en una ciudad dada• Encontrar el total de presupuestos de cada ciudad

Page 13: BDD - Clase 5

Fragmentación Vertical

numProy

nombre presupuesto

localización

100 Proyecto1 2000 Caracas

200 Proyecto2 5000 Valencia

300 Proyecto3 3000 Valencia

400 Proyecto4 4000 Caracas

500 Proyecto5 6000 Caracas

¿En el ejemplo se cumplen las tres reglas de correctitud?

Proyecto

Proyecto1 Proyecto2

numProy

nombre localización

100 Proyecto1 Caracas

200 Proyecto2 Valencia

300 Proyecto3 Valencia

400 Proyecto4 Caracas

500 Proyecto5 Caracas

numProy

presupuesto

100 2000

200 5000

300 3000

400 4000

500 6000

Page 14: BDD - Clase 5

Fragmentación Vertical

Verificando las Reglas de Correctitud

1. Completitud: cada atributo de la relación global es asignado a alguno de los fragmentos

2. Reconstrucción: mediante el join de la clave primaria ó id de la tupla.

3. Disyunción: el único atributo primario clave de la relación global (Id-tupla ó clave primaria), se puede encontrar en cada uno de los fragmentos resultantes del proceso. Los demás atributos no se deben repetir.

Page 15: BDD - Clase 5

Fragmentación Mixta

Es la combinación de fragmentación horizontal y vertical, también llamada fragmentación híbrida ó fragmentación anidada.

Ejemplo:

Proyecto (numProy, nombre, presupuesto, localización)

FV de Proyecto: Proyecto1 (numProy, nombre, localización)

Proyecto2 (numProy, presupuesto)

FH de Proyecto1: Proyecto11 = SL localización=‘Caracas’ Proyecto1

Proyecto12 = SL localización=‘Valencia’ Proyecto1

Page 16: BDD - Clase 5

Fragmentación Mixta

Con respecto al ejemplo:

¿Cómo es el árbol de fragmentación?

¿Cómo se reconstruye la relación proyecto?

Page 17: BDD - Clase 5

Fragmentación Mixta

Niveles de fragmentación

En la FH se detiene la fragmentación cuando cada fragmento sólo posee una tupla y en FV cuando cada fragmento posee un atributo.

Pero a nivel práctico lo adecuando es no tener más de 2 niveles de fragmentación debido a:

• Reconstrucción de una relación global normalizada.• Alto costo de los join en caso de mucha FV.

Page 18: BDD - Clase 5

Ejercicio de Fragmentación

Se tiene el siguiente esquema conceptual global:

EMP (EmpNum, Nombre, Salario, impuesto, Numdep, cargo)

DEPT (NumDep, Nombre, Área)SUPLIDOR (Snum, Nombre, Ciudad)PRODUCTO (Pnum, Snum, NumDep, Cantidad)

Page 19: BDD - Clase 5

Ejercicio de Fragmentación

Asuma que unas aplicaciones importantes requieren información acerca de empleados miembros de proyectos.

Sea cada departamento un nodo de la base de datos distribuida.

Las aplicaciones pueden ser emitidas por cualquier departamento, sin embargo, cuando ellas son emitidas por un departamento dado, refieren a tuplas de empleados de ese departamento con mayor probabilidad que las tuplas de otros empleados.

Esto pasa porque los empleados están distribuidos en departamentos.

Page 20: BDD - Clase 5

Ejercicio de FragmentaciónAsuma que otras aplicaciones requieren sólo datos de aquellos empleados que son programadores.

Estas últimas aplicaciones pueden ser emitidas en cualquier nodo de la base de datos distribuida y hacen referencia a todos los programadores con la misma probabilidad.

Asumamos que tenemos sólo dos departamentos 1 y 2.

Algunas aplicaciones requieren información acerca de Productos suplidos por un suplidor dado.

Sólo en el departamento 1 se realizan los cálculos de nómina que necesitan los campos salario e impuesto. Ninguna otra aplicación lo necesita.

Page 21: BDD - Clase 5

Tarea

Recuperar el nombre del proveedor de un producto. Se asume que:

El número del producto es dado por el usuario. Un producto es suplido por un solo proveedor.

Escriba la consulta para cada uno de los niveles de transparencia