3. diseño de bases de datos distribuidas

47
Diseño de Bases de datos distribuidas

Transcript of 3. diseño de bases de datos distribuidas

Diseño de Bases de datos distribuidas

IntroducciónSistemas de cómputo distribuido involucran la toma de decisiones en: Posicionamiento de datos y Programas.En DBMS’s distribuidos (DDBS’s) el posicionamiento de aplicaciones implica:1. La distribución de los DBMS’s (software).2. La distribución de los programas de

aplicación.

Organización de sistemas distribuidos

Diseño Top - Down

Cuestiones sobre el diseño de distribución ¿Por qué fragmentar? ¿Cómo debemos fragmentar? ¿Qué tanto debemos fragmentar? ¿Hay alguna manera de verificar si la

fragmentación se realizó correctamente?

¿Cómo debemos distribuir (en los sitios)?

¿Cuál información es la necesaria para distribuir y fragmentar?

Justificación de la fragmentación Una relación (tabla) no es una unidad

adecuada. Las aplicaciones definen vistas y están

en lugares distintos, la relación entera: No se replica. Se replica parcial o total.

La descomposición (fragmentos) permite transacciones de ejecución concurrente (concurrencia intra-consulta).

Alt

ern

ati

vas

de

fragm

enta

ción

Alt

ern

ati

vas

de

fragm

enta

ción

Alternativas de fragmentación

Nivel de fragmentación ¿Fragmentar todo? ¿Fragmentar por tupla?

Reglas para una correcta fragmentaciónAseguramos que la base de datos no sufra cambios semánticos durante la fragmentación.1) Completitud: Si una instancia de relación R

se descompone en fragmentos FR: {R1, R2, …, Rn} cada sección de datos que puede encontrarse en R también puede encontrarse en una o más Ri’s. Propiedad de la descomposición sin pérdida de la normalización.

Reglas para una correcta fragmentación2) Reconstrucción: Si la relación R se

descompone en fragmentos FR: {R1, R2, …, Rn} es posible definir un operador relacional tal que

R= Ri, Ri FR

3) Disyunción: Si una relación R está horizontalmente descompuesta en fragmentos FR: {R1, R2, …, Rn} y la sección de datos di está en Rj, este no se encontrará en otro fragmento Rk (kj).

Alternativas de distribución

Requerimientos de informaciónFragmentación (cualitativas): Base de datos. Aplicaciones.Distribución (cuantitativas): Red de comunicación. Sistemas computacionales (de

computadoras).

FRAGMENTACIÓN

Fragmentación horizontalVersiones de la fragmentación horizontal: Primaria: Se desarrolla utilizando

predicados que son definidos en la relación (tabla).

Derivada: resulta de predicados que son definidos en otras relaciones.

Información de la base de datos

Dueño o fuente (L1)= PAY

Miembro u objetivo (L1)= EMP

Dueño o fuente

Miembro u objetivo

Cardinalidad (R)1(PAY)M(EMP)

Información de la aplicación Consiste de los predicados de las consultas de

los usuarios. “Regla del 80/20”

Necesitamos encontrar predicados simples. Dada una relación R (A1, A2, …, An), donde A1es un atributo definido sobre el dominio Di, un simple predicado pj definido en R tiene la forma

pj: Ai Valor

Donde {=, <, , >, >=, <=} y Valor se escoje del dominio de Ai.

Información de la aplicación Dado un conjunto Pri={pi1, pi2, …, pim} de

predicados simples para la relación Ri, el conjunto de predicados “términos” Mi={ mi1, mi2, …, miz} se define como

donde P*ik=Pik o P*

ik= Pik. Así cada predicado se puede encontrar en su forma natural y en su forma negada.

Información de la aplicación Posibles predicados simples de la

relación PAY.

Información de la aplicación “Términos” basados en los predicados

simples.

Información de la aplicación En términos de información cuantitativa

acerca de las aplicaciones de los usuarios, necesitamos dos conjuntos de datos:

1) Selectividad de“términos”: número de tuplas de la relación que serán accesadas por la consulta especificada de acuerdo a un “término” dado. sel(mi), 0.25(m2).

2) Frecuencia de acceso: Frecuencia con que las aplicaciones de usuarios acceden a los datos. acc(qi).

Fragmentación horizontal primaria Está definida por una operación

