Está en la página 1de 52

CURSO

BASES DE DATOS DISTRIBUIDAS

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

Dimensiones del Problema


Patrn de acceso
Dinmico
Informacin
parcial

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

Entrada del usuario


Integracin de vistas

Esq. conep. global

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

Problemtica del Diseo de la Distribucin

Por qu fragmentar todo?


Cmo fragmentar?
Cunto fragmentar?
Cmo probar la correctez?
Cmo ubicar los fragmentos?
Qu requirimientos de informacin?

J=m2C

Fragmentacin

Podemos distribuir slo relaciones?


Cul es la unidad razonable de distribucin?
Relacin.
Las vistas son subconjuntos de relaciones (localmente).
Comunicacin extra.

Fragmento de relacin (sub-relacin).


Ejecucin concurrente de un nmero de transacciones que
accesan diferentes porciones de una relacin.
Las vistas que no puedan ser definidas sobre un solo fragmento
requerirn procesamiento extra.
El control de la semntica de datos (especialmente forzar la
integridad) es ms complejo.
J=m2C

Alternativas: Fragmentacin Horizontal


J

J1: Proyectos con presupuesto


menor que $200,000.
J2: Proyectos con presupuesto
mayor o igual a $200,000.

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

Alternativas: Fragmentacin Vertical


J

J1: Informacin de los presupuestos


de los proyectos.
J2: Informacin de los nombres de
los proyectos y su ubicacin.

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

Nmero finito de alternativas

Tuplas o
atributos

Relaciones

Encontrar el nivel adecuado de particionamiento


dentro de este rango.

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

Comparacin de Alternativas de Rplica


Rplica Total
PROCESAMIENTO
DE CONSULTAS

Fcil

ADMINISTRACION
DE DICCIONARIO

Fcil o
no existente

Rplica Parcial Particionado


Misma

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:

Informacin de la base de datos.


Informacin de la aplicacin.
Informacin de la red de comunicaciones.
Informacin del sistema de cmputo.

J=m2C

Tipos de Fragmentacin

Fragmentacin horizontal (FH).


Fragmentacin horizontal primaria (FHP).
Fragmentacin horizontal derivada (FHD).
Fragmentacin vertical (FV).
Fragmentacin hbrida o mixta (FM).

J=m2C

FHP - Requerimientos de Informacin

Informacin de la base de datos:


Relaciones
S
TITLE, SAL
E

L1
J

ENO, ENAME, TITLE


L2

JNO, JNAME, BUDGET, LOC


L3

G
ENO, JNO, RESP, DUR

Cardinalidad de cada relacin: card(R).

J=m2C

FHP - Requerimientos de Informacin

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

FHP - Requerimientos de Informacin


Ejemplos de predicados minterm:
m1 : JNAME = Maintenance BUDGET 200000
m2 : (JNAME = Maintenance) BUDGET 200000
m3 : JNAME = Maintenance (BUDGET 200000)
m4 : (JNAME = Maintenance) (BUDGET 200000)

J=m2C

FHP - Requerimientos de Informacin

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

Fragmentacin Horizontal Primaria


Definicin:
Rij = Fj(Ri), 1 j w
donde Fj es la frmula de seleccin usada para obtener el fragmento Rij, el cual es (preferentemente) un predicado minterm.
Por lo tanto:
Una fragmentacin horizontal Ri de una relacin R consiste de
todas las tuplas de R las cuales satisfacen un predicado minterm.
Dado un conjunto de predicados minterm M, hay tantas
fragmentaciones horizontales de la relacin R como predicados
minterm existan.
A los fragmentos horizontales tambin se les llama fragmentos
minterm.

J=m2C

FHP - Obtencin de Predicados Simples


Dados: Una relacin R, y el conjunto de predicados simples Pr.
Obtener: El conjunto de fragmentos de R = {R1, R2, ..., Rw}
los cuales obedecen las reglas de fragmentacin.
Preliminares:
Pr debe ser completo.
Pr debe ser mnimo.

J=m2C

