Documente Academic
Documente Profesional
Documente Cultură
Expositor:
M.C. Jos Mario Martnez Castro
J=m2C
Contenido
1. Fundamentos de SBDDs.
2. Arquitectura Cliente/Servidor.
3. Diseo de Bases de Datos Distribuidas.
4. Procesamiento Distribuido de Consultas.
5. Manejo Distribuido de Transacciones.
J=m2C
3. DISEO DE BASES DE
DATOS DISTRIBUIDAS
J=m2C
Problema de Diseo
En un marco general
tomar decisiones acerca de la ubicacin de los datos y
los programas, en los sitios de una red de computadoras, as como tambin posiblemente el diseo de la
propia red.
En los SABDDs, la ubicacin de las aplicaciones supone
ubicacin del software de los SABDDs, y
ubicacin de las aplicaciones que corren sobre la base
de datos.
J=m2C
Esttico
Datos
Datos +
programa
Nivel de
conocimiento
Informacin
completa
Compartimiento
J=m2C
Diseo de la Distribucin
Descendente.
Principalmente en sistemas que inician de cero.
Principalmente en sistemas homogeneos.
Ascendente.
Cuando las bases de datos ya existen en los diferentes
sitios.
J=m2C
Diseo Descendente
Anlisis de
requerimientos
Req. del sistema
(objetivos)
Diseo
conceptual
Informacin
de acceso
Diseo
de vistas
Definicin del
esquema externo
Entrada
del usuario
Diseo de la
distribucin
Esq. concep. local
Diseo fsico
Esquema fsico
Retroalimentacin
Observ. y monit.
Retroalimentacin
J=m2C
J=m2C
Fragmentacin
J1
J2
JNAME
BUDGET
LOC
J1
J2
J3
J4
J5
Instrumentation
Database Develop.
CAD/CAM
Maintenance
CAD/CAM
150000
135000
250000
310000
500000
Montreal
New York
New York
Paris
Boston
J2
J1
JNO
JNO
JNAME
Instrumentation
Database Develop.
BUDGET
150000
135000
LOC
JNO
JNAME
BUDGET
LOC
Montreal
New York
J3
J4
J5
CAD/CAM
Maintenance
CAD/CAM
250000
310000
500000
New York
Paris
Boston
J=m2C
JNO
JNAME
BUDGET
LOC
J1
J2
J3
J4
J5
Instrumentation
Database Develop.
CAD/CAM
Maintenance
CAD/CAM
150000
135000
250000
310000
500000
Montreal
New York
New York
Paris
Boston
J1
J2
JNO BUDGET
JNO
J1
J2
J3
J4
J5
150000
135000
250000
310000
500000
J1
J2
J3
J4
J5
JNAME
LOC
Instrumentation Montreal
Database Develop. New York
CAD/CAM
New York
Maintenance
Paris
CAD/CAM
Boston
J=m2C
Grado de Fragmentacin
Tuplas o
atributos
Relaciones
J=m2C
Correctez de la Fragmentacin
Completez.
La descomposicin de una relacin R en fragmentos R1, R2,
..., Rn, es completa si y slo si cada elemento de datos en R
puede ser encontrado en algn Ri.
Reconstruccin.
Si la relacin R se descompone en fragmentos R1, R2, ..., Rn,
debiera existir un operador relacional tal que R = Ri,
Ri FR .
Excluyente.
Si la relacin R se descompone en fragmentos R1, R2, ..., Rn,
y datos del elemento di estn en Rj, entonces di no debiera
estar en algn otro fragmento Rk (j k).
J=m2C
Alternativas de Asignacin
No Replicado.
Particionada: cada fragmento reside en un solo sitio.
Replicado.
Rplica completa: cada fragmento en cada sitio.
Rplica parcial: cada fragmento en algunos de los
sitios.
Regla del pulgar:
slo de lectura
Si Consultas
Consultas para actualizar 1 replicacin es ventajosa,
de lo contrario la rplica puede causar problemas.
J=m2C
Fcil
ADMINISTRACION
DE DICCIONARIO
Fcil o
no existente
Dificultad
Misma
Dificultad
CONTROL DE
CONCURRENCIA
Moderado
Difcil
Fcil
FIABILIDAD
Muy Alta
Alta
Baja
Posible
Aplicacin
Realista
FACTIBILIDAD
Posible
Aplicacin
J=m2C
Requerimientos de Informacin
Cuatro Categorias:
J=m2C
Tipos de Fragmentacin
J=m2C
L1
J
G
ENO, JNO, RESP, DUR
J=m2C
Informacin de la aplicacin:
Predicados simples: Dada R[A1,A2,...An], un predicado
simple pj es
pj : Ai Valor
donde {=, <, , >, }, Valor Di y Di es el
dominio de Ai.
Ejemplo:
JNAME = Maintenance
BUDGET 200000.
Predicados minterm: Dado Ri y Pri = {pi1, pi2, ..., pim}
definir Mi = {mi1, mi2, ..., miz} como
Mi = {mij |mij = vpik Pri pik*}, 1 k m, 1 j z
donde pik*= pi o pik*= pi.
J=m2C
J=m2C
Informacin de la aplicacin:
Selectividad de predicados minterm: sel(mj)
Nmero de tuplas de la relacin que son accesadas
por una consulta de usuario la cual est especificada
por un predicado minterm mj dado.
Frecuencias de acceso: acc(qj)
Frecuencia con la cual la aplicacin qj accesa datos.
Anlogamente se puede definir la frecuencia de
acceso para un predicado minterm.
J=m2C
J=m2C
J=m2C
Se dice que un conjunto de predicados simples Pr es completo si y slo si el acceso a las tuplas de los fragmentos
minterm definidos sobre Pr requiere que dos tuplas del
mismo fragmento minterm tengan la misma probabilidad
de ser accesadas por todas y cada una de las aplicaciones.
J=m2C
J=m2C
J=m2C
Si un predicado influye en cmo se ejecuta la fragmentacin (v.g. provoca que un fragmento f se particione en
nuevos fragmentos fi y fj), entonces debiera existir al
menos una aplicacin que accese a fi y fj diferentemente.
En otras palabras el predicado simple deber ser relevante
en determinar una fragmentacin.
Si todos los predicados de un conjunto Pr son relevantes,
entonces Pr es mnimo.
J=m2C
acc(mi)
card(fi)
acc(mj)
card(fj)
J=m2C
J=m2C
Algoritmo COM-MIN
Entrada: Una relacin R y un conjunto de predicados simples
Pr.
Salida:
J=m2C
Algoritmo COM-MIN
Inicializacin:
Encontrar un pi Pr tal que pi particione R de acuerdo
a la Regla 1.
Hacer Pr pi; Pr Pr - pi; F f i
Agregar predicados iterativamente a Pr hasta que est
completo.
Encontrar un pj Pr tal que pj particione algn f k
definido por un predicado minterm de Pr de acuerdo
a 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 - fk
J=m2C
Algoritmo P-HORIZONTAL
Hacer uso de COM-MIN para efectuar fragmentacin.
Entrada: Una relacin R y un conjunto de predicados simples Pr.
Salida: Un conjunto de fragmentos minterm M de R.
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
J=m2C
FHP - Ejemplo
FHP - Ejemplo
S1
TITLE
SAL
TITLE
SAL
Mech. Eng.
Programmer
27000
24000
Elect. Eng.
Syst. Anal.
40000
34000
J=m2C
FHP - Ejemplo
Fragmentacin de la relacin J:
Aplicaciones:
Encontrar el nombre y el presupuesto de los proyectos dado su
nmero. Estas consultas son emitidas en tres sitios.
Accesar la informacin del proyecto de acuerdo a su
presupuesto.
Predicados simples para la aplicacin (1):
p1 : LOC = Montreal
p2 : LOC = New York
p3 : LOC = Paris
Predicados simples para la aplicacin (2):
p4 : BUDGET 200000
p5 : BUDGET 200000
Pr = Pr = {p1, p2, p3, p4, p5}
J=m2C
FHP - Ejemplo
J=m2C
FHP - Ejemplo
J1
J2
JNO
JNAME
BUDGET
LOC
JNO
J1
Instrumentation
150000
Montreal
J2
JNAME
BUDGET
LOC
New York
J6
J4
JNO
JNAME
BUDGET
LOC
JNO
JNAME
BUDGET
LOC
J3
CAD/CAM
250000
New York
J4
Maintenance
310000
Paris
J=m2C
L1
J
G
ENO, JNO, RESP, DUR
J=m2C
FHD - Definicin
Dado un enlace L donde propietario(L)=S y miembro(L)=R,
la fragmentacin horizontal derivada de R se define como
Ri = R
Si, 1 i w
J=m2C
FHD - Ejemplo
Dado el enlace L1, donde propietario(L1)=S y
miembro(L1)=E
E1= E
S1
E2= E
S2
donde
S1= SAL 30000(S)
S2= SAL >30000(S)
ENO ENAME
TITLE
E3
A. Lee Mech. Eng.
E4 J. Miller Programmer
E7 R. Davis Mech. Eng.
ENO
E1
E2
E5
E6
E8
ENAME
J. Doe
M. Smith
B. Casey
L. Chu
J. Jones
TITLE
Elect. Eng.
Syst. Anal.
Syst. Anal.
Elect. Eng.
Syst. Anal.
J=m2C
FHD - Correctez
Completez.
Integridad referencial.
Sea R la relacin miembro de un enlace cuyo propietario es la relacin S la cual est fragmentada como Fs =
{S1, S2, ..., Sw}. Adems sea A el atributo de la reunin
entre R y S. Entonces para cada tupla t de R, debiera
existir una tupla t de S tal que t[A] = t[A]
Reconstruccin.
Igual que la de la fragmentacin horizontal primaria.
Exclusin.
Si el grafo de la reunin entre el propietario y los fragmentos miembro es simple.
J=m2C
Fragmentacin Vertical
J=m2C
Fragmentacin Vertical
Traslape de fragmentos.
Agrupamiento.
Sin traslape de fragmentos.
Divisin.
J=m2C
FV - Requerimientos de Informacin
Informacin de la aplicacin:
Afinidad de los atributos, la cual es una medida que indica qu tanta relacin existe entre los atributos.
Esto se obtiene de las primitivas de uso de los datos.
Dado un conjunto de consultas Q = {q1, q2, ..., qq} que
corren sobre la relacin R[A1, A2, ..., An],
uso(qi,Aj) =
J=m2C
q1
q2
q3
q4
A1
1
0
0
0
A2
0
1
1
0
A3
1
1
0
1
A4
0
0
1
1
J=m2C
J=m2C
q1
q2
q3
q4
S1
15
5
25
3
S2
20
0
25
0
S3
10
0
25
0
Entonces
aff(A1, A3) = 15*1 + 20*1 +10*1
= 45
A1
A2
A3
A4
y la matriz de afinidad de
atributos AA es
A1
45
0
45
0
A2
0
80
5
75
A3
45
5
53
3
A4
0
75
3
78
J=m2C
FV - Algoritmo de Agrupamiento
se maximiza.
J=m2C
J=m2C
J=m2C
BEA - Ejemplo
Considerar la siguiente matriz AA y la correspondiente matriz CA
donde A1 y A2 han sido ubicados como sigue:
AA =
A1
A2
A3
A4
A1
45
0
45
0
A2
0
80
5
75
A3
5
5
53
3
A4
0
75
3
78
CA =
A1
A2
A3
A4
A1
45
0
45
0
A2
0
80
5
75
Ordenar (0-3-1):
cont (A0, A3, A1) = 2bond(A0, A3) + 2bond(A3, A1) - 2bond(A0, A1)
= 2*0 + 2*4410 - 2*0 = 8820
Ordenar (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
A1
A2
A3
A4
A1
45
0
45
0
A3
5
5
53
3
A2
0
80
5
75
A4
A1
45
45
0
0
A3
45
53
5
3
A2
0
5
80
75
A4
0
3
75
78
J=m2C
FV - Algoritmo
Cmo puede dividirse un conjunto de atributos agrupados {A1,
A2, ..., An} en dos (o ms) conjuntos {A1, A2, ..., Ai} y {Ai+1, ...,
An} tal que no haya (o sea mnimo el nmero de) aplicaciones
que accesen ambos (o ms de un) conjuntos?
A1
A2
A3
TA
Ai
Ai+1
BA
An
J=m2C
FV - Algoritmo
Definir
TQ = conjunto de las aplicaciones que accesan slo TA,
BQ = conjunto de las aplicaciones que accesan slo BA,
OQ = conjunto de las aplicaciones que accesan TA y BA,
y
CTQ = nmero total de accesos a los atributos por las aplicaciones que accesan slo TA,
CBQ = nmero total de accesos a los atributos por las aplicaciones que accesan slo BA,
COQ = nmero total de accesos a los atributos por las aplicaciones que accesan TA y BA.
Entonces encontrar el punto sobre la diagonal que maximiza
CTQ*CBQ-COQ2
J=m2C
FV - Algoritmo
Dos problemas:
Un fragmento a la mitad de la matriz CA.
Cambiar la columna ms izquierda hasta la derecha,
reordenar las filas, y aplicar el algorimo para encontrar
el mejor punto de particionamiento.
Hacer esto para todos los cambios posibles.
Costo O(n2).
Para ms de dos grupos.
Particionamiento en n grupos.
Probar 1, 2, ..., n-1 puntos de divisin a lo largo de la
diagonal y tratar de encontrar el mejor punto para cada
uno de stos.
Costo O(2n).
J=m2C
FV - Correctez
Una relacin R, definida sobre un conjunto de atributos A
y clave K, genera la particin vertical FR={R1, R2, ..., Rr}.
J=m2C
Fragmentacin Hbrida
R
FH
FH
R1
FV
R2
FV
FV
FV
FV
R11
R12
R21
R22
R23
J=m2C
Distribucin de Fragmentos
Planteamiento del problema:
Dado
F = {F1, F2,...,Fn} es el conjunto de fragmentos.
S = {S1, S2, ..., Sm} es el conjubto de sitios en la red, y
Q = {q1, q2, ..., qq} es el conjunto de aplicaciones,
encontrar la distribucin ptima de F en S.
J=m2C
Distribucin de Fragmentos
Optimalidad
Costo minimo.
Comunicacin + Almacenamiento + Procesamiento (lectura
y actualizaciones).
Costo en trminos de tiempo (usualmente).
Eficiencia.
Tiempo de respuesta.
Restricciones.
Restricciones por sitio (almacenaje y procesamiento).
J=m2C
Requerimientos de Informacin
Informacin de la aplicacin.
Tipos de acceso y nmero.
Acceso a sitios.
J=m2C
Distribucin
Problema de distribucin de archivos (FAP) vs. problema de
distribucin de base de datos (DAP).
J=m2C
J=m2C
J=m2C
Modelo de Distribucin
Forma general
min(costo total)
sujeto a
restricciones de tiempo de respuesta
restriccin de almacenaje
restriccin de procesamiento
variables de decisin:
xij = 1 si el fragmento Fi se almacena en el sitio Sj
0 en caso contrario
J=m2C
Modelo de Distribucin
Costo Total :
todas las consultas costo de procesamiento de consulta +
todos los sitios todos los fragmentos costo de almacenaje de un frag. en un
sitio
Costo de almacenaje (del fragmento Fj en Sk):
(unidad de costo de almacenaje en Sk) * (tamao de Fj) * xjk
Costo de procesamiento de consulta:
componente de procesamiento + componente de transmisin
J=m2C
Modelo de Distribucin
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 actualizacin
+ no. de accesos de lectura) * xjk
* costo de procesamiento local en un sitio
Los costos de mantenimiento de integridad y de control de
concurrencia se pueden formaular de una manera similar.
J=m2C
Modelo de Distribucin
Componente de Transmisin:
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 confirmacin
Costo de lecturas:
todos los fragmentos min todos los sitios (costo del comando de recuperacin +
costo de enviar los resultados)
J=m2C
Modelo de Distribucin
Restricciones:
Tiempo de respuesta:
tiempo de ejecucin 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
J=m2C
Fragmentos de Relaciones
DISTRIBUCION
Relaciones Locales
J=m2C
Fragmentacin Vertical
J=m2C
Introduccin
J=m2C
Introduccin
J=m2C
Introduccin
J=m2C
Sn
RED
S2
S3
J=m2C
q1
S1
Sn
q1
RED
q2
S2
S3
q1
q2
q1
S1
Sn
q1
RED
q2
S2
S3
q1
q2
f2
J=m2C
Modelo Matemtico
En este modelo, la decisin de almacenar un atributo
en el sitio j se representa con una variable binaria
xj. As xj= 1 si se almacena en j, y xj = 0 en
caso contrario.
Costo de acceso a
varios fragmentos
+ c w + a c d x
j
j 2 j i j i ij
Costo de
almacenamiento
Costo de
reubicacin
J=m2C
Costo de Comunicacin
f1
q1
S1
Sn
q1
RED
S2
S3
J=m2C
Costo de Comunicacin
f q l c x
k i ki j k k ij jj
J=m2C
f1
Sn
RED
q2
S2
S3
q2
f2
J=m2C
c f ki y
kj
i k j 1
J=m2C
S1
Sn
RED
S2
S3
f2
J=m2C
cw
j
2 j
J=m2C
Costo de Reubicacin
f1
f1 q1
f1
f1
S1
f1
f1
f1 f f
1 1
Sn
RED
f1 f1
S2
q1
f
f1 f1 1
f1
f1
S3
J=m2C
Costo de Reubicacin
ai c d xjj
ij
J=m2C
Modelo Matemtico
donde
fki = frecuencia de emisin de la consulta k desde el sitio i;
qk =
lk =
(p sk )/PA
p = tamao en bytes del atributo ;
sk = selectividad de la consulta k;
PA = tamao del paquete de comunicacin en bytes;
J=m2C
Modelo Matemtico
cij =
c1 =
c2 =
ykj =
wj =
J=m2C
Modelo Matemtico
ai =
d =
(p * CA)/PA
donde
CA = cardinalidad de la relacin.
J=m2C
Modelo Matemtico
Restricciones intrnsecas del problema:
1)
x j = 1
"
2)
x i
j ki donde
" , i
ki
1 , si f ki 0
0 , si f ki 0
J=m2C
Modelo Matemtico
Restricciones intrnsecas del problema:
3)
t w j - x j 0
"j
4)
t y - qk xj 0
kj
" k, j
J=m2C
Modelo Matemtico
Restricciones intrnsecas del problema:
5) CA p xj CSj
J=m2C
z(x)
J=m2C
z(x)
x
H(x)
J=m2C
z(x)
x
H(x)
J=m2C
z(x)
z = z(y) - z(x)
z(y)
J=m2C
Regla de Aceptacin
z
La nueva solucin y se acepta si z < T
z = z(y) - z(x)
J=m2C
Nueva x
J=m2C
Inicio
real T,
entero i, S
x = la mejor de un conjunto de S
soluciones factibles
T = valor inicial alto de temperatura
J=m2C
B&B
AU
0.2
0.15
0.1
0.05
0
1
9 10 11 12 13
PROBLEMAS
J=m2C
B&B
AU
4
3
2
1
0
1
9 10 11 12 13
PROBLEMAS
J=m2C
Conclusiones
J=m2C
Conclusiones
Los resultados muestran la eficiencia del algoritmo de Aceptacin por Umbral, con un buen desempeo para problemas
pequeos y mostrando su potencial para resolver problemas
grandes.
J=m2C