Upload
carloz-jimenez
View
214
Download
0
Embed Size (px)
Citation preview
8/18/2019 BDD-U3
1/52
J=m2C
BASES DE DATOS DISTRIBUIDASBASES DE DATOS DISTRIBUIDASBASES DE DATOS DISTRIBUIDASBASES DE DATOS DISTRIBUIDAS
Expositor:
M.C. José Mario Martínez Castro
C U R S O
J=m2C
Contenido
1. Fundamentos de SBDDs.
2. Arquitectura Cliente/Servidor.
3. Diseño de Bases de Datos Distribuidas.
4. Procesamiento Distribuido de Consultas.
5. Manejo Distribuido de Transacciones.
8/18/2019 BDD-U3
2/52
J=m2C
3. DISEÑO3. DISEÑO DE BASES DEDE BASES DEDATOS DISTRIBUIDASDATOS DISTRIBUIDAS
3. DISEÑO3. DISEÑO DE BASES DEDE BASES DEDATOS DISTRIBUIDASDATOS DISTRIBUIDAS
J=m2C
Problema de Diseño
En un marco general
tomar decisiones acerca de la ubicación de los datos ylos programas, en los sitios de una red de computado-ras, así como también posiblemente el diseño de la propia red.
En los SABDDs, la ubicación de las aplicaciones supone
ubicación del software de los SABDDs, y
ubicación de las aplicaciones que corren sobre la basede datos.
8/18/2019 BDD-U3
3/52
J=m2C
Dimensiones del ProblemaPatrón de acceso
Compartimiento
Nivel deconocimiento
Estático
Datos
Datos + programa
Dinámico
Información parcial
Información
completa
J=m2C
Diseño de la Distribución
Descendente.
Principalmente en sistemas que inician de cero.
Principalmente en sistemas homogeneos.
Ascendente.
Cuando las bases de datos ya existen en los diferentes
sitios.
8/18/2019 BDD-U3
4/52
J=m2C
Diseño DescendenteAnálisis de
requerimientos
Req. del sistema(objetivos)
Diseñoconceptual
Diseñode vistas
Entrada del usuario
Integración de vistas
Esq. conep. global Informaciónde acceso
Definición delesquema externo
Diseño de ladistribución
Esq. concep. local
Diseño físico
Esquema físico
Observ. y monit.
Entradadel usuario
Retroalimentación Retroalimentación
J=m2C
¿Por qué fragmentar todo?
¿Cómo fragmentar?
¿Cuánto fragmentar?
¿Cómo probar la correctez?
¿Cómo ubicar los fragmentos?
¿Qué requirimientos de información?
Problemática del Diseño de la Distribución
8/18/2019 BDD-U3
5/52
J=m2C
¿Podemos distribuir sólo relaciones?
¿Cuál es la unidad razonable de distribución?
Relación. Las vistas son subconjuntos de relaciones (localmente).
Comunicación extra.
Fragmento de relación (sub-relación). Ejecución concurrente de un número de transacciones que
accesan diferentes porciones de una relación.
Las vistas que no puedan ser definidas sobre un solo fragmento
requerirán procesamiento extra. El control de la semántica de datos (especialmente forzar la
integridad) es más complejo.
Fragmentación
J=m2C
Alternativas: Fragmentación Horizontal
J1: Proyectos con presupuestomenor que $200,000.
J2: Proyectos con presupuestomayor o igual a $200,000.
J
J1 J2
JNO JNAME BUDGET LOC
J1J2J3J4J5
InstrumentationDatabase Develop.
CAD/CAMMaintenanceCAD/CAM
150000135000250000310000500000
Montreal New York New York
ParisBoston
JNO JNAME BUDGET LOCJ1J2
InstrumentationDatabase Develop.
150000135000
Montreal New York
JNO JNAME BUDGET LOC
J3J4J5
CAD/CAMMaintenanceCAD/CAM
250000310000500000
New York Paris
Boston
8/18/2019 BDD-U3
6/52
J=m2C
Alternativas: Fragmentación VerticalJ1: Información de los presupuestos
de los proyectos.
J2: Información de los nombres delos proyectos y su ubicación.
J
J1 J2
JNO JNAME BUDGET LOC
J1J2J3J4J5
InstrumentationDatabase Develop.
CAD/CAMMaintenanceCAD/CAM
150000135000250000310000500000
Montreal New York New York
ParisBoston
JNO BUDGET
J1J2J3J4J5
150000135000250000310000500000
JNO JNAME LOC
J1J2
J3J4J5
InstrumentationDatabase Develop.
CAD/CAMMaintenanceCAD/CAM
Montreal New York
New York Paris
Boston
J=m2C
Grado de Fragmentación
Encontrar el nivel adecuado de particionamientodentro de este rango.
Número finito de alternativas
Tuplas oatributos
Relaciones
8/18/2019 BDD-U3
7/52
J=m2C
Completez.
La descomposición de una relación R en fragmentos R1, R2 ,..., Rn, es completa si y sólo si cada elemento de datos en R puede ser encontrado en algún Ri.
Reconstrucción.
Si la relación R se descompone en fragmentos R1 , R2 , ..., Rn,debiera existir un operador relacional tal que R = Ri , Ri F R .
Excluyente.
Si la relación R se descompone en fragmentos R1 , R2 , ..., Rn,y datos del elemento d i están en R j, entonces d i no debieraestar en algún otro fragmento Rk ( j k ).
Correctez de la Fragmentación
J=m2C
No Replicado.
Particionada: cada fragmento reside en un solo sitio.
Replicado.
Réplica completa: cada fragmento en cada sitio.
Réplica parcial: cada fragmento en algunos de lossitios.
Regla del pulgar:Si 1 replicación es ventajosa,
de lo contrario la réplica puede causar problemas.
Alternativas de Asignación
Consultas sólo de lecturaConsultas para actualizar
8/18/2019 BDD-U3
8/52
J=m2C
Comparación de Alternativas de Réplica
Réplica Total Réplica Parcial Particionado
PROCESAMIENTODE CONSULTAS
FácilMisma Dificultad
ADMINISTRACIONDE DICCIONARIO
Fácil ono existente
Misma Dificultad
CONTROL DECONCURRENCIA
Moderado Difícil Fácil
FIABILIDAD Muy AltaAlta Baja
FACTIBILIDAD PosibleAplicación
RealistaPosible
Aplicación
J=m2C
Cuatro Categorias:
Información de la base de datos.
Información de la aplicación.
Información de la red de comunicaciones.
Información del sistema de cómputo.
Requerimientos de Información
8/18/2019 BDD-U3
9/52
J=m2C
Fragmentación horizontal (FH).
Fragmentación horizontal primaria (FHP).
Fragmentación horizontal derivada (FHD).
Fragmentación vertical (FV).
Fragmentación híbrida o mixta (FM).
Tipos de Fragmentación
J=m2C
FHP - Requerimientos de Información
Información de la base de datos:
Relaciones
TITLE, SAL
ENO, ENAME, TITLE JNO, JNAME, BUDGET, LOC
ENO, JNO, RESP, DUR
S
E J
G
L1
L2 L3
Cardinalidad de cada relación: card(R).
8/18/2019 BDD-U3
10/52
J=m2C
FHP - Requerimientos de Información
Información de la aplicación:
Predicados simples: Dada R[ A1 ,A2 ,...An], un predicadosimple p j es
p j : Ai Valor
donde {=, , }, Valor Di y Di es eldominio de Ai.
Ejemplo: JNAME = ‘Maintenance’BUDGET 200000.
Predicados minterm: Dado Ri y Pr i = { pi1 , pi2 , ..., pim}
definir Mi = {mi1 , mi2 , ..., miz} comoMi = {mij |mij = v pik Pri pik *}, 1 k m, 1 j z
donde pik *= pi o pik *= pi.
J=m2C
Ejemplos de predicados minterm:
m1 : JNAME = ‘Maintenance’ BUDGET 200000
m2 : (JNAME = ‘Maintenance’) BUDGET 200000
m3 : JNAME = ‘Maintenance’ (BUDGET 200000)
m4 :
(JNAME = ‘Maintenance’)
(BUDGET 200000)
FHP - Requerimientos de Información
8/18/2019 BDD-U3
11/52
J=m2C
FHP - Requerimientos de Información
Información de la aplicación:
Selectividad de predicados minterm: sel(m j) Número de tuplas de la relación que son accesadas
por una consulta de usuario la cual está especificada por un predicado minterm m j dado.
Frecuencias de acceso: acc(q j)Frecuencia con la cual la aplicación q j accesa datos.
Análogamente se puede definir la frecuencia de
acceso para un predicado minterm.
J=m2C
Fragmentación Horizontal Primaria
Definición: Rij = F j(Ri), 1 j w
donde F j es la fórmula de selección usada para obtener el frag-mento Rij, el cual es (preferentemente) un predicado minterm.
Por lo tanto:
Una fragmentación horizontal Ri de una relación R consiste detodas las tuplas de R las cuales satisfacen un predicado minterm.
Dado un conjunto de predicados minterm M , hay tantasfragmentaciones horizontales de la relación R como predicadosminterm existan.
A los fragmentos horizontales también se les llama fragmentosminterm.
8/18/2019 BDD-U3
12/52
J=m2C
FHP - Obtención de Predicados Simples
Dados: Una relación R, y el conjunto de predicados simples Pr .
Obtener: El conjunto de fragmentos de R = { R1 , R2 , ..., Rw}los cuales obedecen las reglas de fragmentación.
Preliminares:
Pr debe ser completo. Pr debe ser mínimo.
J=m2C
Completez de los Predicados Simples
Se dice que un conjunto de predicados simples Pr es com- pleto si y sólo si el acceso a las tuplas de los fragmentosminterm definidos sobre Pr requiere que dos tuplas delmismo fragmento minterm tengan la misma probabilidadde ser accesadas por todas y cada una de las aplicaciones.
8/18/2019 BDD-U3
13/52
J=m2C
Ejemplo:
Suponemos que J(JNO, JNAME, BUDGET, LOC) tiene dosaplicaciones definidas para trabajar sobre J:
Encontrar los presupuestos de los proyectos en cadalocalidad.
Encontrar los proyectos con presupuesto menor que$200000.
Completez de los Predicados Simples
J=m2C
Completez de los Predicados Simples
De acuerdo a (1)
Pr = {LOC=“Montreal”, LOC=“New York”, LOC=“Paris”}
lo cual no es completo con respecto a (2).
Si modificamos
Pr = {LOC=“Montreal”, LOC=“New York”, LOC=“Paris”,BUDGET200000, BUDGET>200000}
el cual es completo.
8/18/2019 BDD-U3
14/52
J=m2C
Minimalidad de los Predicados Simples
Si un predicado influye en cómo se ejecuta la fragmenta-ción (v.g. provoca que un fragmento f se particione ennuevos fragmentos f i y f j), entonces debiera existir almenos una aplicación que accese a f i y f j diferentemente.
En otras palabras el predicado simple deberá ser relevanteen determinar una fragmentación.
Si todos los predicados de un conjunto Pr son relevantes,entonces Pr es mínimo.
J=m2C
Relevancia de los Predicados Simples
acc(mi)card ( f i)
acc(m j)card ( f j)
Sean mi y m j dos predicados minterm idénticos en su defini-ción, excepto que mi contiene el predicado simple pi mien-tras que m j contiene
pi, y sean f i y f j dos fragmentos defini-dos de acuerdo a mi y m j; entonces pi es relevante si y sólo si
8/18/2019 BDD-U3
15/52
J=m2C
Minimalidad de los Predicados Simples
Sin embargo, si agregamos
JNAME=“Instrumentation”
Ejemplo
Pr = {LOC=“Montreal”, LOC=“New York”, LOC=“Paris”,BUDGET200000, BUDGET>200000}
es mínimo además de ser completo.
entonces Pr no es mínimo.
J=m2C
Algoritmo COM-MIN
Entrada: Una relación R y un conjunto de predicados simplesPr .
Salida: Un conjunto de predicados simples completo ymínimo Pr ’ para Pr.
Regla I: Una relación o fragmento se particiona en al menosdos partes las cuales son accesadas de maneradiferente por al menos una aplicación.
8/18/2019 BDD-U3
16/52
J=m2C
Algoritmo COM-MIN
Inicialización:
Encontrar un pi Pr tal que pi particione R de acuerdoa la Regla 1.
Hacer Pr’ pi; Pr Pr - pi; F f i Agregar predicados iterativamente a Pr’ hasta que esté
completo.
Encontrar un p j Pr tal que p j particione algún f k definido por un predicado minterm de Pr’ de acuerdoa la Regla 1.
Hacer Pr’ Pr’ pi; Pr Pr - pi; F F f i Si pk Pr’ el cual no es relevante, entonces
Hacer Pr’ Pr’ - pk ; F F - f k
J=m2C
Algoritmo P-HORIZONTAL
Hacer Pr’ COM-MIN( R,Pr )
Determinar el conjunto M de predicados minterm
Determinar el conjunto de implicaciones I entre pi Pr
Eliminar los predicados minterm contradictorios de M
Hacer uso de COM-MIN para efectuar fragmentación.
Entrada: Una relación R y un conjunto de predicados sim- ples Pr .
Salida: Un conjunto de fragmentos minterm M de R.
8/18/2019 BDD-U3
17/52
J=m2C
Dos relaciones candidatas: S y J.
Fragmentación de la relación S: Aplicación: verificar salario y determinar aumento.
Los registros de empleados se manipulan en dos sitios => laaplicación corre en dos sitios.
Predicados simples: p1 : SAL 30000 p2 : SAL > 30000Pr : { p1 , p2} el cual es completo y mínimo Pr’ = Pr
Predicados minterm:m
1
: (SAL 30000) (SAL 30000)m2 : (SAL 30000)
(SAL 30000)m3 :
(SAL 30000) (SAL 30000)m4 :
(SAL 30000) (SAL 30000)
FHP - Ejemplo
J=m2C
Fragmentación de la relación S (continúa): Implicaciones:
i1 : (SAL 30000) (SAL 30000)
i2 : (SAL 30000) (SAL 30000)
i3 : (SAL 30000) (SAL 30000)
i4 : (SAL 30000) (SAL 30000)
m1 es contradictorio a i1, m4 es contradictorio a i2
FHP - Ejemplo
TITLE SAL
Mech. Eng.Programmer
2700024000
TITLE SAL
Elect. Eng.Syst. Anal.
4000034000
S2S1
8/18/2019 BDD-U3
18/52
J=m2C
Fragmentación de la relación J: Aplicaciones:
Encontrar el nombre y el presupuesto de los proyectos dado sunúmero. Estas consultas son emitidas en tres sitios.
Accesar la información del proyecto de acuerdo a su presupuesto.
Predicados simples para la aplicación (1): p1 : LOC = “Montreal” p2 : LOC = “New York” p3 : LOC = “Paris”
Predicados simples para la aplicación (2): p4 : BUDGET 200000 p5 : BUDGET 200000
Pr = Pr’ = { p1 , p2 , p3 , p4 , p5}
FHP - Ejemplo
J=m2C
Fragmentación de la relación J (continúa): Fragmentos minterm después de la eliminación:
m1 : (LOC “Montreal”) (BUDGET 200000)
m2 : (LOC “Montreal”) (BUDGET 200000)
m3 : (LOC “New York”) (BUDGET 200000)
m4 : (LOC “New York”) (BUDGET 200000)
m5 : (LOC “Paris”) (BUDGET 200000)
m6 : (LOC “Paris”) (BUDGET 200000)
FHP - Ejemplo
8/18/2019 BDD-U3
19/52
J=m2C
FHP - Ejemplo
JNO JNAME BUDGET LOC
J1 Instrumentation 150000 Montreal
JNO JNAME BUDGET LOC
J2 Database Develop. 135000 New York
JNO JNAME BUDGET LOC
J3 CAD/CAM 250000 New York
JNO JNAME BUDGET LOC
J4 Maintenance 310000 Paris
J1
J4 J6
J2
J=m2C
Definida sobre una relación miembro de una liga segúnuna operación de selección especificada sobre su relación propietaria.
Cada enlace corresponde a una equireunión.
Fragmentación Horizontal Derivada
TITLE, SAL
ENO, ENAME, TITLE JNO, JNAME, BUDGET, LOC
ENO, JNO, RESP, DUR
S
E J
G
L1
L2 L3
8/18/2019 BDD-U3
20/52
J=m2C
FHD - DefiniciónDado un enlace L donde propietario( L)=S y miembro( L)= R,la fragmentación horizontal derivada de R se define como
Ri = R S i , 1 i w
Donde w es el número máximo de fragmentos que serándefinidos en R, y S i = Fi(S ), donde F i es la formula mediantela cual se define la fragmentación horizontal primaria S i.
J=m2C
FHD - Ejemplo
ENO ENAME TITLEE3 A. Lee Mech. Eng.E4 J. Miller Programmer E7 R. Davis Mech. Eng.
ENO ENAME TITLEE1 J. Doe Elect. Eng.E2 M. Smith Syst. Anal.E5 B. Casey Syst. Anal.E6 L. Chu Elect. Eng.E8 J. Jones Syst. Anal.
Dado el enlace L1, donde propietario( L1)=S ymiembro( L1)=E
E1= E S1E2= E S2
dondeS1= SAL 30000(S)S2= SAL >30000(S)
8/18/2019 BDD-U3
21/52
J=m2C
FHD - Correctez Completez.
Integridad referencial.
Sea R la relación miembro de un enlace cuyo propieta-rio es la relación S la cual está fragmentada como F s ={S 1 , S 2 , ..., S w}. Además sea A el atributo de la reuniónentre R y S . Entonces para cada tupla t de R, debieraexistir una tupla t’ de S tal que t [ A] = t’[ A]
Reconstrucción.
Igual que la de la fragmentación horizontal primaria.
Exclusión. Si el grafo de la reunión entre el propietario y los frag-
mentos miembro es simple.
J=m2C
Ha sido estudiada dentro del contexto centralizado.
Metodología de diseño.
Agrupamiento físico.
Más difícil que la horizontal, debido a que existen másalternativas.
Existen dos técnicas:
Agrupamiento de atributos en fragmentos. División de la relación en fragmentos.
Fragmentación Vertical
8/18/2019 BDD-U3
22/52
J=m2C
Traslape de fragmentos.
Agrupamiento.
Sin traslape de fragmentos.
División.
Fragmentación Vertical
No se considera traslape en los atributos llave replicados.
Ventaja: facilita hacer cumplir las dependencias funcionales
(para verificar integridad, etc.)
J=m2C
FV - Requerimientos de Información
Información de la aplicación:
Afinidad de los atributos, la cual es una medida que indi-ca qué tanta relación existe entre los atributos.
Esto se obtiene de las primitivas de uso de los datos.Dado un conjunto de consultas Q = {q1 , q2 , ..., qq} quecorren sobre la relación R[ A1 , A2 , ..., An],
uso(qi ,A j) =1 si el atributo A j es referido en la consulta qi0 en caso contrario
uso(qi, ) se puede definir análogamente.
8/18/2019 BDD-U3
23/52
J=m2C
FV - Ejemplo de uso(qi , A j)
Considerar las siguientes 4 consultas para la relación J:
q1: SELECT BUDGETFROM JWHERE JNO=Valor
q3: SELECT JNAMEFROM JWHERE LOC=Valor
q2: SELECT JNAME, BUDGETFROM J
q4: SELECT SUM(BUDGET)FROM JWHERE LOC=Valor
Sean A1=JNO, A2=JNAME, A3=BUDGET, A4=LOC
A1 A2 A3 A4
q1 1 0 1 0q2 0 1 1 0q3 0 1 0 1q4 0 0 1 1
J=m2C
FV - Medida de Afinidad aff ( Ai , A j)
La medida de afinidad entre dos atributos Ai y A j de una rela-ción R[ A1 , A2 , ..., An] con respecto al conjunto de aplicacionesQ = {q1 , q2 , ..., qn} se define como sigue
aff ( Ai , A j) = todas las consultas que accesan Ai y Aj ref l(qk ) acc(qk )S l
8/18/2019 BDD-U3
24/52
J=m2C
FV - Cálculo de aff ( Ai , A j)Suponemos que cada consulta en el ejemplo anterior accesalos atributos una vez durante cada ejecución.
También suponemos lasfrecuencias de acceso
Entoncesaff ( A1 , A3) = 15*1 + 20*1 +10*1
= 45
y la matriz de afinidad deatributos AA es
S1 S2 S3q1 15 20 10q2 5 0 0q3 25 25 25q4 3 0 0
A1 A2 A3 A4A1 45 0 45 0
A2 0 80 5 75A3 45 5 53 3A4 0 75 3 78
J=m2C
FV - Algoritmo de Agrupamiento
Toma la matriz de afinidad de atributos AA y reorganiza elorden de los atributos para formar grupos donde los atribu-tos en cada grupo demuestran alta afinidad unos con otros.
El algoritmo de energía de cohesión (BEA) se usado paraagrupamiento de entidades. BEA encuentra un orden deatributos tal que la medida de afinidad global
AM = (afinidad de Ai y A j con sus vecinos)
se maximiza.
i j
8/18/2019 BDD-U3
25/52
J=m2C
Algoritmo de Energía de CohesiónEntrada: La matriz AA.Salida: La matriz de afinidad CA agrupada, la cual es unaderivación de AA.
Inicialización: Colocar y ajustar una de las columnas de AA en CA.
Iteración: Colocar las n-i columnas restantes en el resto dei +1 posiciones en la matriz CA. Por cada columna, elegirel lugar que más contribuya a la medida de afinidad global.
Ordenar filas: Ordenar las filas de acuerdo al orden decolumna.
J=m2C
Algoritmo de Energía de Cohesión
La “mayor contribución” se encuentra de acuerdo a la siguien-te fórmula:
cont ( Ai , Ak , A j) = 2bond ( Ai , Ak ) + 2bond ( Ak , A j) - 2bond ( Ai , A j)
donde:
bond ( A x , A y) = aff ( A z , A x) aff ( A z , A y) z=1
n
8/18/2019 BDD-U3
26/52
J=m2C
BEA - Ejemplo
Considerar la siguiente matriz AA y la correspondiente matriz CAdonde A1 y A2 han sido ubicados como sigue:
AA = CA =
A1 A2 A3 A4A1 45 0 5 0A2 0 80 5 75A3 45 5 53 3A4 0 75 3 78
A1 A2A1 45 0A2 0 80A3 45 5A4 0 75
Ordenar (0-3-1):cont ( A0 , A3 , A1) = 2bond ( A0 , A3) + 2bond ( A3 , A1) - 2bond ( A0 , A1)
= 2*0 + 2*4410 - 2*0 = 8820Ordenar (1-3-2):
cont ( A1 , A3 , A2) = 2bond ( A1 , A3) + 2bond ( A3 , A2) - 2bond ( A1 , A2)= 2*4410 + 2*890 - 2*225 = 10150
Ordenar (2-3-4):cont ( A2 , A3 , A4) = 1780
J=m2C
BEA - Ejemplo
Por lo tanto la matriz CA tiene la forma
La forma final de la matriz CA (después de organizar lasfilas) es
A1 A3 A2 A4A1 45 45 0 0A3 45 53 5 3A2 0 5 80 75A4 0 3 75 78
A1 A3 A2A1 45 5 0A2 0 5 80A3 45 53 5A4 0 3 75
A4
8/18/2019 BDD-U3
27/52
J=m2C
FV - Algoritmo
¿Cómo puede dividirse un conjunto de atributos agrupados { A1 , A2 , ..., An} en dos (o más) conjuntos { A1 , A2 , ..., Ai} y { Ai+1 , ..., An} tal que no haya (o sea mínimo el número de) aplicacionesque accesen ambos (o más de un) conjuntos?
A1 ,A2 ,A3 , ..., Ai Ai+1 , ..., An A1 A2 A3
Ai
Ai+1
An
TA
BA
J=m2C
Definir TQ = conjunto de las aplicaciones que accesan sólo TA, BQ = conjunto de las aplicaciones que accesan sólo BA,OQ = conjunto de las aplicaciones que accesan TA y BA,yCTQ = número total de accesos a los atributos por las aplica-
ciones que accesan sólo TA,CBQ = número total de accesos a los atributos por las aplica-
ciones que accesan sólo BA,COQ = número total de accesos a los atributos por las aplica-
ciones que accesan TA y BA.
Entonces encontrar el punto sobre la diagonal que maximiza
CTQ*CBQ-COQ2
FV - Algoritmo
8/18/2019 BDD-U3
28/52
J=m2C
FV - Algoritmo
Dos problemas:
Un fragmento a la mitad de la matriz CA. Cambiar la columna más izquierda hasta la derecha,
reordenar las filas, y aplicar el algorimo para encontrarel “mejor” punto de particionamiento.
Hacer esto para todos los cambios posibles. Costo O(n2).
Para más de dos grupos. Particionamiento en n grupos. Probar 1, 2, ..., n-1 puntos de división a lo largo de la
diagonal y tratar de encontrar el mejor punto para cadauno de éstos.
Costo O(2n).
J=m2C
Completez. Lo siguiente debiera satisfacerse: A = Ai
Reconstrucción. La reconstrucción puede efectuarsemediante
R = K Ri, Ri F R
Exclusión. Los identificadores no se consideran para ser trasla-
pados ya que son mantenidos por el sistema. Las llaves duplicadas no se consideran para ser
traslapadas.
FV - Correctez
Una relación R, definida sobre un conjunto de atributos Ay clave K , genera la partición vertical F R={ R1, R2, ..., Rr }.
8/18/2019 BDD-U3
29/52
J=m2C
Fragmentación Híbrida
R
R 1 R 2
R 11 R 12 R 21 R 22 R 23
FH FH
FV FV FVFV
FV
J=m2C
Distribución de Fragmentos
Planteamiento del problema:
Dado
F = {F 1, F 2,...,F n} es el conjunto de fragmentos.
S = {S 1, S 2, ..., S m} es el conjubto de sitios en la red, y
Q = {q1, q2, ..., qq} es el conjunto de aplicaciones,
encontrar la distribución “óptima” de F en S.
8/18/2019 BDD-U3
30/52
J=m2C
Distribución de Fragmentos
Costo minimo.
Comunicación + Almacenamiento + Procesamiento (lecturay actualizaciones).
Costo en términos de tiempo (usualmente).
Eficiencia.
Tiempo de respuesta.
Restricciones.
Restricciones por sitio (almacenaje y procesamiento).
Optimalidad
J=m2C
Información de la base de datos. Selectividad de fragmentos. Tamaño de un fragmento.
Información de la aplicación. Tipos de acceso y número. Acceso a sitios.
Información de la red de comunicaciones. Ancho de banda. Distancias entre sitios.
Sobrecarga de protocolos.
Información del sistema de cómputo. Unidad de costo de almacenar datos en un
sitio.
Unidad de costo de procesar datos en un sitio.
Requerimientos de Información
8/18/2019 BDD-U3
31/52
J=m2C
Los fragmentos no pueden tratarse como archivos indivi-duales.
Se tienen que tomar en cuenta sus relaciones.
El acceso a la base de datos es más complicado.
El modelo de acceso a archivos remotos no aplica.
Relación entre distribución y procesamiento de
consultas. El costo de mantener la integridad debe considerarse.
El costo del control de concurrencia debe considerarse.
Distribución
Problema de distribución de archivos (FAP) vs. problema dedistribución de base de datos (DAP).
J=m2C
Distribución - Requerimientos de Información
Información de la base de datos:
Selectividad de fragmentos minterm.
Tamaño de los fragmentos.
Información de las aplicaciones:
Número de accesos de lectura de una consulta a unfragmento.
Número de accesos de actualización a un fragmento.
Una matriz que indique cuáles consultas actualizan quéfragmentos.
Una matriz similar para las lecturas.
Sitio de origen de cada consulta.
8/18/2019 BDD-U3
32/52
J=m2C
Distribución - Requerimientos de Información
Información de los sitios:
Unidad de costo de almacenar datos en un sitio.
Unidad de costo de procesar datos en un sitio.
Información de la red:
Costo de comunicación de una trama entre dos sitios.
Tamaño de la trama.
J=m2C
Modelo de Distribución
Forma generalmin(costo total)
sujeto arestricciones de tiempo de respuestarestricción de almacenajerestricción de procesamiento
variables de decisión:
1 si el fragmento F i se almacena en el sitio S j0 en caso contrario
xij =
8/18/2019 BDD-U3
33/52
J=m2C
Modelo de Distribución
Costo Total : todas las consultas costo de procesamiento de consulta + todos los sitios todos los fragmentos costo de almacenaje de un frag. en unsitio
Costo de almacenaje (del fragmento F j en S k ):(unidad de costo de almacenaje en S k ) * (tamaño de F j) * x jk
Costo de procesamiento de consulta:componente de procesamiento + componente de transmisión
J=m2C
Modelo de Distribución
Componente de procesamiento:costo de acceso + costo de mantenimiento de integridad + costo de control de concurrencia
Costo de Acceso: todos los sitios todos los fragmentos (no. de accesos de actualización
+ no. de accesos de lectura) * x jk * costo de procesamiento local en un sitio
Los costos de mantenimiento de integridad y de control deconcurrencia se pueden formaular de una manera similar.
8/18/2019 BDD-U3
34/52
J=m2C
Modelo de Distribución
Componente de Transmisión:costo de procesar actualizaciones + costo de procesar
lecturas
Costo de actualizaciones: todos los sitios todos los fragmentos costo del mensaje de actualizar +
todos los sitios todos los fragmentos costo de confirmación
Costo de lecturas: todos los fragmentos min todos los sitios (costo del comando de recuperación +
costo de enviar los resultados)
J=m2C
Modelo de Distribución
Restricciones:
Tiempo de respuesta:tiempo de ejecución de la consulta
max. tiempo de resp. permisible para esa consulta
Almacenamiento: todos los fragmentos reqs. de almacenaje de un fragmento en ese sitio
capacidad de almacenaje de ese sitio
Procesamiento: todas las consultas carga de proc. de una consultas en ese sitio
capacidad de procesamiento de ese sitio
8/18/2019 BDD-U3
35/52
J=m2C
Problema - Separación de los Pasos de Diseño
Relaciones Globales
FRAGMENTACION
Fragmentos de Relaciones
DISTRIBUCION
Relaciones Locales
J=m2C
Fragmentación Vertical
8/18/2019 BDD-U3
36/52
J=m2C
Introducción En esta sección se presenta un modelo que unifica la
fragmentación vert ical, la ubicación y la reubicacióndinámica en sistemas de bases de datos distribuídas.
Este modelo permite mejorar el desempeño de sistemasexpuestos a cambios en los patrones de uso de los datos.
La naturaleza de muchos sistemas distribuídos es diná-mica, con cambios en la topología de la red, patrones yfrecuencias de acceso, nuevos datos, número de nodos,costos, y recursos. Este aspecto dinámico se trata incor- porándolo en el modelo matemático.
J=m2C
Introducción
El uso generalizado de redes de comunicaciones paracomputadoras, incluyendo Internet, facilita la implemen-tación de sistemas de bases de datos distribuídas.
Sin embargo, uno de los problemas más difíciles para sudesarrollo es la falta de metodologías y herramientas paraefectuar su diseño.
8/18/2019 BDD-U3
37/52
J=m2C
Introducción
Tradicionalmente, se ha considerado que el diseño de ladistribución consiste de dos fases separadas: fragmentacióny ubicación de fragmentos.
Contrariamente a la creencia generalizada, se demuestraque es más sencillo resolver simultáneamente los proble-mas de fragmentación y ubicación.
En este sentido, el modelo propuesto es innovador.
J=m2C
Descripción del Problema
S n
S3S2
S1
RED
S = {S 1, S 2, ..., S n }: sitios o nodos en la red
Dada una red de computadoras
8/18/2019 BDD-U3
38/52
J=m2C
Descripción del Problema
S = {S 1, S 2, ..., S n }: sitios o nodos en la red
Q = {q1, q2, ..., qq }: aplicaciones
S n
S3S2
S1
RED
q2q1
q1q1
q2
Un conjunto de aplicaciones y una base de datos relacional
J=m2C
Descripción del Problema
S = {S 1, S 2, ..., S n }: sitios o nodos en la red
Q = {q1, q2, ..., qq }: aplicaciones
F = { f 1, f 2, ..., f n}: fragmentos
S n
S3
S2
S1
RED
q2q1
q1q1
q2 f 2
f 1
El problema consiste en la determinación y ubicación defragmentos de tal forma que se minimice el costo total decomunicación y almacenamiento
8/18/2019 BDD-U3
39/52
J=m2C
Modelo MatemáticoEn este modelo, la decisión de almacenar un atributo en el sitio j se representa con una variable binariax
j . Así x j = 1 si se almacena en j , y x j = 0 en
caso contrario.
++ j jijii j2 j
xd cawc
+=kjki jk i j jijk k i kik
y f c1 xclq f zmin
Costo de comunicación Costo de acceso avarios fragmentos
Costo dealmacenamiento
Costo dereubicación
J=m2C
S n
S3S2
S1
RED
q1q1f 1
S = {S 1, S 2, ..., S n }: sitios o nodos en la red
Q = {q1, q2, ..., qq }: aplicaciones
F = { f 1, f 2, ..., f n}: fragmentos
Costo de Comunicación
8/18/2019 BDD-U3
40/52
J=m2C
Costo de Comunicación
j j jijk k i kik
x xclq f
J=m2C
S = {S 1, S 2, ..., S n }: sitios o nodos en la red
Q = {q1, q2, ..., qq }: aplicaciones
F = { f 1, f 2, ..., f n}: fragmentos
Costo de Acceso a Varios Fragmentos
S n
S3S2
S1
RED
q2q2 f 2
f 1
8/18/2019 BDD-U3
41/52
J=m2C
Costo de Acceso a Varios Fragmentos
kjkjki j 1k i
y y f c
J=m2C
S = {S 1, S 2, ..., S n }: sitios o nodos en la red
F = { f 1, f 2, ..., f n}: fragmentos
Costo de Almacenamiento de Fragmentos
S n
S3S2
S1
RED
f 1
f 2
8/18/2019 BDD-U3
42/52
J=m2C
Costo de Almacenamiento de Fragmentos
j j2 j
wwc
J=m2C
Costo de Reubicación
S n
S3S2
S1
RED
q1q1f 1
f 1
f 1f 1
f 1f 1
f 1f 1
f 1f 1 f 1f 1 f 1 f 1 f 1 f 1
S = {S 1, S 2, ..., S n }: sitios o nodos en la red
Q = {q1, q2, ..., qq }: aplicaciones
F = { f 1, f 2, ..., f n}: fragmentos
8/18/2019 BDD-U3
43/52
J=m2C
Costo de Reubicación
j j jijii
x xd ca
J=m2C
Modelo Matemático
donde
f ki = frecuencia de emisión de la consulta k desde el sitio i;
qk = parámetro de uso, qk = 1 si la consulta k usa el atributo, en caso contrario qk = 0;
lk = número de paquetes de comunicación necesarios paratransportar al atributo requerido por la consulta k
= (p
sk )/PA
p
= tamaño en bytes del atributo ;sk = selectividad de la consulta k ;PA = tamaño del paquete de comunicación en bytes;
8/18/2019 BDD-U3
44/52
J=m2C
cij = costo de comunicación entre el sitio i y el sitio j;
c1 = costo por accesar varios fragmentos para satisfacer unaconsulta;
c2 = costo por ubicar un fragmento en un sitio;
ykj = variable de decisión, ykj = 1 si la consulta k accede auno o más atributos localizados en el sitio j, y ykj = 0en caso contrario;
w j = variable de decisión, w j = 1 si existe uno o másatributos en el sitio j, y w j = 0 en caso contrario;
Modelo Matemático
J=m2C
ai = indicador de ubicación previa, ai = 1 si el atributo
está localizado actualmente en el sitio i, en casocontrario a
i = 0;
d
= número de paquetes de comunicación necesarios para mover el atributo a otro sitio en caso necesario;
= (p * CA)/PAdondeCA = cardinalidad de la relación.
Modelo Matemático
8/18/2019 BDD-U3
45/52
J=m2C
Modelo Matemático
Restricciones intrínsecas del problema:
j
j j x
"
= 1
i
k
kik i q x
,"
j
1)
2)
cada atributo debe almacenarse en sólo
un sitio;
0si,0
0si,1
ki
ki
ki f
f
cada atributo debe ubicarse en unsitio i que ejecute por lo menos unaconsulta que involucre al atributo;
donde
J=m2C
Restricciones intrínsecas del problema:
3)
4)
esta restricción fuerza el valor de w j a 1cuando cualquier x
j es igual a 1, einduce w j a 0 en caso contrario;
esta restricción fuerza ykj a 1 cuan-
do cualquier qk x j es igual a 1, einduce ykj a 0 en caso contrario;
j
xwt
j j
"
- 0
jk,
q
jk x yt kj
"
- 0
Modelo Matemático
8/18/2019 BDD-U3
46/52
J=m2C
Restricciones intrínsecas del problema:
5) la suma de los tamaños de los frag-mentos asignados al sitio j no debeexceder la capacidad de éste. j
CA
p x j CS j
Modelo Matemático
J=m2C
Solución Factible Actual
z
z( x)
x
8/18/2019 BDD-U3
47/52
J=m2C
Vecindad de Solución Actual
z
z( x)
x H ( x)
J=m2C
La Nueva Solución se Genera Aleatoriamente
z
z( x)
x y H ( x)
8/18/2019 BDD-U3
48/52
J=m2C
Diferencia de Valores de la Función Objetivo
z
z( x)
z( y)
x y
z = z( y) - z( x)
J=m2C
Regla de Aceptación
z
x y
z = z( y) - z( x)
La nueva solución y se acepta si z < T
8/18/2019 BDD-U3
49/52
J=m2C
Se Obtiene una Nueva Solución Actual
z
Nueva x
J=m2C
Algoritmo de Aceptación por Umbral
Inicio
real T , entero i, S x = la mejor de un conjunto de S
soluciones factibles
T = valor inicial alto de temperatura
8/18/2019 BDD-U3
50/52
J=m2C
Algoritmo de Aceptación por Umbral
repetirrepetir
para i = 1 hasta S y = solución vecinasi z( y) - z( x) < T entonces x = y
en caso contrariono se acepta la nueva solución
fin_sii = i + 1
fin_si
hasta alcanzar el equilibrio térmicoT = T hasta alcanzar el congelamiento
Fin
J=m2C
0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
1 2 3 4 5 6 7 8 9 10 11 12 13
B&B
AU
P R O B L E M A S
Desviación Porcentual Respecto al Óptimo
8/18/2019 BDD-U3
51/52
J=m2C
0
1
2
3
4
5
6
7
8
1 2 3 4 5 6 7 8 9 10 11 12 13
B&B
AU
P R O B L E M A S
Comparación en Tiempo de Ejecución
J=m2C
Conclusiones
Se han propuesto varios métodos para el diseño de bases dedatos distribuídas. Invariablemente el problema de diseño seha dividido en dos fases: fragmentación y ubicación.
El modelo propuesto muestra la factibilidad de integrar la
fragmentación y ubicación en una sola fase, lo cual resultaen una solución más eficiente.
8/18/2019 BDD-U3
52/52
J=m2C
Conclusiones
El modelo se resolvió usando dos algoritmos: Branch and Bound para programación entera, y Aceptación por Umbral.Los resultados experimentales muestran que el algoritmo deAceptación por Umbral encuentra la solución óptima para problemas pequeños.
Los resultados muestran la eficiencia del algoritmo de Acep-tación por Umbral, con un buen desempeño para problemas
pequeños y mostrando su potencial para resolver problemasgrandes.