Completez de los Predicados Simples

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

Completez de los Predicados Simples


Ejemplo:
Suponemos que J(JNO, JNAME, BUDGET, LOC) tiene dos
aplicaciones definidas para trabajar sobre J:
Encontrar los presupuestos de los proyectos en cada
localidad.
Encontrar los proyectos con presupuesto menor que
$200000.

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.

J=m2C

Minimalidad de los Predicados Simples

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

Relevancia de los Predicados Simples


Sean mi y mj dos predicados minterm idnticos en su definicin, excepto que mi contiene el predicado simple pi mientras que mj contiene pi, y sean fi y fj dos fragmentos definidos de acuerdo a mi y mj; entonces pi es relevante si y slo si

acc(mi)
card(fi)

acc(mj)
card(fj)

J=m2C

Minimalidad de los Predicados Simples


Ejemplo
Pr = {LOC=Montreal, LOC=New York, LOC=Paris,
BUDGET200000, BUDGET>200000}
es mnimo adems de ser completo.
Sin embargo, si agregamos
JNAME=Instrumentation
entonces Pr no es mnimo.

J=m2C

Algoritmo COM-MIN
Entrada: Una relacin R y un conjunto de predicados simples
Pr.
Salida:

Un conjunto de predicados simples completo y


mnimo Pr para Pr.

Regla I: Una relacin o fragmento se particiona en al menos


dos partes las cuales son accesadas de manera
diferente por al menos una aplicacin.

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

Dos relaciones candidatas: S y J.


Fragmentacin de la relacin S:
Aplicacin: verificar salario y determinar aumento.
Los registros de empleados se manipulan en dos sitios => la
aplicacin corre en dos sitios.
Predicados simples:
p1 : SAL 30000
p2 : SAL > 30000
Pr : {p1, p2} el cual es completo y mnimo Pr = Pr
Predicados minterm:
m1 : (SAL 30000) (SAL 30000)
m2 : (SAL 30000) (SAL 30000)
m3 : (SAL 30000) (SAL 30000)
m4 : (SAL 30000) (SAL 30000)
J=m2C

FHP - Ejemplo

Fragmentacin de la relacin S (contina):


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


S2

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

Fragmentacin de la relacin J (contina):


Fragmentos minterm despus de la eliminacin:
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)

J=m2C

FHP - Ejemplo
J1

J2

JNO

JNAME

BUDGET

LOC

JNO

J1

Instrumentation

150000

Montreal

J2

JNAME

BUDGET

Database Develop. 135000

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

Fragmentacin Horizontal Derivada

Definida sobre una relacin miembro de una liga segn


una operacin de seleccin especificada sobre su relacin
propietaria.
Cada enlace corresponde a una equireunin.
S
TITLE, SAL
E

L1
J

ENO, ENAME, TITLE


L2

JNO, JNAME, BUDGET, LOC


L3

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

Donde w es el nmero mximo de fragmentos que sern


definidos en R, y Si = Fi(S), donde Fi es la formula mediante
la cual se define la fragmentacin horizontal primaria Si.

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

Ha sido estudiada dentro del contexto centralizado.


Metodologa de diseo.
Agrupamiento fsico.
Ms difcil que la horizontal, debido a que existen ms
alternativas.
Existen dos tcnicas:
Agrupamiento de atributos en fragmentos.
Divisin de la relacin en fragmentos.

J=m2C

Fragmentacin Vertical

Traslape de fragmentos.
Agrupamiento.
Sin traslape de fragmentos.
Divisin.

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 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) =

1 si el atributo Aj es referido en la consulta qi


0 en caso contrario

uso(qi, ) se puede definir anlogamente.

J=m2C

FV - Ejemplo de uso(qi, Aj)


Considerar las siguientes 4 consultas para la relacin J:
q1: SELECT BUDGET
FROM J
WHERE JNO=Valor
q3: SELECT JNAME
FROM J
WHERE LOC=Valor

q2: SELECT JNAME, BUDGET


FROM J
q4: SELECT SUM(BUDGET)
FROM J
WHERE LOC=Valor