SELECCIÓN en la relación dueño de un esquema de base de datos.

Dada una relación R, sus fragmentos horizontales están dados por

Ri= Fi (R), 1<= i <= w

donde Fi es la fórmula de selección para obtener el fragmento Ri. Fi en forma de conjunción se convierte en un “término”.

Fragmentación horizontal primaria Ejemplo. Queremos descomponer la

relación PROJ y determinamos como fragmentos:

Fragmentación horizontal primaria Dos opciones se presentan, determinar

si la nueva tupla se debe insertar en el fragmento PROJ2 o revisar y redefinir los fragmentos tal que:

Fragmentación horizontal primaria

Fragmentación horizontal primaria

Fragmentación horizontal primaria

Completitud: los fragmentos son uniformes lógicamente pues satisfacen el “término”.

Mínima: Si un predicado influencia como se desempeña una fragmentación debe haber al menos una aplicación que acceda a fi y a fj de maneras diferentes. Si Pr es relevante, entonces es mínima.

Algoritmo para fragmentaciónRegla 1: Cada fragmento es accedido de diferente manera por, al menos, una aplicación.

Alg

ori

tmo p

ara

con

jun

to d

e

pre

dic

ad

os

Algoritmo para fragmentación horizontal

Algoritmo para fragmentación horizontal Ejemplo: Suponga que hay solo una

aplicación que accede a PAY y los empleados son administrados desde dos sitios; uno maneja a aquellos cuyo salario es menor o igual a $30,000 y el otro a los que ganan más de $30,000

Algoritmo para fragmentación horizontal

Algoritmo para fragmentación horizontal Ejemplo: Asuma que existen dos

aplicaciones, la primera se ejecuta en tres sitios y encuentra los nombres y presupuestos de los proyectos por su locación. La segunda se ejecuta en dos sitios y administra los proyecto por su presupuesto, en un sitio los que tienen presupuesto menor o igual a $200,000, y en el otro los que son mayores.

Algoritmo para fragmentación horizontal

Algoritmo para fragmentación horizontal

Fragmentación horizontal derivada Se define en la relación miembro de un enlace de

acuerdo a la operación selección especificada en el dueño.

Dado un enlace L donde dueño(L)=S y miembro(L)=R, los fragmentos horizontales derivados de R se definen comoRi= R |X| Si, 1 <= i <= w

donde w es el número máximo de fragmentos que serán definidos en R, y Si= Fi (S), donde Fi es la fórmula de acuerdo a como el fragmento horizontal primario de S está definido.

Fragmentación horizontal derivada Usando como dueño(L1) = PAY y

miembro (L1)= EMP ponemos a los ingenieros en dos grupos de acuerdo a su salario, aquellos que ganan menor o igual a $30,000 y aquellos que ganan más de $30,000.

Fragmentación horizontal derivada

Fragmentación horizontal derivadaPara llevar a cabo este tipo de fragmentación son necesarias tres entradas: El conjunto de particiones de la relación dueño, la relación miembro, y el conjunto de predicados de semi-reunión entre el dueño y el miembro.

Fragmentación horizontal derivada Existe más de una posible

fragmentación horizontal derivada. La elección se basa en dos criterios: La fragmentación con mejores

características de reunión. La fragmentación que se usa en

más aplicaciones.

El punto número uno permite 1) realizar las consultas en relaciones más pequeñas y 2) potencialmente realizar reuniones en paralelo.

Fragmentación horizontal derivada

• Gráfico de reunión simple.

• Gráfico de reunión particionado.

Fragmentación horizontal derivadaAhora consideremos la relación ASG bajo lo siguiente:1. Existen dos aplicaciones.2. La primera aplicación encuentra los nombres de

ingenieros que trabajan en ciertos lugares. Corre en los tres sitios y accede a la información acerca de los ingenieros que trabajan en proyectos locales por sobre aquellos que trabajan en otros lugares.

3. En cada sitio administrativo donde los registros de empleados son administrados, los usuarios querrán acceder a las responsabilidades de los proyectos en que esos empleados trabajan y saber qué tanto tiempo trabajarán en esos proyectos.

Fragmentación horizontal derivada

Fragmentación horizontal derivada Con respecto a PROJ

Fragmentación horizontal derivada Con respecto a EMP