Este documento describe los conceptos fundamentales del diseño de bases de datos distribuidas. Explica que los sistemas de cómputo distribuido involucran la distribución de datos y programas entre diferentes sitios. Luego, discute alternativas para la fragmentación de datos como la fragmentación horizontal y derivada, y presenta reglas y algoritmos para realizar una fragmentación correcta que asegure la integridad de los datos. Finalmente, provee ejemplos detallados sobre cómo aplicar estas técnicas de fragmentación a relaciones específicas.
2. Introducción
Sistemas 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.
5. 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?
6. 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).
11. Reglas para una correcta
fragmentación
Aseguramos 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.
12. Reglas para una correcta
fragmentación
2) 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).
16. Fragmentación horizontal
Versiones 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.
17. 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)
18. 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.
19. 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.
20. Información de la aplicación
Posibles predicados simples de la relación
PAY.
21. Información de la aplicación
“Términos” basados en los predicados
simples.
22. 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).
23. 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”.
25. 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:
28. 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.
32. 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
34. 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.
37. 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 como
Ri= 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.
38. 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.
40. Fragmentación horizontal
derivada
Para 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.
41. 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.
42. 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.
43. Fragmentación horizontal
derivada
Ahora 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.