Sean A1=JNO, A2=JNAME, A3=BUDGET, A4=LOC

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

FV - Medida de Afinidad aff(Ai, Aj)


La medida de afinidad entre dos atributos Ai y Aj de una relacin R[A1, A2, ..., An] con respecto al conjunto de aplicaciones
Q = {q1, q2, ..., qn} se define como sigue
aff(Ai, Aj) = todas las consultas que accesan Ai y Aj
Sl ref l(qk) acc(qk)

J=m2C

FV - Clculo de aff(Ai, Aj)


Suponemos que cada consulta en el ejemplo anterior accesa
los atributos una vez durante cada ejecucin.
Tambin suponemos las
frecuencias de acceso

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

Toma la matriz de afinidad de atributos AA y reorganiza el


orden de los atributos para formar grupos donde los atributos en cada grupo demuestran alta afinidad unos con otros.
El algoritmo de energa de cohesin (BEA) se usado para
agrupamiento de entidades. BEA encuentra un orden de
atributos tal que la medida de afinidad global
AM = (afinidad de Ai y Aj con sus vecinos)
i j

se maximiza.

J=m2C

Algoritmo de Energa de Cohesin


Entrada: La matriz AA.
Salida: La matriz de afinidad CA agrupada, la cual es una
derivacin de AA.

Inicializacin: Colocar y ajustar una de las columnas de


AA en CA.
Iteracin: Colocar las n-i columnas restantes en el resto de
i +1 posiciones en la matriz CA. Por cada columna, elegir
el lugar que ms contribuya a la medida de afinidad global.
Ordenar filas: Ordenar las filas de acuerdo al orden de
columna.

J=m2C

Algoritmo de Energa de Cohesin

La mayor contribucin se encuentra de acuerdo a la siguiente frmula:


cont (Ai, Ak, Aj) = 2bond(Ai, Ak) + 2bond(Ak, Aj) - 2bond(Ai, Aj)
donde:
n

bond(Ax, Ay) = aff(Az, Ax) aff(Az, Ay)


z=1

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

La forma final de la matriz CA (despus de organizar las


filas) es
A1
A3
A2
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

A1,A2,A3, ..., Ai Ai+1, ..., An

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}.

Completez. Lo siguiente debiera satisfacerse:


A = Ai
Reconstruccin. La reconstruccin puede efectuarse
mediante
R = K Ri, Ri FR
Exclusin.
Los identificadores no se consideran para ser traslapados ya que son mantenidos por el sistema.
Las llaves duplicadas no se consideran para ser
traslapadas.

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 base de datos.


Selectividad de fragmentos.
Tamao de un fragmento.

Informacin de la aplicacin.
Tipos de acceso y nmero.
Acceso a sitios.

Informacin de la red de comunicaciones.


Ancho de banda.
Distancias entre sitios.
Sobrecarga de protocolos.

Informacin del sistema de cmputo.


Unidad de costo de almacenar datos en un
sitio.
Unidad de costo de procesar datos en un sitio.

J=m2C

Distribucin
Problema de distribucin de archivos (FAP) vs. problema de
distribucin de base de datos (DAP).

Los fragmentos no pueden tratarse como archivos individuales.


Se tienen que tomar en cuenta sus relaciones.
El acceso a la base de datos es ms complicado.
El modelo de acceso a archivos remotos no aplica.
Relacin entre distribucin y procesamiento de
consultas.
El costo de mantener la integridad debe considerarse.
El costo del control de concurrencia debe considerarse.

J=m2C

Distribucin - Requerimientos de Informacin

Informacin de la base de datos:


Selectividad de fragmentos minterm.
Tamao de los fragmentos.
Informacin de las aplicaciones:
Nmero de accesos de lectura de una consulta a un
fragmento.
Nmero de accesos de actualizacin a un fragmento.
Una matriz que indique cules consultas actualizan qu
fragmentos.
Una matriz similar para las lecturas.
Sitio de origen de cada consulta.

J=m2C

Distribucin - Requerimientos de Informacin

Informacin de los sitios:


Unidad de costo de almacenar datos en un sitio.
Unidad de costo de procesar datos en un sitio.
Informacin de la red:
Costo de comunicacin de una trama entre dos sitios.
Tamao de la trama.

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

Problema - Separacin de los Pasos de Diseo


Relaciones Globales
FRAGMENTACION

Fragmentos de Relaciones

DISTRIBUCION

Relaciones Locales

J=m2C

Fragmentacin Vertical

J=m2C

Introduccin

En esta seccin se presenta un modelo que unifica la


fragmentacin vertical, la ubicacin y la reubicacin
dinmica en sistemas de bases de datos distribudas.
Este modelo permite mejorar el desempeo de sistemas
expuestos a cambios en los patrones de uso de los datos.
La naturaleza de muchos sistemas distribudos es dinmica, con cambios en la topologa de la red, patrones y
frecuencias de acceso, nuevos datos, nmero de nodos,
costos, y recursos. Este aspecto dinmico se trata incorporndolo en el modelo matemtico.

J=m2C

Introduccin

El uso generalizado de redes de comunicaciones para


computadoras, incluyendo Internet, facilita la implementacin de sistemas de bases de datos distribudas.

Sin embargo, uno de los problemas ms difciles para su


desarrollo es la falta de metodologas y herramientas para
efectuar su diseo.

J=m2C

Introduccin

Tradicionalmente, se ha considerado que el diseo de la


distribucin consiste de dos fases separadas: fragmentacin
y ubicacin de fragmentos.

Contrariamente a la creencia generalizada, se demuestra


que es ms sencillo resolver simultneamente los problemas de fragmentacin y ubicacin.

En este sentido, el modelo propuesto es innovador.

J=m2C

Descripcin del Problema


Dada una red de computadoras
S1

Sn

RED
S2

S3

S = {S1, S2, ..., Sn }: sitios o nodos en la red

J=m2C

Descripcin del Problema


Un conjunto de aplicaciones y una base de datos relacional

q1

S1

Sn

q1

RED
q2

S2

S3

q1

q2

S = {S1, S2, ..., Sn }: sitios o nodos en la red


Q = {q1, q2, ..., qq }: aplicaciones
J=m2C

Descripcin del Problema


El problema consiste en la determinacin y ubicacin de
fragmentos de tal forma que se minimice el costo total de
comunicacin y almacenamiento
f1

q1

S1

Sn

q1

RED
q2

S2

S3

q1

q2

f2

S = {S1, S2, ..., Sn }: sitios o nodos en la red


Q = {q1, q2, ..., qq }: aplicaciones
F = {f1, f2, ..., fn}: fragmentos

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.

min z = f q l cij xj + c1 fki y


kj
i k j
k i ki j k k
Costo de comunicacin

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

S = {S1, S2, ..., Sn }: sitios o nodos en la red


Q = {q1, q2, ..., qq }: aplicaciones
F = {f1, f2, ..., fn}: fragmentos

J=m2C

Costo de Comunicacin

f q l c x
k i ki j k k ij jj

J=m2C

Costo de Acceso a Varios Fragmentos


S1

f1

Sn

RED
q2

S2

S3

q2

f2

S = {S1, S2, ..., Sn }: sitios o nodos en la red


Q = {q1, q2, ..., qq }: aplicaciones
F = {f1, f2, ..., fn}: fragmentos

J=m2C

Costo de Acceso a Varios Fragmentos

c f ki y
kj
i k j 1

J=m2C

Costo de Almacenamiento de Fragmentos


f1

S1

Sn

RED
S2

S3

f2

S = {S1, S2, ..., Sn }: sitios o nodos en la red


F = {f1, f2, ..., fn}: fragmentos

J=m2C

Costo de Almacenamiento de Fragmentos

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

S = {S1, S2, ..., Sn }: sitios o nodos en la red


Q = {q1, q2, ..., qq }: aplicaciones
F = {f1, f2, ..., fn}: fragmentos

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 =

parmetro de uso, qk = 1 si la consulta k usa el atributo


, en caso contrario qk = 0;

lk =

nmero de paquetes de comunicacin necesarios para


transportar al atributo requerido por la consulta k

(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 =

costo de comunicacin entre el sitio i y el sitio j;

c1 =

costo por accesar varios fragmentos para satisfacer una


consulta;

c2 =

costo por ubicar un fragmento en un sitio;

ykj =

variable de decisin, ykj = 1 si la consulta k accede a


uno o ms atributos localizados en el sitio j, y ykj = 0
en caso contrario;

wj =

variable de decisin, wj = 1 si existe uno o ms


atributos en el sitio j, y wj = 0 en caso contrario;

J=m2C

Modelo Matemtico
ai =

indicador de ubicacin previa, ai = 1 si el atributo


est localizado actualmente en el sitio i, en caso
contrario ai = 0;

d =

nmero de paquetes de comunicacin necesarios


para mover el atributo a otro sitio en caso necesario;

(p * CA)/PA
donde
CA = cardinalidad de la relacin.

J=m2C

Modelo Matemtico
Restricciones intrnsecas del problema:
1)

x j = 1

cada atributo debe almacenarse en slo


un sitio;

"
2)

x i

j ki donde

" , i

ki

1 , si f ki 0

0 , si f ki 0

cada atributo debe ubicarse en un


sitio i que ejecute por lo menos una
consulta que involucre al atributo;

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

esta restriccin fuerza el valor de wj a 1


cuando cualquier xj es igual a 1, e
induce wj a 0 en caso contrario;
esta restriccin fuerza ykj a 1 cuando cualquier qkxj es igual a 1, e
induce ykj a 0 en caso contrario;

J=m2C

Modelo Matemtico
Restricciones intrnsecas del problema:
5) CA p xj CSj

la suma de los tamaos de los fragmentos asignados al sitio j no debe


exceder la capacidad de ste.

J=m2C

Solucin Factible Actual


z

z(x)

J=m2C

Vecindad de Solucin Actual


z

z(x)

x
H(x)

J=m2C

La Nueva Solucin se Genera Aleatoriamente


z

z(x)

x
H(x)

J=m2C

Diferencia de Valores de la Funcin Objetivo


z

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

Se Obtiene una Nueva Solucin Actual


z

Nueva x

J=m2C

Algoritmo de Aceptacin por Umbral

Inicio
real T,
entero i, S
x = la mejor de un conjunto de S
soluciones factibles
T = valor inicial alto de temperatura

J=m2C

Algoritmo de Aceptacin por Umbral


repetir
repetir
para i = 1 hasta S
y = solucin vecina
si z(y) - z(x) < T entonces
x=y
en caso contrario
no se acepta la nueva solucin
fin_si
i=i+1
fin_si
hasta alcanzar el equilibrio trmico
T = T
hasta alcanzar el congelamiento
Fin
J=m2C

Desviacin Porcentual Respecto al ptimo


0.4
0.35
0.3
0.25

B&B
AU

0.2
0.15
0.1
0.05
0
1

9 10 11 12 13

PROBLEMAS

J=m2C

Comparacin en Tiempo de Ejecucin


8
7
6
5

B&B
AU

4
3
2
1
0
1

9 10 11 12 13

PROBLEMAS

J=m2C

Conclusiones

Se han propuesto varios mtodos para el diseo de bases de


datos distribudas. Invariablemente el problema de diseo se
ha dividido en dos fases: fragmentacin y ubicacin.

El modelo propuesto muestra la factibilidad de integrar la


fragmentacin y ubicacin en una sola fase, lo cual resulta
en una solucin ms eficiente.

J=m2C

Conclusiones

El modelo se resolvi usando dos algoritmos: Branch and


Bound para programacin entera, y Aceptacin por Umbral.
Los resultados experimentales muestran que el algoritmo de
Aceptacin por Umbral encuentra la solucin ptima para
problemas pequeos.

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

También podría gustarte