Está en la página 1de 50

Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala

Anexo B:
Tipos de fragmentacin de Base de Datos Distribuidas
1
.
Resumido por Jos Luis Cisneros de los autores originales.
Dado que una relacin se corresponde esencialmente con una tabla y la cuestin consiste en
dividirla en fragmentos menores, inmediatamente surgen dos alternativas lgicas para llevar a
cabo el proceso: la divisin ori!ontal y la divisin vertical" #a divisin o fragmentacin
ori!ontal traba$a sobre las tuplas, dividiendo la relacin en subrelaciones que contienen un
subcon$unto de las tuplas que alberga la primera" #a fragmentacin vertical, en cambio, se basa
en los atributos de la relacin para efectuar la divisin" Estos dos tipos de particin podr%an
considerarse los fundamentales y b&sicos" Sin embargo, e'isten otras alternativas"
(undamentalmente, se abla de fragmentacin mi'ta o %brida cuando el proceso de particin
ace uso de los dos tipos anteriores" #a fragmentacin mi'ta puede llevarse a cabo de tres
formas diferentes: desarrollando primero la fragmentacin vertical y, posteriormente, aplicando
la particin ori!ontal sobre los fragmentos verticales )denominada particin *+,, o aplicando
primero una divisin ori!ontal para luego, sobre los fragmentos generados, desarrollar una
fragmentacin vertical )llamada particin +*,, o bien, de forma directa considerando la
sem&ntica de las transacciones" -tro enfoque distinto y relativamente nuevo ./0, consiste en
aplicar sobre una relacin, de forma simult&nea y no secuencial, la fragmentacin ori!ontal y la
fragmentacin vertical1 en este caso, se generara una re$illa y los fragmentos formaran las celdas
de esa re$illa, cada celda ser& e'actamente un fragmento vertical y un fragmento ori!ontal
)ntese que en este caso el grado de fragmentacin alcan!ado es m&'imo, y no por ello la
descomposicin resultar& m&s eficiente,"
*olviendo a la figura 2, puede observarse como los casos 3 y D se basan en la mencionada
generacin de la re$illa, con la diferencia que en el primero de ellos se produce una fusin, una
desfragmentacin de las celdas, agrup&ndolas de la manera m&s adecuada para obtener mayor
rendimiento, ya que los fragmentos generados son muy pequeos" En el segundo caso se asignan
las celdas a los sitios y luego se reali!a una rigurosa optimi!acin de cada sitio" El caso E ser%a
aquel en el que se utili!a la fragmentacin *+ o la fragmentacin +*"
2
4omado de 555"monografias"com, con el tema 6Diseo de Bases de Datos Distribuidas7"
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
Figura 1. Enfoques para realizar el diseo distributi!o.
<rado de fragmentacin" 3uando se va a fragmentar una base de datos deber%amos
sopesar qu9 grado de fragmentacin va a alcan!ar, ya que 9ste ser& un factor que
influir& notablemente en el desarrollo de la e$ecucin de las consultas" El grado de
fragmentacin puede variar desde una ausencia de la divisin, considerando a las
relaciones unidades de fragmentacin1 o bien, fragmentar a un grado en el cada tupla o
atributo forme un fragmento" =nte estos dos casos e'tremos, evidentemente se a de
buscar un compromiso intermedio, el cual deber%a establecerse sobre las caracter%sticas
de las aplicaciones que acen uso de la base de datos" Dicas caracter%sticas se podr&n
formali!ar en una serie de par&metros" De acuerdo con sus valores, se podr& establecer
el grado de fragmentacin del banco de datos"
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Fragmentacin
Fragmentacin
"
Asignacin
Fragmentacin Fragmentacin
#ixta
Asignacin
$ptimizacin de
las %eldas por
Fusin
$ptimizacin
de las %eldas
por &itios
$ptimizacin
" Asignacin
$ptimizacin de los
&itios
Asignacin
Fragmentacin
#ixta
Fragmentacin
#ixta
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
Figura '. Distintos tipos de fragmentacin"
(rado de fragmentacin.
3uando se va a fragmentar una base de datos deber%amos sopesar qu9 grado de fragmentacin va
a alcan!ar, ya que 9ste ser& un factor que influir& notablemente en el desarrollo de la e$ecucin
de las consultas" El grado de fragmentacin puede variar desde una ausencia de la divisin,
considerando a las relaciones unidades de fragmentacin1 o bien, fragmentar a un grado en el
cada tupla o atributo forme un fragmento" =nte estos dos casos e'tremos, evidentemente se a de
buscar un compromiso intermedio, el cual deber%a establecerse sobre las caracter%sticas de las
aplicaciones que acen uso de la base de datos" Dicas caracter%sticas se podr&n formali!ar en
una serie de par&metros" De acuerdo con sus valores, se podr& establecer el grado de
fragmentacin del banco de datos"
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
)eglas de correccin de la fragmentacin.
= continuacin se enuncian las tres reglas que se an de cumplir durante el proceso de
fragmentacin, las cuales asegurar&n la ausencia de cambios sem&nticos en la base de datos
durante el proceso"
2" 3omplecin" Si una relacin R se descompone en una serie de fragmentos R1, R2,...,
Rn, cada elemento de datos que pueda encontrarse en R deber& poder encontrarse en
uno o varios fragmentos Ri" Esta propiedad e'tremadamente importante asegura que los
datos de la relacin global se proyectan sobre los fragmentos sin p9rdida alguna" 4enga
en cuenta que en el caso ori!ontal el elemento de datos, normalmente, es una tupla,
mientras que en el caso vertical es un atributo"
2. ;econstruccin" Si una relacin R se descompone en una serie de fragmentos R1,
R2, ..., Rn, puede definirse una operador relacional tal que
R = Ri, Rj FR
El operador ser& diferente dependiendo de las diferentes formas de fragmentacin" #a
reconstruccin de la relacin a partir de sus fragmentos asegura la preservacin de las
restricciones definidas sobre los datos en forma de dependencias"
3. Disyuncin" Si una relacin R se descompone ori!ontalmente en una serie de
fragmentos R1, R2,..., Rn, y un elemento de datos di se encuentra en alg>n fragmento
Rj, entonces no se encuentra en otro fragmento Rk )k j," Esta regla asegura que los
fragmentos ori!ontales sean dis$untos" Si una relacin R se descompone verticalmente,
sus atributos primarios clave normalmente se repiten en todos sus fragmentos"
Alternati!as de asignacin.
Partiendo del supuesto que el banco de datos se aya fragmentado correctamente, abr& que
decidir sobre la manera de asignar los fragmentos a los distintos sitios de la red" 3uando una
serie de datos se asignan, 9stos pueden replicarse para mantener una copia" #as ra!ones para la
r9plica giran en torno a la seguridad y a la eficiencia de las consultas de lectura" Si e'isten
mucas reproducciones de un elemento de datos, en caso de fallo en el sistema se podr%a acceder
a esos datos ubicados en sitios distintos" =dem&s, las consultas que acceden a los mismos datos
pueden e$ecutarse en paralelo, ya que abr& copias en diferentes sitios" Por otra parte, la
e$ecucin de consultas de actuali!acin, de escritura, implicar%a la actuali!acin de todas las
copias que e'istan en la red, cuyo proceso puede resultar problem&tico y complicado" Por tanto,
un buen par&metro para afrontar el grado de r9plica consistir%a en sopesar la cantidad de
consultas de lectura que se efectuar&n, as% como el n>mero de consultas de escritura que se
llevar&n a cabo" En una red donde las consultas que se procesen sean mayoritariamente de
lectura, se podr%a alcan!ar un alto grado de r9plica, no as% en el caso contrario" ?na base de datos
fragmentada es aquella donde no e'iste r9plica alguna" #os fragmentos se alo$an en sitios donde
>nicamente e'iste una copia de cada uno de ellos a lo largo de toda la red"
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
En caso de r9plica, podemos considerar una base de datos totalmente replicada, donde e'iste una
copia de todo el banco de datos en cada sitio, o considerar una base de datos parcialmente
replicada donde e'istan copias de los fragmentos ubicados en diferentes sitios"
El n>mero de copias de un fragmento ser& una de las posibles entradas a los algoritmos de
asignacin, o una variable de decisin cuyo valor lo determine el algoritmo" #a figura @ compara
las tres alternativas de r9plica con respecto a distintas funciones de un sistema de base de datos
distribuido"
)*plica total )*plica parcial +articin
+rocesamiento de consultas f&cil dificultad Similar
(estin del directorio f&cil o ine'istente dificultad Similar
%ontrol de concurrencia moderado Dif%cil (&cil
&eguridad muy alta =lta Ba$a
)ealidad posible aplicacin realista Posible aplicacin
Figura ,. %omparacin de las alternati!as de r*plica
-nformacin necesaria.
?n aspecto importante en el diseo de la distribucin es la cantidad de factores que contribuyen
a un diseo ptimo" #a organi!acin lgica de la base de datos, la locali!acin de las
aplicaciones, las caracter%sticas de acceso de las aplicaciones a la base de datos y las
caracter%sticas del sistema en cada sitio, tienen una decisiva influencia sobre la distribucin" #a
informacin necesaria para el diseo de la distribucin puede dividirse en cuatro categor%as: la
informacin del banco de datos, la informacin de la aplicacin, la informacin sobre la red de
ordenadores y la informacin sobre los ordenadores en s%" #as dos >ltimas son de car&cter
cuantitativo y servir&n, principalmente, para desarrollar el proceso de asignacin" Se entrar& en
detalle sobre la informacin empleada cuando se aborden los distintos algoritmos de
fragmentacin y asignacin
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
F)A(#E.TA%-/. 0E)T-%A1
-ntroduccin
;ecu9rdese que la fragmentacin vertical de una relacin R produce una serie de fragmentos R1,
R2,...,Rr, cada uno de los cuales contiene un subcon$unto de los atributos de R as% como la clave
primaria de R" El ob$etivo de la fragmentacin vertical consiste en dividir la relacin en un
con$unto de relaciones m&s pequeas tal que algunas de las aplicaciones de usuario slo agan
uso de un fragmento" Sobre este marco, una fragmentacin ptima es aquella que produce un
esquema de divisin que minimi!a el tiempo de e$ecucin de las aplicaciones que emplean esos
fragmentos"
#a particin vertical resulta m&s complicada que la ori!ontal" Esto se debe al aumento del
n>mero total de alternativas que tenemos disponibles" Por e$emplo, en la particin ori!ontal, si
el n>mero total de predicados simples de Pr es n, e'isten /n predicados mint9rminos posibles
que puedan definirse" =dem&s, sabemos que algunos de estos predicados resultar&n
contradictorios con algunas de las aplicaciones e'istentes, por lo que podremos reducir el
n>mero inicial" En el caso vertical, si una relacin tiene m atributos clave no primarios, el
n>mero de posibles fragmentos es igual a B)m,, es decir el mA9simo n>mero de Bell .@0" Para
valores grandes de m, B)m, m
m
1 por e$emplo, para m B 2C, B)m, 22D"CCC, para m B 2D, B)m,
2CE, para m B @C, B)m, B 2C/@"
Estos valores indican que la obtencin de una solucin ptima de la fragmentacin vertical
resultar& una tarea in>til, sino nos apoyamos en el uso de eur%sticos" E'isten dos enfoques
eur%sticos para la fragmentacin vertical de relaciones:
2" =grupacin " 3omien!a asignando cada atributo a un fragmento, y en cada paso, $unta
algunos de los fragmentos asta que satisface un determinado criterio" #a agrupacin
sugiri en principio para bases de datos centrali!adas y se us posteriormente para las
bases de datos distribuidas"
/" Escisin " = partir de la relacin se deciden que fragmentos resultan me$ores, bas&ndose
en las caracter%sticas de acceso de las aplicaciones a los atributos" Esta t9cnica se
present, tambi9n, para bases de datos centrali!adas" Posteriormente, se e'tendi al
entorno distribuido"
En este documento se tratar& >nicamente la t9cnica de escisin, ya que es m&s apropiada para la
estrategia descendente y porque resulta m&s probable encontrar la solucin para la relacin
entera que a partir de un con$unto de fragmentos con un >nico atributo" =dem&s, la escisin
genera fragmentos no solapados mientras que la agrupacin normalmente produce fragmentos
solapados" Dentro del conte'to de los sistemas de bases de datos distribuidos, son preferibles los
fragmentos no solapados por ra!ones obvias" Evidentemente, los fragmentos no solapados se
refieren >nicamente a atributos clave no primarios"
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
=ntes de comen!ar, vamos a aclarar un problema: la r9plica de las claves de la relacin en los
fragmentos" Esta es una caracter%stica de la fragmentacin vertical que permite la reconstruccin
de la relacin global" Por tanto, la escisin considera >nicamente aquellos atributos que no son
parte de la clave primaria"
#a r9plica de los atributos clave supone una gran venta$a, a pesar de los problemas que pueda
causar" #a venta$a est& relacionada con el esfuer!o para mantener la integridad sem&ntica" 4enga
en cuenta que cada dependencia )funcional, multivaluada """, es, de eco, una restriccin que
influye sobre el valor de los atributos de las respectivas relaciones en todo momento" 4ambi9n
mucas de estas dependencias implican a los atributos clave de una relacin"
Si queremos disear una base de datos tal que los atributos clave sean parte de una fragmento
que est& ubicado en un sitio, y los atributos relacionados sean parte de otro fragmento asignado a
un segundo sitio, cada peticin de actuali!acin provocar& la verificacin de integridad que
necesitar& de una comunicacin entre esos sitios" #a r9plica de los atributos clave de cada
fragmento reduce esta problem&tica, pero no elimina toda su comple$idad, ya que la
comunicacin puede ser necesaria para las restricciones de integridad que implican a las claves
primarias, as% como para el control de concurrencia"
?na posible alternativa a la r9plica de los atributos clave es el empleo de identificadores de
tuplas, que son valores >nicos asignados por el sistema a las tuplas de una relacin" Mientras el
sistema mantenga los identificadores, los fragmentos permanecer&n dis$untos"
-nformacin necesaria para la fragmentacin !ertical.
#a principal informacin que necesitaremos se referir& a las aplicaciones" Por tanto, este punto
tratar& de especificar la informacin que de una aplicacin que funciona sobre la base de datos
podamos e'traer" 4eniendo en cuenta que la fragmentacin vertical coloca en un fragmento
aquellos atributos a los que se accede de manera simult&nea, necesitaremos alguna medida que
defina con m&s precisin el concepto de simultaneidad" Esta medida es la afinidad de los
atributos, que indica la relacin estreca e'istente entre los atributos" Desgraciadamente, no es
muy realista esperar que el diseador o los usuarios puedan especificar estos valores" Por ello,
presentaremos una forma por la cual obtengamos esos valores partiendo de datos m&s b&sicos"
El principal dato necesario relativo a las aplicaciones es la frecuencia de acceso" Sea Q B F1,
2, ..., G el con$unto de consultas de usuario )aplicaciones, que funcionan sobre una relacin
R!"1, "2, ..., "n," Entonces, para cada consulta i y cada atributo "j, asociaremos un valor de
uso de atributos, representado por uso)i, "j, y definido como sigue:
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
uso)i, "j, B 2 si la consulta i ace referencia a "j
uso)i, "j, B C en cualquier otro caso
#os vectores uso)qi, , pueden definirse muy f&cilmente para cada aplicacin siempre que el
diseador cono!ca las aplicaciones e'istentes en el sistema" #a regla HCI/C e'puesta p&ginas
atr&s podr%a resultar >til para el desarrollo de esta tarea"
#jemplo 1$. %ea la rela&i'n 3#JEK4ES de la (ase de datos. "sumamos ue las siguientes
apli&a&iones )an a *a&er uso de ella. %e indi&a, tam(in, la espe&i+i&a&i'n %QL.
1 : #n&untrese el nom(re , la dire&&i'n del &liente a partir de su &'digo.
SE#E34 3K-M3#J, 3DJ;3#J (;-M 3#JEK4ES L+E;E 33-D3#J B
-alor
2 : #n&untrese el nom(re , ./0 de todos los &lientes residentes en una determinada
pro)in&ia.
SE#E34 3K-M3#J, 3DKJ3J( (;-M 3#JEK4ES L+E;E K3-DP;-* B
-alor
1 : #n&untrese el nom(re de todos los &lientes.
SE#E34 3K-M3#J (;-M 3#JEK4ES
2 : #n&untrese la po(la&i'n , el &'digo postal de un &liente a partir de su n3mero.
SE#E34 3P-B3#J, 3P4#3#J (;-M 3#JEK4ES L+E;E 3#JEK4ES B
-alor
.e a&uerdo a estas &uatro apli&a&iones, se pueden espe&i+i&ar los )alores de uso de los
atri(utos. Como &on)enio de nota&i'n, denominaremos "1 B 3#JEK4ES, "2 B 33-D3#J, "1 B
3K-M3#J, "2 B 3DJ;3#J, "4 B 3P-B3#J, "5 B K3-DP;-*, "6 B 3P4#3#J , "7 B
3DKJ3J(" Los )alores de uso se de+inen en la matri8 de uso de atri(utos siguiente. Cada
entrada )i, j, &orresponde a uso)i, "j,.
A1 A' A, A2 A3 A4 A5 A6
q1 C 2 2 2 C C C C
q' C C 2 C C 2 C 2
q, C C 2 C C C C C
q2 2 C C C 2 C 2 C
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
#os valores del uso de los atributos en general no son suficientes para desarrollar la base de la
escisin y la fragmentacin de los atributos, ya que estos valores no representan el peso de las
frecuencias de la aplicacin" #a dimensin de esta frecuencia puede incluirse en la definicin de
la medida de los atributos afines a+d)"i, "j,, la cual mide el l%mite entre dos atributos de una
relacin de acuerdo a cmo las aplicaciones acceden a ellos"
#a medida de los atributos afines entre los dos atributos "i y "j de una relacin R)"1, "2, ..., "n,
con respecto a un con$unto de aplicaciones Q B F1, 2, ..., G se define como

j j k i k %
k j k j
" usi " uso 9
j i a&& re+ " " ad+ , ) , ) , , )
2 , , ) 2 , , ) M
donde re+l)k, es el n>mero de accesos a los atributos )"i, "j, por cada e$ecucin de la aplicacin
k en el sitio %l y a&&)k, es la medida de la frecuencia de acceso de una aplicacin definida
anteriormente, pero modificada para incluir las frecuencias en los distintos sitios"
El resultado de este c&lculo es una matri! de n : n, donde cada elemento es una de las medidas
definidas antes" Denominaremos a esta matri! la matri! de atributos afines o ;""" Dica matri!
se emplear& en el resto de este punto para mostrar el proceso de fragmentacin" El proceso
implica una agrupacin de los atributos con alta afinidad, para luego reali!ar la escisin de los
mismos"
#jemplo 11. Continuemos &on el ejemplo 1$. Para no &ompli&ar demasiado las &osas,
asumiremos ue re+l)k, = 1 para todo k , %l.. "s< mismo, supondremos ue en nuestra red
e:isten tres sitios. %i las +re&uen&ias de a&&eso de las apli&a&iones a los atri(utos son las
siguientes
acc2)q2,B2D acc/)q2,B/C acc@)q2,B2C
acc2)q/,BD acc/)q/,BC acc@)q/,BC
acc2)q@,B/D acc/)q@,B/D acc@)q@,B/D
acc2)qN,B@ acc/)qN,BC acc@)qN,BC
enton&es la medida de a+inidad entre los atri(utos "5 , "7 puede medirse &omo



@
2
/
/
H O , ) , , )
j
k j
k
a&& " " ad+
D , ) , ) , ) , , ) / @ / / / 2 H O + + a&& a&& a&& " " ad+
ya que la >nica aplicacin que accede a ambos atributos es q2. " &ontinua&i'n se muestran todos los
resultados en la matri8 de atri(utos a+ines. "d)ierta ue los )alores de la diagonal tam(in se &al&ulan,
pese a ue el par de atri(utos sea el mismo ,, por tanto, su )alor irrele)ante.
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
A1 A' A, A2 A3 A4 A5 A6
A1 @ C C C @ C @ C
A' C ND ND ND C C C C
A, C ND 2/D ND C D C D
A2 C ND ND ND C C C C
A3 @ C C C @ C @ C
A4 C C D C C D C D
A5 @ C C C @ C @ C
A6 C C D C C D C D
Algoritmo de agrupacin.
Ko confunda la agrupacin de atributos con la t9cnica eur%stica del mismo nombre presentada
al principio, no tiene nada que ver" #a tarea fundamental consiste en disear un algoritmo de
fragmentacin vertical que encuentre un t9rmino medio de agrupacin de los atributos de una
relacin bas&ndose en los valores de afinidad de atributos contenidos en ;""" Se a sugerido
por parte de mucos autores .N0.D0.O0 que el algoritmo de energ%a l%mite o B#".20 resulta muy
apropiado para tal propsito" Se considera adecuado por las siguientes ra!ones:
2" Se dise espec%ficamente para determinar grupos de elementos similares frente a una
ordenacin lineal de los elementos )es decir, grupos de atributos con gran afinidad
frente a grupos de atributos con valores pequeos de la misma,"
/" #os grupos resultantes no eran sensibles al orden en el cual los elementos se
dispusiesen por el algoritmo"
@" El tiempo de c&lculo del algoritmo es ra!onable, -)n
/
,, donde n es el n>mero de
atributos"
N" #a interrelacin secundaria entre grupos de atributos es identificable"
El algoritmo de energ%a l%mite toma como entrada la matri! de atributos afines, permuta filas y
columnas y genera una matri! de grupos afines );="," #a permutacin se ace de tal manera,
que se ma'imice la siguiente medida de afinidad global )"=,:

n
j
j i
n
i
C- " " a+d "=
2 2
, , )
donde C- son los cuatro vecinos de un elemento de la matri!, es decir
, , ) , , ) , , ) , , ) 2 2 2 2 j i j i j i j i " " a+d " " a+d " " a+d " " a+d C- + + + + +
= su ve!,
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
C , , ) , , ) , , ) , , ) 2 2 2 C C + + + n i j n i j " " a+d " " a+d " " a+d " " a+d
El >ltimo con$unto de condiciones toma en consideracin los casos en los que los atributos se
sit>an en la ;=" a la i!quierda del atributo e'tremo i!quierdo o a la dereca del atributo
e'tremo dereco durante la permutacin de columnas, e igualmente respecto a la fila que se sit>a
en la parte superior durante la permutacin de filas" En estos casos, tomaremos el cero como
valor de afinidad entre los atributos considerados para su ubicacin y sus vecinos i!quierdos o
derecos )superiores o inferiores,, que no e'isten en la ;=""
#a funcin de ma'imi!acin considera slo los vecinos m&s pr'imos, resultando en el grupo de
valores grandes solo estos, y en el grupo de valores pequeos solo 9stos" =dem&s, la matri! de
atributos afines es sim9trica, lo cual reduce la funcin ob$etiva de la formulacin a
El algoritmo se presenta a continuacin" Para la generacin de la matri! de grupos afines se
siguen tres pasos:
2" Jniciacin " Sit>a y fi$a una de las columnas de ;"" arbitrariamente dentro de ;="" En
el algoritmo se escoge la columna 2"
/" Jteracin " Se toma cada una de las columnas restantes n > i )donde i es el n>mero de
columnas que ya se an situado en ;=", y se intenta situarlas en las n > i posiciones
restantes de la matri! ;="" Se escoge como lugar de empla!amiento aquel que
proporciones una mayor contribucin a la medida de afinidad global descrita
anteriormente" Se contin>a con este paso asta que se agote el n>mero de columnas a
situar"
@" -rdenacin de las filas " ?na ve! que la ordenacin de las columnas a finali!ado, se
debe proceder a ordenar las filas de tal modo que su posicin relativa coincida con la de
las columnas" Por e$emplo, si la columna @ se a situado en la primera posicin, la fila
n>mero @ tambi9n deber%a pasar a ocupar la primera posicin"
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
Para la segunda parte del algoritmo, necesitar%amos definir que significa la contribucin de un
atributo a la medida de afinidad" Esta contribucin puede derivarse como se e'pondr& aora"
Partiremos de la definicin dada de la medida de afinidad global que se escribi como
,0 , ) , , ) ,. , ) 2 2
2 2
+

+

j i j i j i
n
j
n
i
" " a+d " " a+d " " ad+ "=
la cual puede rescribirse como
+ +


,0 , ) , , ) , , ) , , ) . 2 2
2 2
j i j i j i j i
n
j
n
i
" " a+d " " a+d " " a+d " " ad+ "=
1
]
1

+

n
i
j i j i j i j i
n
j
n
i
" " a+d " " a+d " " a+d " " ad+ "=
2
2 2
2 2
, , ) , , ) , , ) , , )
Definamos el l%mite l%m entre dos atributos ": y ", como

n
8
, 8 : 8 , : " " a+d " " a+d " "
2
, , ) , , ) , , lim)
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Algoritmo BEA Algoritmo BEA
Entrada:
MAA: matriz de atributos afines
Salida:
MGA: matriz de grupos afines
Inicio
{iniciacin; recuerde que MAA es una matriz de n x n
MGA(* !"MAA(* !"
MGA(* #"MAA(* #"
$ndice%
mientras $ndice n &acer
{escoger la me'or u(icacin para el atri(uto MAA$ndice )
inicio
para i*! hasta $ndice+! por ! hacer
calcular cont(Ai+!" A$ndice Ai
fin-para
calcular cont(A$ndice+!A$ndice A$ndice+!"
{condicin de inmo,ilidad)
posu(icacin dada por el m-ximo ,alor de cont
para '*$ndice hasta pos por .! hacer
{cam(iar posicin de las columnas)
MGA(* '" MGA(* '+!"
fin-para
MGA(* pos! MAA(* "ndice!
"ndice"ndice#$
fin-mientras
ordenar las filas seg/n la ordenacin
fin0
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
Entonces podemos escribir "= como

+ +
n
j
j j j j " " " " "=
2
2 2 ,0 , lim) , , .lim)
3onsideremos aora los siguientes n atributos


P P
2
P
2 / 2 """ """
"=
n j j
"=
i i " " " " " " " +
#a medida de afinidad global para estos atributos puede escribirse como
, , lim) /
,0 , lim) , , .lim)
,0 , lim) , , .lim)
, , lim) , , lim) QQ Q
/
2 2
2
2 2
j i
n
i i
i i i i
n
i
i i i i
j i j i ant
" "
" " " "
" " " "
" " " " "= "= "=
+
+ +
+ +
+ + +

+
+

+
3onsideremos aora que entre los atributos "i y "j de la matri! de grupos afines se sit>a un
nuevo atributo "k" #a nueva medida de afinidad global ser%a entonces
, , ) / , , ) / QQ Q
, , ) , , )
, , ) , , ) QQ Q
j k k i
k j j k
i k k i nue)a
" " lim " " lim "= "=
" " lim " " lim
" " lim " " lim "= "= "=
+ + +
+ +
+ + +
Por tanto, la contribucin a la red de la medida de afinidad global al situar el atributo "k entre "i
y "j es
, , ) / , , ) / , , ) / , , , )
, , , )
j i j k k i j k i
ant nue)a j k i
" " lim " " lim " " lim " " " &ont
"= "= " " " &ont
+

E$emplo 2/" 3onsideremos la matri! M== que se desarroll anteriormente para la relacin
CL0#/?#%" Estudiemos la contribucin que se reali!a al colocar el atributo =2 entre los
atri(utos "1 , "2.
&ont)"1, "2, "2, B /l<m)"1, "2, R /l<m)"2, "2, : /l<m)"1, "2,
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
+aciendo los c&lculos para cada t9rmino, se obtiene
l<m)"1, "2, B @SC R CSND R CSND R CSND R @SC R CSC R @SC R CSC B C l<m)"2, "2,
B /C/D l<m)"1, "2, B C
Por lo tanto, cont!=1, "2, "2@ = 2A$ B 2A2$24 C 2A$ = 2$4$
El algoritmo se concentra en las columnas de la matri! de atributos afines" Podemos emplear los
mismos argumentos y redisearlo de tal manera que opere sobre las filas tambi9n" -tro punto
importante de este algoritmo es que me$ora la eficiencia, la segunda columna tambi9n se fi$a y se
sit>a tras la primera durante el proceso de iniciacin" Esto es perfectamente v&lido, ya que "2
puede situarse a la dereca o a la i!quierda de "1" El l%mite entre las dos, sin embargo, es
independiente de las posiciones relativas que tengan la una sobre la otra" (inalmente, deber%amos
indicar el problema de calcular &ont en los e'tremos" Si un atributo "i se debe situar a la
i!quierda del atributo m&s a la i!quierda, una de las ecuaciones del l%mite se calcular& sobre un
elemento ine'istente, el de la i!quierda, y sobre "k" Entonces, necesitamos referirnos a las
condiciones impuestas en la definicin de la medida de afinidad global, donde ;=")$, k, B C" El
caso contrario se produce cuando "j es el atributo situado m&s a la dereca, ubicado ya en la
matri! ;=", y queremos saber cu&l es la contribucin de situar el atributo "k a la dereca de "j"
=nte tal situacin se debe calcular el l<m)k, kB1," Ta que no e'iste un atributo situado todav%a en
la columna kB1 de la ;=", la medida de afinidad no puede establecerse" Por tanto, de acuerdo a
las condiciones de los e'tremos, el valor del l%mite es tambi9n C"
E$emplo 2@. -ol)iendo a la matri8 de grupos a+ines de la rela&i'n CL0#/?#%, vamos a
desarrollar los pasos del algoritmo para decidir en qu9 posicin se a de colocar, por e$emplo, el
atributo =1. Como ,a se *a &omentado el algoritmo deja +ijas en un prin&ipio las dos primeras
&olumnas "1 , "2. Por tanto, las posi(les u(i&a&iones para el atri(uto "1 ser<anD a la i8uierda
de "1 !ordena&i'n $>1>1@, entre "1 , "2 !ordena&i'n 1>1>2@ , a la dere&*a de "2 !ordena&i'n 2>
1>2@. ?enga en &uenta dos &osas. Primero, ,a se *a &itado ue el l<mite de &ualuier atri(uto
respe&to al e:tremo, "$ en este &aso, es siempre &ero. %egundo, para la ordena&i'n 2>1>2, el
atri(uto "2 en la matri8 ;=" toda)<a no se *a &olo&ado, por tanto no e:iste , su l<mite &on otro
atri(uto tam(in es &ero. "&larados estos dos puntos, se reali8an los siguientes &El&ulosD
-rdenacin )CA@A2,
cont!=$, "1, "1@ = 2l%m!=$, "1@ B 2l%m!=1, "1@ C 2l%m!=$, "1@l%m!=$, "1@
= $ l%m!=$, "1@ = $l%m!=1, "1@ = $A1 B 24A$ B 124A$ B 24A$ B $A1 B 4A$ B
$A1 B 4A$ = $ cont)=$, "1, "1@ = $
-rdenacin )2A@A/,
cont!=1, "1, "2@ = 2l%m!=1, "1@ B 2l%m!=1, "2@ C 2l%m!=1, "2@ l%m!=1, "1@
= l%m!=1, "1@ = $l%m!=1, "2@ = F51$l%m!=1, "2@ = $cont!=1, "1, "2@ =
1F25$
-rdenacin )/A@AN," Esta ordenacin representa la condicin de inmovilidad, ya que =1
o&upar<a su posi&i'n natural.
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
cont!=2, "1, "2@ = 2l%m!=2, "1@ B 2l%m!=1, "2@ C 2l%m!=2, "2@ l%m!=2, "1@
= l%m!=1, "2@ = F51$ l%m!=1, "2@ = $ l%m!=2, "2@ = $ cont!=2, "1, "2@ =
1F25$
Por los resultados obtenidos abr& podido observar que la m&'ima contribucin la aportan las
ordenaciones )2A @A/, y )/A@AN," =dem&s, dica contribucin es id9ntica" En este caso, se de$a el
criterio en manos del lector" En nuestro caso la condicin de inmovilidad se prefiere acer
prevalecer sobre el resto, por tanto el atributo =1 se situar<a en ;=" en la posi&i'n 1, la misma
posi&i'n ue o&upa(a en la matri8 ;"".
3ompletando el proceso para el resto de los atributos se obtienen los resultados que se muestran
a continuacin:
a" 3omo se a e'puesto, =1 permane&e en la posi&i'n n3mero 1. Lo mismo su&ede &on el
atri(uto "2.
A1 A' A, A2
A1 @ C C C
A' C ND ND ND
A, C ND 2/D ND
A2 C ND ND ND
A3 @ C C C
A4 C C D C
A5 @ C C C
A6 C C D C
b" El atributo =4 pasa a la posi&i'n n3mero 1.
A3 A1 A' A, A2
A1 @ @ C C C
A' C C ND ND ND
A, C C ND 2/D ND
A2 C C ND ND ND
A3 @ @ C C C
A4 C C C D C
A5 @ @ C C C
A6 C C C D C
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
c" #a mayor contribucin para el atributo =5 se da en su posi&i'n natural.
A3 A1 A' A, A2 A4
A1 @ @ C C C C
A' C C ND ND ND C
A, C C ND 2/D ND D
A2 C C ND ND ND C
A3 @ @ C C C C
A4 C C C D C D
A5 @ @ C C C C
A6 C C C D C D
d" El atributo =6 se despla8a *asta la primera posi&i'n.
A5 A3 A1 A' A, A2 A4
A1 @ @ @ C C C C
A' C C C ND ND ND C
A, C C C ND 2/D ND D
A2 C C C ND ND ND C
A3 @ @ @ C C C C
A4 C C C C D C D
A5 @ @ @ C C C C
A6 C C C C D C D
e" La ma,or &ontri(u&i'n de "7 se da entre los atri(utos "1 , "2.
A5 A3 A1 A' A, A6 A2 A4
A1 @ @ @ C C C C C
A' C C C ND ND C ND C
A, C C C ND 2/D D ND D
A2 C C C ND ND C ND C
A3 @ @ @ C C C C C
A4 C C C C D D C D
A5 @ @ @ C C C C C
A6 C C C C D D C D
f" Por 3ltimo, se ordenan las +ilas seg3n la posi&i'n relati)a de las &olumnas.
A5 A3 A1 A' A, A6 A2 A4
A5 @ @ @ C C C C C
A3 @ @ @ C C C C C
A1 @ @ @ C C C C C
A' C C C ND ND C ND C
A, C C C ND 2/D D ND D
A6 C C C C D D C D
A2 C C C ND ND C ND C
A4 C C C C D D C D
Algoritmo de particin.
El ob$etivo de la escisin consiste en encontrar con$untos de atributos a los que se acceda
con$untamente, o a un gran n>mero de ellos, por los distintos grupos de aplicaciones" Por
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
e$emplo, si es posible identificar dos atributos, "1 y "2, a los que accede >nicamente la
aplicacin 1, y unos atributos "1 y "2, a los que acceden dos aplicaciones 2 y 1, ser%a muy
sencillo decidir qu9 fragmentos establecer" Por ello, es necesario encontrar un algoritmo que
identifique estos grupos"
3onsidere la matri! de grupos afines de la figura N" Si se fi$a un punto a lo largo de la diagonal,
se pueden establecer dos con$untos de atributos" ?n con$unto F"1, "2, ..., "iG situado en la
esquina superior i!quierda y un segundo con$unto F"iB1, ..., "nG en la parte inferior dereca de
este punto" Denominaremos al primero de ellos el con$unto superior y al segundo el con$unto
inferior y notaremos sus con$untos de atributos como "% y "0, respectivamente"
(igura N" Escisin de la matri!"
Deteng&monos aora en el con$unto de aplicaciones Q B F1, 2, ..., G y definamos los
con$untos de aplicaciones que acceden solamente a "% o a "0, o a ambas" Estos con$untos se
definen como sigue:
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
=
2
=
/
=
@
""" =
i
=
iR2
""" =
n
=
2
=
/

=
@
"
"
"
=
i

=
iR2
"
"
"
=
n
=S
=J
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
G F
G , ) M F
G , ) M F
2 , , ) M F , )
0Q %Q Q GQ
"0 "Q 0Q
"% "Q %Q
" uso " "Q
i i
i i
j i j i




#a primera de estas ecuaciones define el con$unto de atributos a los que accede la aplicacin i1
%Q e 0Q son el con$unto de aplicaciones que slo acceden a los con$untos "% y "0,
respectivamente, y GQ es el con$unto de aplicaciones que accede a ambos"
Kos encontramos ante un problema de optimi!acin" Si ay n atributos en una relacin, e'isten n
> 1 posibles posiciones en las que situar el punto de divisin a lo largo de la diagonal, para
producir los con$untos %Q e 0Q, tal que el acceso total a un >nico fragmento se ma'imice
mientras que el acceso por las aplicaciones a varios fragmentos se minimice" Definiremos, por
ello, las siguientes ecuaciones de coste:







j i
j i
j i
j i
%
i j i j
GQ
%
i j i j
0Q
%
i j i j
%Q
%
i j i j
Q
a&& re+ CGQ
a&& re+ C0Q
a&& re+ C%Q
a&& re+ CQ
, ) , )
, ) , )
, ) , )
, ) , )
3ada una de las ecuaciones cuenta el n>mero total de accesos a los atributos por parte de cada
aplicacin para sus respectivas clases" Bas&ndonos en esta medida, el problema de optimi!acin
se define encontrando el punto : )2 : n, tal que la e'presin siguiente sea m&'ima:
CGQ C0Q C%Q H U
#a caracter%stica fundamental de esta e'presin es que define dos fragmentos tales que los
valores de C%Q y C0Q son tan pr'imos como sea posible" Esto permite el equilibrio de la carga
de procesamiento cuando los fragmentos est9n distribuidos entre varios sitios" Est& claro que el
algoritmo de particin tiene comple$idad lineal con respecto al n>mero de atributos de la
relacin, que es I)n,"
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
E'isten dos complicaciones que necesitan apuntarse" #a primera es relativa a la escisin" 3omo
el lector abr& podido percatarse, el procedimiento de escisin >nicamente divide el con$unto de
atributos de dos formas: generando el con$unto "% y el con$unto "0" En el caso que el con$unto
de atributos sea grande, seguramente ser& necesario un m9todo de particin que soporte nAformas
de divisin" El diseo de este algoritmo es posible, pero computacionalmente costoso" = lo largo
de la diagonal de la matri! ;=" es necesario probar 2, /, """, n > 1 puntos de divisin y para cada
uno de estos verificar el lugar que ma'imice a 8" Por tanto, la comple$idad del algoritmo
alcan!ar%a un valor de I)/
n
," Sin embargo, puede llevarse a cabo una solucin alternativa
consistente en una llamada iterativa al algoritmo de fragmentacin binaria para cada uno de los
fragmentos obtenidos en la iteracin previa" Esta solucin cuyo coste computacional es de I)n
@
,
se presenta m&s adelante"
#a segunda complicacin se refiere a la locali!acin de un bloque de atributos que deber%a
formar un fragmento" Kuestra discusin no va m&s all& de considerar que el punto de escisin es
>nico y simple, y que divide a la matri! ;=" en una particin superior i!quierda y en una
particin con el resto de los atributos" #a particin, sin embargo, podr%a formarse en el medio de
la matri!" En este caso, necesitamos modificar el algoritmo levemente" #a columna m&s a la
i!quierda de la matri! ;=" se despla!a para convertirse en la columna m&s a la dereca y la fila
superior se despla!a para pasar a ser la inferior" = la operacin de despla!amiento le sigue la
verificacin de las n > 1 posiciones de la diagonal para encontrar el m&'imo de 8" #a idea que
esconde el despla!amiento consiste en mover el bloque de atributos que deber%a formar un grupo
a la esquina superior i!quierda, donde se identificar& m&s f&cilmente" 3on el aadido de la
operacin de despla!amiento, la comple$idad del algoritmo de particin se eleva en un factor n
convirti9ndose en I)n
/
,"
=sumiendo que el procedimiento de despla!amiento, denominado DESP#=V=;, ya se a
desarrollado, el algoritmo se presenta a continuacin" #a entrada del algoritmo P=;4J3JWK.20
es la matri! de grupos afines y la relacin R a fragmentar" #a salida es el con$unto de fragmentos
FR B FR1, R2G, donde Ri F"1, "2, ..., "nG y R1R2 B los atributos clave de R" 4enga en
cuenta, que para el algoritmo de n>+ormas esta rutina deber%a invocarse interactivamente, o
desarrollarse como procedimiento recursivo"
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
#jemplo 12. "l apli&ar el algoritmo P=;4J3JWK so(re la matri8 ;=" o(tenida para la
rela&i'n 3#JEK4ES se o(tiene el grupo de +ragmentos FCL0#/?#% = F3#JEK4ES2,
3#JEK4ES/G donde 3#JEK4ES2 = F"6, "4, "1G , 3#JEK4ES/ = F"1, "2, "1, "7, "2, "5G
teniendo en &uenta ue se &onsidera &la)e primaria a "1. Por lo tanto,
3#JEK4ES2 B F3P4#3#J, 3P-B3#J, 3#JEK4ESG
3#JEK4ES/ B F3#JEK4ES, 33-D3#J, 3K-M3#J, 3DKJ3J(, 3DJ;3#J,
K3-DP;-*G
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
A%G&'I(M& )E *A'(I+I,-
Entrada:
MAA: matriz de atri(utos afines
1: relacin
Salida:
2: con'unto de fragmentos
Inicio:
{calcular el ,alor de z para la primera columna)
{los su($ndices en las ecuaciones de costo indican el punto de
escisin)
calcular 345n+r
calcular 365n+r
calcular 375n+r
me'or345n+r * 365n+r . (375n+r"
#
hacer {o(tencin de la me'or particin
inicio
para i*n+# hasta l por .! hacer
inicio
calcular 345n+r
calcular 365n+r
calcular 375n+r
me'or345n+r * 365n+r . (375n+r"
#
si z8me'or entonces
inicio
me'orz
guardar la posicin del desplazamiento
fin-si
fin-para
llamar 9E4:;A<A1 (MAA"
fin-inicio
hasta que MAA no pueda desplazar mas
reconstruir la matriz seg/n la posicin de desplazamiento;
1rA4(1"=>
1#Ar(1"=>
{> es el con'unto de cla,es primarias de los atri(utos de 1)
2(1r 1#"
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
Fragmentando relaciones grandes.
Se a citado anteriormente la necesidad e'istente en mucos casos de fragmentar una relacin en
m&s de dos partes, especialmente si 9sta es grande, contiene un n>mero considerable de
atributos" E'isten dos alternativas para desarrollar el algoritmo de nAformas que aga esto
posible" Por un lado podr%amos modificar el algoritmo de particin para que llevase a cabo esta
tarea, lo cual resultar%a bastante complicado y, por otra, acer uso de 9ste tal cual pero siendo la
base del nuevo algoritmo, es decir, lo utili!ar%amos iterativamente para fragmentar binariamente
cada uno de los fragmentos que se generen en el paso anterior" #a opcin elegida es esta >ltima"
El algoritmo .X0 mostrado a continuacin es bastante sencillo, slo ay que tener en cuenta el
n>mero de grupos de fragmentacin que se van generando"
Evidentemente el coste computacional de todo el proceso aumenta" Partiendo de que el coste del
algoritmo P=;4J3JWK es de I)n
/
,, el coste aadido es el siguiente" En los pasos /, N, D y O es
de I)2," En el paso @ se necesita buscar el esquema de grupo de atributos actual para ?F, es
decir, el con$unto de fragmentos que representa la actual ;="" En otras palabras, ?F B F%F0"
Esta b>squeda puede llevar consigo como muco n iteraciones dado que el tamao del grupo de
fragmentos actual no puede ser mayor que n, es decir, cada grupo en el grupo de fragmentos
actual slo puede contener un fragmento en 9l" #os pasos X y H se e$ecutan como m&'imo n
veces" Por todo ello, la comple$idad del algoritmo nAformas se incrementa en un factor n a partir
de la comple$idad temporal de P=;4J3JWK, entonces el coste total alcan!a un valor de I)n
@
,"
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Algoritmo --.&'MAS
Entrada:
MGA: matriz de grupos afines
5: con'unto de aplicaciones
Salida:
EE2n: n esquemas de fragmentacin
Inicio
{i ,ale ! en la primera llamada al algoritmo)
ii?!
si el n/mero de columnas de MGA8!
si el numero de columnas de MGA8! entonces
inicio
llamar :A1@636AB
@22426
{@2 es le con'unto de todos lo s fragmentos0 24 es el fragmento
superior generado pro :A1@636AB C 26 el inferior)
EE2EE2 . {@2)
EE2EE2{24){26)
EE2iEE2
BG2i{24){26)
{cada BG2i es un con'unto de dos nue,os grupos de fragmentos
o(tenidos a partir del con'unto de fragmentos existentes en MGA)
llamar B+2D1MA4(MGAs45"
llamar B+2D1MA4(MGAr65"
{MGAs C MGAr son los atri(utos de MGA que despuEs de la escisin
quedan en la parte superior e inferior respecti,amente)
fin-si
fin/ 0--.&'MAS1
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
#jemplo 14. "l emplear el algoritmo KA(-;M=S so(re la rela&i'n &lientes, se o(tienen los
siguientes esuemas de +ragmenta&i'n . I(ser)e &omo en &ada paso se produ&e un +ragmento
mEs respe&to al inmediato anterior. .e(ido a esta &ara&ter<sti&a se di&e ue los esuemas de
+ragmenta&i'n generados son jerErui&os.
Esquema (ragmentos
Esquema de fragmentacin
2 2 )2/@NDOXH,
/ / )XD2, )/@HNO,
@ @ )XD2, )/@N, )HO,
N N )XD2, )/@, )N, )HO,
D D )X, )D2, )/@, )N, )HO,
O O )X, )D, )2, )/@, )N, )HO,
X X )X, )D, )2, )/@, )N, )H, )O,
H H )X, )D, )2, )/, )@, )N, )H, )O,
Dado que el m9todo n>+ormas para una relacin R que se desee fragmentar y que consta de m
atributos, puede generar desde / asta m fragmentos diferentes, es f&cil preguntarse cu&l de
todos los esquemas generados es el me$or" Para responder a esto se va a proceder a estudiar en
detalle el E'aminador de Particiones )EP, .H0, que no es m&s que una funcin de coste que
determina el me$or esquema" Este punto muy relacionada con la fase de asignacin se e'pone en
siguientes apartados" Pero antes de ello, resulta necesario verificar la correccin del algoritmo de
particin"
Comprobacin de la correccin.
Emplearemos argumentos similares a los de la fragmentacin ori!ontal para probar que el
algoritmo de fragmentacin vertical es correcto"
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
2" 3omplecin " #a complecin se garanti!a ya que cada atributo de la relacin global se
asigna a uno de los fragmentos" Jndependientemente del tamao del con$unto de
atributos = sobre el que se define la relacin R, este est& formado por " B "%"0, por
lo que la complecin est& asegurada"
/" ;econstruccin " Ta se a mencionado que la reconstruccin de la relacin es posible si
se ace uso de la operacin de yunto" Entonces, para una relacin R con un con$unto de
fragmentos verticales FR B FR1, R2, ..., RrG y el atributo o los atributos clave 9,
R i i k F R R R ,
Por tanto, dado que cada Ri es completo, la operacin de yunto podr& reconstruir
adecuadamente R" -tro punto importante es que cada Ri deber%a contener el o los
atributos claves de R, o bien, albergar el identificador de tupla asignado por el sistema"
@" Disyuncin " #a disyuncin de los fragmentos no es tan importante en la fragmentacin
vertical como en la ori!ontal" E'isten dos casos:
a" Se usan identificadores de tuplas, en este caso los fragmentos son
dis$untos ya que los identificadores que se replican en cada fragmento
se asignan por el sistema y son totalmente invisibles al usuario"
b" #os atributos clave se replican en cada fragmento, en este caso no se
puede decir que sean dis$untos en un sentido estricto" Sin embargo, es
importante que esta duplicacin de los atributos clave se cono!ca y
gestione por el sistema" ;esumiendo, los fragmentos son dis$untos
e'cepto para los atributos clave
F)A(#E.TA%-$. 7$)-8$.TA1
3omo se a e'plicada anteriormente, la fragmentacin ori!ontal se reali!a sobre las tuplas de la
relacin" 3ada fragmento ser& un subcon$unto de las tuplas de la relacin" E'isten dos variantes
de la fragmentacin ori!ontal: la primaria y la derivada" #a fragmentacin ori!ontal primaria
de una relacin se desarrolla empleando los predicados definidos en esa relacin" Por el
contrario, la fragmentacin ori!ontal derivada consiste en dividir una relacin partiendo de los
predicados definidos sobre alguna otra"
Informacin necesaria para la fragmentacin horizontal.
Jnformacin sobre la base de datos" Esta informacin implica al esquema conceptual global" Es
importante sealar cmo las relaciones de la base de datos se conectan con otras" En una
cone'in de relaciones normalmente se denomina relacin propietaria a aquella situada en la
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
cola del enlace, mientras que se llama relacin miembro a la ubicada en la cabecera del v%nculo"
Dico de otra forma podemos pensar en relaciones de origen cuando nos refiramos a las
propietarias y relaciones destino cuando lo agamos con las miembro" Definiremos dos
funciones: propietaria y miembro, las cuales proyectar&n un con$unto de enlaces sobre un
con$unto de relaciones" =dem&s, dado un enlace, devolver&n el miembro y el propietario de la
relacin, respectivamente" #a informacin cuantitativa necesaria gira en torno a la cardinalidad
de cada relacin, notada como &ard)R,"
Jnformacin sobre la aplicacin" Kecesitaremos tanto informacin cualitativa como cuantitativa"
#a informacin cualitativa guiar& la fragmentacin, mientras que la cuantitativa se necesitar& en
los modelos de asignacin" #a principal informacin de car&cter cualitativo son los predicados
empleados en las consultas de usuario" Si no fuese posible investigar todas las aplicaciones para
determinar estos predicados, al menos se deber%an investigar las m&s importantes" Podemos
pensar en la regla YHCI/CY para guiarnos en nuestro an&lisis, esta regla dice que el /CZ de las
consultas e'istentes acceden al HCZ de los datos" #legados a este punto, ser%a interesante
determinar los predicados simples" Dada una relacin R)"1, "2, ..., "n,, donde "i es un atributo
definido sobre el dominio .i, un predicado simple pj definido sobre R es de la forma
-alor " p i i :
donde es un operador relacional y -alor se escoge de entre el dominio de "i" ?saremos Pri
para notar al con$unto de todos los predicados simples definidos sobre una relacin Ri" #os
miembros de Pri se notan por pij"
#jemplo 1" Para la rela&i'n PRI-0/C de la (ase de datos ejemplo, un par de predi&ados
simples ser<an los siguientesD
3K-MP;-* B YSalamancaY K3-DP;-* /D
= parte de los predicados simples, las consultas emplean predicados m&s comple$os resultado de
combinaciones lgicas de los simples" ?na combinacin especialmente interesante es la
con$uncin de predicados simples, al predicado resultante se le denomina predicado mint9rmino"
Partiendo de que siempre es posible transformar una e'presin lgica en su forma normal
con$untiva, usaremos los predicados mint9rmino en los algoritmos para no causar ninguna
p9rdida de generalidad"
Dado un con$unto de predicados simples de una relacin R, Pri B Fpi1, pi2, ..., pimG, el con$unto
de predicados mint9rmino ;i B Fmi1, mi2, ..., mi8G se define como
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
8 j m k p mi ; jk
j pjk
j i

2 , 2 G, P F
Pr
donde pJik B pik o pJik B

pik" Es decir, cada predicado mint9rmino puede ser igual a la forma


natural o a la forma negada del predicado simple" Es importante sealar que la referencia a la
negacin de un predicado es significativa para predicados de igualdad de la forma
"tri(uto = -alor
Para predicados de desigualdad, la negacin deber%a tratarse como su complemento" Por
e$emplo, la negacin del predicado simple
"tri(uto-alor es "tri(uto K -alor
Pero e'isten casos en los que el complemento es dif%cil de definir" Por e$emplo, si dos predicados
son de la forma
L<miteLin+erior "tri(utoL1
"tri(utoL1L<miteLsuperior
sus complementos son

)L<miteLin+erior "tri(utoL1,

)"tri(utoL1 L<miteLsuperior,
Sin embargo, si los dos predicados simples se escriben como
L<miteLin+erior "tri(utoL1 L<miteLsuperior
con un complemento,

)L<miteLin+erior "tri(utoL1 L<miteLsuperior,,


9ste no es f&cil de definir"
#jemplo 2. Considere la rela&i'n "LBCL0?. Los siguientes predi&ados son algunos de los
posi(les predi&ados simples ue pueden de+inirse so(re la rela&i'nD
p2 : 33-D3#J B Y/DC2CNY
p/ : 33-D3#J B Y/DC2C/Y
p@ : 33-D3#J B Y/DC2C@Y
pN : 33-D3#J B Y/DC2CHY
pD : 33-D3#J B Y/DC2CXY
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
pO : 33-D3#J B Y/DC2CEY
pX : KK?M=#B EHCCCC
pH : KK?M=#B [ EHCCCC
Los siguientes son algunos de los predi&ados mintrmino (asados en los predi&ados simples
anterioresD
m2 : 33-D3#J B Y/DC2CNY KK?M=#B EHCCCC
m/ : 33-D3#J B Y/DC2CNY KK?M=#B [ EHCCCC
m@ :

)33-D3#J B Y/DC2CNY, KK?M=#B EHCCCC


mN :

)33-D3#J B Y/DC2CNY, KK?M=#B [ EHCCCC


mD : 33-D3#J B Y/DC2C/Y KK?M=#B EHCCCC
mO : 33-D3#J B Y/DC2C/Y KK?M=#B [ EHCCCC
mX :

)33-D3#J B Y/DC2C/Y, KK?M=#B EHCCCC


mH :

)33-D3#J B Y/DC2C/Y, KK?M=#B [ EHCCCC


?enga en &uenta ue estos o&*o predi&ados mintrmino no son todos los ue se pueden de+inir,
es s'lo un ejemplo.
Sobre la informacin cuantitativa necesaria relativa a las aplicaciones, necesitaremos definir dos
con$untos de datos"
2" Selectividad mint9rmino" Es el n>mero de tuplas de una relacin a las que accede una
consulta de acuerdo a un predicado mint9rmino dado" Por e$emplo, en el e$emplo
anterior, la selectividad de m5 es C ya que no e'iste ninguna tupla que satisfaga las
condiciones1 en cambio, la selectividad de m1 es /" Kotaremos la selectividad de un
mint9rmino mi como sel)mi,"
/" (recuencia de acceso" Es la frecuencia con la que un usuario accede a los datos" Si Q B
F1, 2, ..., G es un con$unto de consultas de usuario, a&&)i, indica la frecuencia de
acceso a la consulta i en un periodo dado"
-bserve, que las frecuencias de acceso mint9rmino pueden establecerse a partir de las
frecuencias de acceso de la consulta" Kos referiremos a las frecuencias de acceso de un
mint9rmino mi como a&&)mi,"
Fragmentacin 9orizontal primaria.
=ntes de presentar un algoritmo formal que lleve a cabo la fragmentacin ori!ontal,
intentaremos e'plicar de manera intuitiva los procesos de fragmentacin ori!ontal primaria y
derivada" #a fragmentacin ori!ontal primaria se define como una operacin de seleccin de las
relaciones propietarias del esquema de la base de datos" Por tanto, dada una relacin Ri, sus
fragmentos ori!ontales son
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
M j Rj
j F
j
i R
2 ,, )

donde Fj es la frmula de seleccin empleada para obtener el fragmento Rji" -bserve que si Fj
est& en forma normal con$untiva, es un predicado mint9rmino )mij," El algoritmo e'puesto m&s
adelante, de eco, necesita que Fj sea un predicado mint9rmino"
#jemplo 1. Podr<amos des&omponer la rela&i'n "LBCL0? del ejemplo en dos +ragmentos
*ori8ontales "LBCL0?1 , "LBCL0?2 de+inidos de la manera siguienteD
=#B3#J42 B KK?M=#B EECCC2 )=#B3#J4,
=#B3#J4/ B KK?M=#B [ EECCC2 )=#B3#J4,
El e$emplo anterior ilustra uno de los problemas de la fragmentacin ori!ontal" Si el dominio de
los atributos implicados en la frmula de seleccin son continuos e infinitos, resulta muy dif%cil
definir un con$unto de frmulas F B FF1, F2, ..., FnG que fragmentasen la relacin de forma
adecuada" ?na posible v%a de solucin consistir%a en definir una serie de rangos, como se a
eco en el e$emplo" Sin embargo, siempre aparecer& el problema de tratar los dos e'tremos" Es
decir, supongamos que se aade una nueva tupla a =#B3#J4 con un valor para el atributo
KK?M=#B de /CCCCCC2, entonces deber%amos revisar el punto de fragmentacin para decidir
si la nueva tupla se incluye en el segundo fragmento =#B3#J4/ o si se a de reali!ar una nueva
fragmentacin modificando el criterio de seleccin, tal que
=#B3#J42 B EECCC2 \ K?M=#B 2CNEDCC2 )=#B3#J4,
=#B3#J4/ B KK?M=#B [ 2CNEDCC2 )=#B3#J4,
En este caso resulta evidente que la me$or opcin ser%a destinar directamente la nueva tupla al
segundo fragmentos" Sin embargo, si entrasen H nuevas tuplas con un n>mero de albar&n
)KK?M=#B, relativo al ao /"CCC, es decir, /CCC'''' ser%a m&s adecuado elegir otro punto de
fragmentacin bas&ndonos en la operacin de seleccin"
Este problema, en la pr&ctica, puede resolverse limitando el dominio de los atributos de acuerdo
con los requisitos de la aplicacin"
#jemplo 2. Considere la rela&i'n PRI-0/C del ejemplo ue )enimos empleando. Podr<amos
de+inir una serie de +ragmentos *ori8ontales (asEndonos en el &'digo de 8ona de la siguiente
manera.
P;-*JK32 B 33-DV-K= B Y3T#Y )P;-*JK3,
P;-*JK3/ B 33-DV-K= B Y3#MY )P;-*JK3,
P;-*JK3@ B 33-DV-K= B Y3=4Y )P;-*JK3,
P;-*JK3N B 33-DV-K= B YM=DY )P;-*JK3,
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
Cu,o resultado ser<a el ue se muestra a &ontinua&i'nD
P;-*JK3 K3-DP;-* 3K-MP;-* 33-DV-K=
/ @X Salamanca 3T#
@ /N #en 3T#
O NE Vamora 3T#
X D ]vila 3T#
P;-*JK32
P;-*JK3 K3-DP;-* 3K-MP;-* 33-DV-K=
2 2@ 3iudad ;eal 3#M
D ND 4oledo 3#M
P;-*JK3/
P;-*JK3 K3-DP;-* 3K-MP;-* 33-DV-K=
N CH Barcelona 3=4
P;-*JK3@
P;-*JK3 K3-DP;-* 3K-MP;-* 33-DV-K=
H /H Madrid M=D
P;-*JK3N
=ora definiremos la fragmentacin ori!ontal m&s formalmente" ?n fragmento ori!ontal Ri de
una relacin R contiene todas las tuplas de R que satisfacen un predicado mint9rmino mi" Por
tanto, dado un con$unto de predicados mint9rmino ;, e'isten tantos fragmentos ori!ontales de
la relacin R como predicados mint9rmino" Este con$unto de fragmentos ori!ontales tambi9n se
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
conocen como con$untos de fragmentos mint9rmino" En los p&rrafos siguientes se asumir& que la
definicin de fragmentos ori!ontales se basa en los predicados mint9rmino" =dem&s, el primer
paso para el algoritmo de fragmentacin consiste en establecer un con$unto de predicados con
ciertas propiedades"
?n aspecto importante de los predicados simples es su complecin, as% como su minimalidad"
?n con$unto de predicados simples Pr se dice que es completo si y solo si e'iste una
probabilidad id9ntica de acceder por cada aplicacin a cualquier par de tuplas pertenecientes a
cualquier fragmento mint9rmino que se define de acuerdo con Pr" Se puede apreciar como la
definicin de complecin de un con$unto de predicados simples difiere de la regla de complecin
de la fragmentacin"
#jemplo 4. Considere la +ragmenta&i'n lle)ada a &a(o anteriormente so(re la rela&i'n
P;-*JK3. %i e:istiese 3ni&amente una apli&a&i'n ue a&&ediese a las tuplas de a&uerdo al
&'digo de 8ona, el &onjunto ser<a &ompleto ,a ue e:iste la misma pro(a(ilidad de a&&eder a
&ada tupla de los +ragmentos. %in em(argo, si e:iste una segunda apli&a&i'n ue a&&ede a las
tuplas ue tienen un &'digo pro)in&ial menor o igual ue /D, enton&es Pr no es &ompleto.
"lgunas de las tuplas de un P;-*JK3i tienen ma,or pro(a(ilidad de a&&eso por parte de esta
segunda apli&a&i'n. Para *a&er el &onjunto de predi&ados &ompleto, ne&esitar<amos aNadir
)K3-DP;-* /D, K3-DP;-* [ /D, a Pr:
Pr B F 33-DV-K= B Y3#MY, 33-DV-K= B Y3T#Y, 33-DV-K= B Y3=4Y, 33-DV-K= B
YM=DY,K3-DP;-* /D, K3-DP;-* [ /D G
#a segunda propiedad, la minimalidad, es muy intuitiva" Es sencillamente un estado que indica
el grado de influencia de un predicado en el desarrollo de la fragmentacin )es decir, provoca
que un fragmento + se fragmente en +i y +j,, siempre que al menos una aplicacin acceda a +i y a
+j de forma diferente" En otras palabras, el predicado simple deber%a ser relevante para provocar
la fragmentacin" Si todos los predicados de un con$unto Pr son relevantes, Pr es m%nimo" ?na
definicin formal de la relevancia podr%a ser la siguiente" Sean mi y mj dos predicados
mint9rmino id9nticos en su definicin, e'ceptuando que mi contiene el predicado simple pi en su
forma natural, mientras que mj contiene a

pi" Sean, adem&s, +i y +j dos fragmentos definidos


de acuerdo a mi y mj, respectivamente" Entonces pi es relevante si y slo si
, )
, )
, )
, )
i
j
i
i
+ &ard
m a&&
+ &ard
m a&&

#jemplo 5. %ea el &onjunto Pr de+inido anteriormente. #ste &onjunto es &ompleto , m<nimo. %in
em(argo, si le aNadimos el predi&ado 3K-MP;-* B YBarcelonaY, el resultado no ser<a
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
m<nimo ,a ue el nue)o predi&ado no es rele)ante para Pr.
= continuacin se presenta un algoritmo iterativo, llamado 3-M^MJK .20, que generar& un
con$unto de predicados completo y m%nimo PrO a partir de un con$unto de predicados simples Pr"
4enga en cuenta la notacin siguiente: Regla 1" Es la regla fundamental de la complecin y la
minimalidad, que afirma que una relacin o fragmento se divide Yen al menos dos partes a las
cuales se accede de forma diferente por al menos una aplicacin"Y +i de PrO" El fragmento +i se
define de acuerdo a un predicado mint9rmino especificado sobre los predicados de PrO"
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
El algoritmo empie!a encontrando un predicado relevante que parta la relacin de entrada" El
bucle 9acer : 9asta aade interactivamente predicados al con$unto, asegurando la minimalidad
en cada paso" =dem&s, al final, el con$unto PrO es tanto m%nimo como completo"
El segundo paso en el proceso de fragmentacin primaria consiste en derivar el con$unto de
predicados mint9rmino que pueden definirse sobre los predicados del con$unto PrO" Estos
predicados mint9rmino establecen los fragmentos candidatos para el proceso de asignacin" El
establecimiento de los predicados mint9rmino es trivial1 la dificultad radica en el tamao del
con$unto de predicados mint9rmino, que puede ser muy grande )de eco, e'ponencial respecto
al n>mero de predicados simples," En el paso siguiente se presentar&n formas de reducir el
n>mero de predicados mint9rmino necesarios para la fragmentacin"
El tercer paso aborda, como ya se a citado, la eliminacin de algunos fragmentos mint9rmino
que puedan ser redundantes" Esta eliminacin se desarrolla identificando aquellos mint9rminos
que puedan resultar contradictorios sobre un con$unto de implicaciones 0" Por e$emplo, si PrO B
Fp1, p2G, donde
p1 : atr B )alorL1
p2 : atr B )alorL2
y el dominio de atr es F)alorL1, )alorL2G, es obvio que 0 contiene las dos implicaciones
siguientes
i1 : )atr B )alorL1,

)atr B )alorL2,
i2 :

)atr B )alorL1, )atr B )alorL2,


8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Algoritmo +&M2MI-
entrada:
1: relacin
:r: con'unto de predicados simples
salida:
:rF: con'unto de predicados simples
declarar
2: con'unto de predicados mintErmino
inicio
encontrar un pi :r tal que pi parta a 1 de acuerdo con la regla !;
:rFpi
:r :r+pi
2fi {fi es el fragmento mintErmino respecto a pi)
hacer
inicio
encontrar un p' :r tal que p' parta a un fG de :rF de acuerdo con la
regla !
:rF:rFp'
:r:r+p'
222'
si pG:r irrele,ante entonces
inicio
:rF:rF+pG
22+fG
fin-si
fin-inicio
hasta que :rF este completo
fin0 {3DMHM6B)
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
#os siguientes cuatro predicados mint9rmino se definen de acuerdo a PrO:
m1 : )atr B )alorL1, )atr B )alorL2,
m2 : )atr B )alorL1,

)atr B )alorL2,
m1 :

)atr B )alorL1,

)atr B )alorL2,
m2 :

)atr B )alorL1,

)atr B )alorL2,
En este caso los predicado mint9rmino m1 y m2 resultan contradictorios respecto a las
implicaciones 0 y pueden eliminarse de ;"
El algoritmo de fragmentacin ori!ontal primaria se presenta a continuacin" #a entrada al
algoritmo +-;JV-K4=#P.20 es una relacin Ri su$eta a la fragmentacin, y Pri, es decir, el
con$unto de predicados simples que se establecieron de acuerdo a las aplicaciones definidas
sobre la relacin Ri"
Fragmentacin 9orizontal deri!ada.
?na fragmentacin ori!ontal derivada se define sobre una relacin miembro de acuerdo a una
operacin de seleccin especificada sobre su propietaria" Se deben de$ar claros dos puntos"
Primero, el enlace entre las relaciones propietaria y miembro se define como un equiAyunto"
Segundo, un equiAyunto puede desarrollarse a trav9s de semiyuntos" Este segundo punto es
especialmente importante para nuestros propsitos, ya que deseamos fraccionar una relacin
miembro seg>n la fragmentacin de su propietaria, adem&s es necesario que el fragmento
resultante se defina >nicamente sobre los atributos de la relacin miembro" Por tanto, dado un
enlace L donde propietaria)L, B % y miem(ro)L, B R, los fragmentos ori!ontales derivados de
R se definen como
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Algoritmo 3&'I4&-(A%*
entrada:
1i: relacin
:ri: con'unto de predicados simples
salida:
Mi: con'unto de fragmentos mintErmino
inicio
:rF3DMHM6B(1i :ri"
determinar el con'unto Mi de predicados mintErmino;
determinar el con'unto de 6i de implicaciones de pi :rFi;
para cada mi Mi &acer
si mi es contradictorio respecto a 6 entonces
MiMi+mi
fin-si
fin-para
fin/ {ID16<DB@A;:)
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
M i %i R Ri 2 ,
donde M es el n>mero m&'imo de fragmentos que se definir&n sobre R, y %i B _Fi)%,, donde Fi es
la frmula seg>n la cual se define el fragmento ori!ontal primario %i"
#jemplo 7. Considere un enla&e L1 entre las rela&iones P;-*JK3 , 3#JEK4ES de la (ase de
datos ue )enimos utili8ando para los ejemplos, donde propietaria)L1, = P;-*JK3 ,
miem(ro)L1, = 3#JEK4ES. %upongamos ue ueremos di)idir a nuestro grupo de &lientes en
+un&i'n de la &omunidad aut'noma donde se en&uentran situados. #nton&es podemos de+inir
&uatro +ragmentos de la siguiente +ormaD
N N
@ @
/ /
2 2
PRI-0/C CL0#/?#% CL0#/?#%
PRI-0/C CL0#/?#% CL0#/?#%
PRI-0/C CL0#/?#% CL0#/?#%
PRI-0/C CL0#/?#% CL0#/?#%

donde
, )
, )
, )
, )
Y Y
N
Y Y
@
Y Y
/
Y Y
2
PRI-0/C PRI-0/C
PRI-0/C PRI-0/C
PRI-0/C PRI-0/C
PRI-0/C PRI-0/C
;". CCI.HI/"
C"? CCI.HI/"
CL; CCI.HI/"
CPL CCI.HI/"

#l resultado de esta +ragmenta&i'n puede )erlo pulsando au<.


#as tres entradas necesarias para desarrollar la fragmentacin ori!ontal derivada son las
siguientes: el con$unto de particiones de la relacin propietaria, la relacin miembro y el
con$unto se predicados resultados de aplicar el semiAyunto entre la propietaria y la miembro" El
algoritmo de fragmentacin resulta tan trivial que no se ve la necesidad de entrar en detalles"
E'iste una posible complicacin que necesita nuestro estudio" En un esquema de base de datos,
resulta frecuente que e'istan m&s de dos enlaces sobre una relacin ;" En este caso, aparece m&s
de una posibilidad de fragmentacin ori!ontal derivada" #a decisin para elegir una u otra se
basa en dos criterios: ?no, la fragmentacin con me$ores caracter%sticas de yunto" Dos, la
fragmentacin empleada en m&s aplicaciones"
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
Discutamos el segundo criterio primero" ;esulta sencillo de establecer si tomamos en
consideracin la frecuencia con la que cada aplicacin accede a los datos" Si es posible,
deber%amos intentar facilitar el acceso a los usuarios que agan mayor uso de los datos para, de
esta manera, minimi!ar el impacto total del rendimiento del sistema"
Figura 2. (rafo de ;untos entre fragmentos.
El primer criterio, sin embargo, no es tan sencillo" 3onsidere, por e$emplo, la fragmentacin
e'puesta en el e$emplo H" El ob$etivo de esta fragmentacin consiste en beneficiar a la consulta
que aga uso de las dos relaciones al poder reali!arse el yunto de 3#JEK4ES y P;-*JK3 sobre
relaciones m&s pequeas )es decir, fragmentos,, y posibilitar la confeccin de yuntos de manera
distribuida" El primer aspecto resulta obvio" #os fragmentos de 3#JEK4ES son m&s pequeos
que la propia relacin 3#JEK4ES" Por tanto, resultar& m&s r&pido llevar a cabo el yunto de un
fragmento de P;-*JK3 con otro de 3#JEK4ES que traba$ar con las propias relaciones" El
segundo punto, sin embargo, es m&s importante ya que es la esencia de las bases de datos
distribuidas" Si, adem&s de estar e$ecutando un n>mero de consultas en diferentes sitios,
podemos e$ecutar una consulta en paralelo, se espera que el tiempo de respuesta del sistema
aumente" En el caso de yuntos, esto es posible ba$o ciertas circunstancias" 3onsidere, por
e$emplo, el grafo de yunto )los enlaces, entre los fragmentos de 3#JEK4ES y la derivada
P;-*JK3" +ay >nicamente un enlace entrando o saliendo de un fragmento" De a%, que se
denomine a este grafo, grafo simple" #a venta$a de este diseo donde la relacin de yunto entre
los fragmentos es simple, radica en la asignacin a un sitio tanto de la propietaria como de la
miembro y los yuntos entre pares diferentes de fragmentos pueden reali!arse
independientemente y en paralelo" Desgraciadamente, la obtencin de grafos de yunto simples
no siempre es posible" En tal caso, la me$or alternativa ser%a reali!ar un diseo que provoque un
grafo de yuntos fragmentados" ?n grafo fragmentado consiste en dos o m&s subgrafos que no
est&n enla!ados entre ellos" Por tanto, los fragmentos que se obtengan no se distribuir&n para
e$ecuciones paralelas de un modo tan f&cil como aquellos obtenidos a trav9s de grafos simples,
pero su asignacin a>n ser& posible"
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
P;-*JK3
2
P;-*JK3
/
P;-*JK3
@
P;-*JK3
N
3#JEK4E
2
3#JEK4E
/
3#JEK4E
@
3#JEK4E
N
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
#jemplo F. Continuaremos &on el diseNo de la distri(u&i'n para la (ase de datos ini&iado en el
ejemplo relati)o a la +ragmenta&i'n *ori8ontal primaria. #n el ejemplo anterior, n3mero 7, ,a
se de&idi' +ragmentar la rela&i'n 3#JEK4ES de a&uerdo a los +ragmentos generados para
P;-*JK3. "*ora )amos a +ragmentar la rela&i'n =#B3#J4. Consideremos ue e:isten dos
apli&a&ionesD
2" Por un lado, se desean o(tener los &'digos de los &lientes a los ue se e:pidieron
al(aranes en +un&i'n del aNo de di&*a e:pedi&i'n.
/" Por otra parte, se desea o(tener el n3mero de al(arEn e:pedido a los &lientes en
+un&i'n de la situa&i'n geogrE+i&a de los mismos.
Para la primera apli&a&i'n la rela&i'n =#B3#J4 se +ragmentarE a partir de los +ragmentos ue
se o(tu)ieron anteriormente para la rela&i'n =#B3#J#. Re&uerde ue
=#B3#J#2 : KK?M=#B EECCCC )=#B3#J#,
=#B3#J#/ : KK?M=#B [ EECCCC )=#B3#J#,
#nton&es, la +ragmenta&i'n deri)ada de =#B3#J4 a&orde &on F=#B3#J#2, =#B3#J#/G se
de+ine &omo
/ /
2 2
"LBCL0? "LBCL0? "LBCL0?
"LBCL0? "LBCL0? "LBCL0?

La segunda apli&a&i'n podr<a de+inirse en %QL &omo


SE#E34 KK?M=#B (;-M =#B3#J4, 3#JEK4ESi L+E;E
=#B3#J4"33-D3#J B 3#JEK4ESi"33-D3#J
donde i = 1, 2, 1, 2, dependiendo del sitio al ue se dirija la &onsulta. #nton&es, la
+ragmenta&i'n deri)ada de =#B3#J4 de a&uerdo &on la +ragmenta&i'n de 3#JEK4ES ser<a
N N
@ @
/ /
2 2
CL0#/?#% "LBCL0? "LBCL0?
CL0#/?#% "LBCL0? "LBCL0?
CL0#/?#% "LBCL0? "LBCL0?
CL0#/?#% "LBCL0? "LBCL0?

Este e$emplo demuestra dos cosas:


2" #a fragmentacin derivada debe seguir una cadena donde una relacin se fragmenta
como resultado del diseo de otra y, en cambio, provoca la fragmentacin de otra
relacin" Por e$emplo, la cadena P;-*JK3A3#JEK4ESA=#B3#J4"
/" Kormalmente, e'istir& m&s de una forma de fragmentar una relacin )como en este caso
la relacin =#B3#J4," #a eleccin final del esquema de fragmentacin ser& una
decisin guiada por la asignacin"
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
#os fragmentos resultantes se mostrar&n si pulsa aqu%" Se abr& percatado de la ausencia de los
fragmentos =#B3#J4/ y =#B3#J4@" Este eco se debe a que no e'isten tuplas en =#B3#J4
que puedan derivarse de los fragmentos / y @ de la relacin 3#JEK4ES" Dico con otras
palabras, no ay albaranes e'pedidos a clientes residentes en 3astilla : #a Manca y 3atalua"
Por tanto, al reali!ar una fragmentacin ori!ontal derivada pueden aparecer fragmentos vac%os"
%omprobacin de la correccin.
Procederemos aora a probar la correccin de los algoritmos presentados con respecto a los tres
criterios enunciados p&ginas atr&s"
2" 3omplecin " #a complecin de una fragmentacin ori!ontal primaria se basa en la
seleccin de los predicados a usar" En la medida que los predicados seleccionados sean
completos, se garanti!ar& que el resultado de la fragmentacin tambi9n lo ser&"
Partiendo de la base que el algoritmo de fragmentacin es un con$unto de predicados
completos y m%nimos PrO, se garanti!a la complecin siempre que no apare!can errores
al reali!ar la definicin de PrO" #a complecin de una fragmentacin ori!ontal derivada
es algo m&s dif%cil de definir" #a dificultad viene dada por el eco de que los
predicados que intervienen en la fragmentacin forman parte de dos relaciones"
Definamos la regla de complecin formalmente" Sea R la relacin miembro de un
enlace cuya propietaria es la relacin %, la cual est& fragmentada como F% B F%1, %2, ...,
%MG" =dem&s, sea " el atributo de yunto entre R y %" Entonces para cada tupla t de R,
e'istir& una tupla tO de % tal que t."0 B tO."0"
/" ;econstruccin " #a reconstruccin de una relacin global a partir de sus fragmentos se
desarrolla con el operador de unin tanto para la fragmentacin ori!ontal primaria
como para la derivada" Por tanto, para una relacin R fragmentada en FR B FR1, R2, ...,
RMG,

R i i F R R R ,
@" Disyuncin " ;esulta sencillo establecer la disyuncin de la fragmentacin tanto para la
primaria como para la derivada" En el primer caso, la disyuncin se garanti!a en la
medida en que los predicados mint9rmino que determinan la fragmentacin son
mutuamente e'clusivos" En la fragmentacin derivada, sin embargo, implica un semiA
yunto que aade comple$idad al asunto" #a disyuncin puede garanti!arse si el grafo de
yunto es simple" Si no es simple, ser& necesario investigar los valores de las tuplas" En
general, no se desea $untar una tupla de una relacin miembro con dos o m&s tuplas de
una relacin propietaria cuando estas tuplas se encuentran en fragmentos diferentes a
los de la propietaria" Esto no es f&cil de establecer, e ilustra por qu9 los esquemas de la
fragmentacin derivada que generan un grafo de yunto simple son siempre m&s
atractivos"
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
F)A(#E.TA%-/. #-<TA
En mucos casos la fragmentacin vertical u ori!ontal del esquema de la base de datos
no ser& suficiente para satisfacer los requisitos de las aplicaciones" 3omo ya se cit al
comien!o de este documento podemos combinar ambas, utili!ando por ello la
denominada fragmentacin mi'ta" 3uando al proceso de fragmentacin vertical le sigue
una ori!ontal, es decir, se fragmentan ori!ontalmente los fragmentos verticales
resultantes, se abla de la fragmentacin mi'ta +*" En el caso contrario, estaremos
ante una fragmentacin *+" ?na caracter%stica com>n a ambas es la generacin de
&rboles que representan la estructura de fragmentacin )vea la figura D,"
3onsidere, por e$emplo, la relacin P;-*JK3" ;ecordar& que se le aplic una
fragmentacin ori!ontal de acuerdo al valor del atributo 33-DV-K= resultando
cuatro fragmentos ori!ontales" Podr%amos pensar en aplicarle una nueva fragmentacin
de car&cter vertical" Entonces resultar%an cuatro fragmentos ori!ontales divididos, por
e$emplo, en dos fragmentos verticales" En este caso el n>mero total de fragmentos
ascender%a, lgicamente, a oco"
(igura D" Estructura arbrea de fragmentacin mi'ta
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
;
+ + + +
;22 ;2/ ;/2 ;// ;@2 ;@/ ;N2 ;N/
;2 ;/ ;@ ;N
* * * * * * * *
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
Ko se desea entrar en e'cesivos detalles sobre las reglas y condiciones para efectuar la
fragmentacin mi'ta" Entre otras ra!ones porque, tanto a la fragmentacin +* como la
fragmentacin *+, se le pueden aplicar los mismos criterios y reglas que a la
fragmentacin ori!ontal y vertical" Es decir, volviendo al e$emplo anterior, al cual le
practicamos la fragmentacin +*, al reali!ar la fragmentacin ori!ontal tal como se a
e'puesto, lo que se obtienen no son m&s que subrelaciones, la unin de las cuales da
lugar a la relacin P;-*JK3" Por tanto, para fragmentar cada subrelacin ser%a
perfectamente viable aplicarle el m9todo de fragmentacin vertical que se a
desarrollado" 3omo, en este caso, se an querido generar dos fragmentos verticales por
cada uno ori!ontal, simplemente deber%amos confeccionar la matri! de grupos afines
)a trav9s del algoritmo B#", para cada fragmento ori!ontal y aplicarle,
posteriormente, el algoritmo de fragmentacin binaria P=;4J3JWK"
4ambi9n debe tenerse en cuenta el n>mero de niveles arbreos que se generen, es decir,
nadie impide que tras reali!ar una fragmentacin *+, podamos aplicar a los fragmentos
resultantes una nueva fragmentacin vertical, y a estos >ltimos una nueva
fragmentacin ori!ontal, etc"
Dico n>mero puede ser grande, pero tambi9n ser& ciertamente finito" En el caso
ori!ontal, el nivel m&'imo de profundidad se alcan!ar& cuando cada fragmento
albergue una >nica tupla, mientras que en el caso vertical el final llegar& cuando cada
fragmento contenga un >nico atributo" Sin embargo, aunque no deba tomarse como
dogma, el n>mero de niveles no deber%a superar el par )*+ y +*," El porqu9 de esta
afirmacin es bien sencillo, piense, por e$emplo, en el coste que supondr%a reali!ar la
unin o el yunto de una relacin con fragmentacin nivel X"
Evidentemente, el coste ser%a muy elevado y ese aumento de rendimiento que se
persigue al aplicar estas t9cnicas, qui!&s, no se produ!ca"
=ntes de pasar a estudiar el problema de la asignacin se desea comentar la t9cnica de
fragmentacin mi'ta basada en celdas ./0" Esta t9cnica se basa en la generacin de
celdas de re$illa" `u9 es una celda de re$illa, podr%amos definirla como un fragmento
ori!ontal y vertical simult&neo" #a t9cnica aplica un algoritmo de fragmentacin
vertical y otro ori!ontal de manera concurrente sobre la relacin" #os algoritmos
reali!an una fragmentacin m&'ima, es decir, se persigue que en cada celda >nicamente
aya un atributo y una tupla" `ui!& el lector pueda encontrar el m9todo contradictorio
con lo citado anteriormente respecto a la eficiencia, dada la gran cantidad de
fragmentos generados, el n>mero es, efectivamente, el m&'imo" Sin embargo, este slo
es el primer paso del proceso" ?na ve! generadas las celdas se aplica un m9todo para
optimi!ar la re$illa mediante fusin o desfragmentacin, de acuerdo, fundamentalmente,
a las aplicaciones que act>en sobre esos fragmentos"
El m9todo, por tanto, persigue una fragmentacin los m&s espec%fica posible acorde con
las aplicaciones y los sitios e'istentes en la red"
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
A&-(.A%-$.
Definicin del problema.
Sean un con$unto de fragmentos F B FF1, F2, ..., FnG y una red formada por el con$unto
de sitios % B F%1, %2, ..., %mG en la cual un con$unto de aplicaciones Q B F1, 2, ..., G
se e$ecutan" El problema de la asignacin implica encontrar la distribucin ptima de F
sobre %"
?no de los problemas m&s importantes que necesita discusin es el significado de
distribucin ptima" #a distribucin ptima puede definirse con respecto a dos medidas:
2" 3oste m%nimo " #a funcin de coste consiste en el coste de almacenamiento de
cada Fi en un sitio %j, el coste de practicar una consulta en Fi en el sitio %j, el
coste de actuali!ar Fi en todos los sitios donde se almacene y el coste de las
comunicaciones de datos" El problema de la asignacin, entonces, intenta
encontrar un esquema de asignacin tal que minimice esta funcin de coste
combinado"
/" ;endimiento " #a estrategia de asignacin se disea para mantener una medida
del rendimiento" Dos medidas abituales de este rendimiento son el tiempo de
respuesta y la salida del sistema en cada sitio" Evidentemente, se debe intentar
minimi!ar la primera y ma'imi!ar la segunda"
Se an propuesto modelos de asignacin que enfocan el concepto de distribucin
ptima desde diferentes puntos de vista" Sin embargo, no resulta descabellado pensar en
la inclusin, tanto del rendimiento como de los factores de coste, dentro del concepto"
En otras palabras, deber%amos buscar un esquema de asignacin tal que, por e$emplo, la
respuesta a las consultas de los usuarios se reali!ase en el menor tiempo posible
mientras que el coste de procesamiento fuese m%nimo" ?na afirmacin similar podr%a
acerse respecto a la ma'imi!acin de la salida del sistema"
3onsideremos aora una formulacin del problema muy simple" Definamos F y % como
se i!o anteriormente" Por el momento, consideraremos >nicamente un fragmento
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
sencillo, Fk" Daremos un n>mero de definiciones que nos permitan modelar el
problema de la asignacin"
2" =sumiremos que Q puede modificarse de tal manera que sea posible
identificar las consultas de actuali!acin de las de lectura, y definiremos lo
siguiente para ese fragmento simple Fk:
{ } m t t t ? ,""", , / 2
donde ti es el tr&fico de lectura que se genera en el sitio %i para Fk, y
{ } m u u u Q ,""", , / 2
donde ui es el tr&fico de actuali!acin que se genera en el sitio %i para Fk"
/" =sumiremos que el coste de comunicaciones entre un par de sitios %i y %j es
fi$o para una unidad de transmisin" =dem&s, asumiremos que 9ste es diferente
para actuali!aciones y para lecturas, por lo que definimos:
{ }
{ } m m m
m m m
C C C C C ? C
C C C C C ? C
Q , Q ,""" Q ,""", Q , Q , Q)
, ,""", ,""", , , )
2 2 2@ 2/
2 2 2@ 2/

donde &ij es el coste de la unidad de comunicacin para las peticiones de


lectura entre los sitios %i y %j y &Oij es el coste de la unidad de comunicacin
para las peticiones de lectura entre los sitios %i y %j"
@" Sea di el coste de almacenar el fragmento en el sitio %i" Entonces definimos .
B Fd1, d2, ..., dmG como el coste de almacenar Fk en todos los sitios"
N" =sumiremos que no e'isten restricciones de capacidad en los sitios o en los
enlaces de comunicaciones"
Entonces el problema de asignacin puede especificarse como un problema de
minimi!acin de costes por el cual se intenta encontrar el con$unto 0 % que
especifique el lugar donde an de ubicarse las copias de los fragmentos" #a e'presin
matem&tica ace uso de la variable de decisin para la ubicacin :j es,
:j B 2 si el fragmento Fk se asigna al sitio %j:j B C en otro caso
entonces, definida :j,
1
1
]
1

,
_

+



m
i i s j
j j
i s j
ij j ij j j
j j
i sj j
d : & t & u :
M 2 M M
m%n Q m%n
M
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
El segundo t9rmino de la funcin calcula el coste total de almacenar todas las copias
duplicadas del fragmento" El primer t9rmino corresponde al coste de transmisin de las
actuali!aciones a todos los sitios que mantienen r9plicas de un fragmento y al coste de
e$ecucin de las peticiones de lectura en el sitio, lo cual resultar& un coste m%nimo de
transmisin de datos"
Esta es una formulacin muy simple que no es v&lida para el diseo de bases de datos
distribuidas" Pero en el caso que lo fuera, e'istir%a un problema" Para un gran n>mero de
fragmentos y de sitios, obtener soluciones ptimas resultar%a probablemente totalmente
inviable" #as investigaciones, por tanto, deben girar en torno a la b>squeda de buenos
eur%sticos que proporciones soluciones parcialmente ptimas"
+ay un n>mero de ra!ones del porqu9 de formulaciones tan simples que no sirven para
el diseo de bases de datos distribuidas" <eneralmente, se eredan de los modelos de
asignacin de arcivos para redes, pero
2" Ko se pueden tratar los fragmentos como arcivos individuales que se asignen
aisladamente" #a ubicacin de un fragmento generalmente tiene influencia
sobre las decisiones de asignacin de los otros fragmentos, a los cuales se
acceden a la ve!, puesto que el coste de acceso de los fragmentos restantes
puede variar" Por tanto, las relaciones entre fragmentos deben tenerse en
consideracin"
/" El acceso de las aplicaciones a los datos se modela muy sencillamente" ?na
peticin de usuario se resuelve en un sitio y todos los datos necesarios se
transfieren a ese sitio" En los sistemas de bases de datos distribuidos, el acceso
a los datos es m&s complicado que el simple acceso a arcivos remotos" Por
tanto, la relacin entre la asignacin y el procesamiento de consultas deber%a
tambi9n tenerse en cuenta"
@" Estos modelos no tienen en cuenta el coste de mantenimiento de la integridad,
a>n locali!ando dos fragmentos implicados con las mismas restricciones de
integridad en dos sitios diferentes podr%a resultar costoso dico
mantenimiento"
N" Jgualmente, el coste derivado del control de concurrencia deber%a tenerse en
cuenta"
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
En resumen, debemos distinguir entre el problema tradicional de asignacin de arcivos
de la asignacin de fragmentos en los sistemas de bases de datos distribuidos" Ko
e'isten modelos eur%sticos generales que tomen como entrada un con$unto de
fragmentos y produ!can una asignacin cercana a lo ptimo que adem&s est9
influenciada por los tipos de restricciones descritas antes" #os modelos desarrollados
reali!an una serie de simples suposiciones y pueden aplicarse a ciertas formulaciones
espec%ficas" Por tanto, presentaremos un modelo general y discutiremos una serie de
posibles eur%sticos que puedan emplearse para resolver el problema" Posteriormente,
describiremos un algoritmo concreto de asignacin"
Informacin necesaria.
En esta etapa de la asignacin, necesitaremos datos cuantitativos sobre la base de datos,
las aplicaciones que funcionan sobre ella, la red de comunicaciones, las caracter%sticas
de proceso, y el l%mite de almacenamiento de cada sitio de la red" Procederemos a
discutirlos en detalle"
Jnformacin de la base de datos" Para desarrollar la fragmentacin ori!ontal, definimos
la selectividad de los mint9rminos" =ora, necesitamos e'tender esta definicin a los
fragmentos y definir la selectividad de un fragmento Fj con respecto a una consulta i"
Es el n>mero de tuplas de Fj a las que se necesita acceder para procesar i" Este valor lo
notaremos como seli)Fj," -tro elemento informativo de los fragmentos de la base de
datos es su tamao" El tamao de un fragmento Fj viene dado por tamaNo)Fj, B
&ard)Fj,Ulong)Fj,, donde long)($, es la longitud )en octetos, de una tupla del fragmento
($"
0n+orma&i'n de las apli&a&iones" Muca de la informacin relativa a las aplicaciones se
recoge durante el proceso de fragmentacin, pero se necesita un poco m&s para el
modelo de asignacin" #as dos medidas m&s importantes son el n>mero de accesos de
lectura que una consulta qi reali!a sobre un fragmento Fj durante su e$ecucin )llamada
RRij,, y el n>mero de accesos de actuali!acin que una consulta i reali!a sobre un
fragmento Fj durante su e$ecucin )llamada QRij," 4ambi9n necesitamos definir dos
matrices Q; y R;, con elementos uij y rij, respectivamente, que se especifican como
sigue:
uij B 2 si la consulta i actuali!a el fragmento Fj uij B C en otro caso
rij B 2 si la consulta i lee del fragmento Fj rij B C en otro caso
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
4ambi9n debe definirse un vector I de valores o)i,, donde o)i, especifica el sitio origen
de la consulta i" (inalmente, especificaremos las restricciones impuestas por el tiempo
de respuesta, asignando a cada aplicacin el m&'imo tiempo de respuesta permitido"
0n+orma&i'n de los sitios" Sobre cada ordenador necesitamos conocer sus capacidades
de procesamiento y almacenamiento" -bviamente, estos valores pueden calcularse a
trav9s de funciones elaboradas o por simples estimaciones" #a unidad de coste de
almacenar datos en el sitio %k ser& denotada como QC"k" =s% mismo, especificaremos
como medida de coste QP?k al coste de procesar una unidad de traba$o en el sitio %k"
#a unidad de traba$o deber%a ser id9ntica a aquella utili!ada en las medidas RR y QR"
0n+orma&i'n so(re la red" En nuestro modelo asumiremos la e'istencia de una red
simple donde el coste de comunicaciones se define respecto a una trama de datos"
Entonces gij nota el coste de comunicacin por trama entre los sitios %i y %j" Para
permitir el c&lculo del n>mero de mensa$es, usaremos +tamaNo como el tamao )en
octetos, de una trama" Es evidente que e'isten modelos de red muco m&s elaborados
que toman en cuenta las capacidades del canal, las distancias entre sitios, las
caracter%sticas del protocolo, etc" Sin embargo, se cree que la derivacin de estas
ecuaciones se sale fuera de este documento"
Modelo de asignacin.
Discutiremos un modelo de asignacin que intente minimi!ar el coste total de
procesamiento y almacenamiento a la ve! que intenta reunir ciertas restricciones en el
tiempo de respuesta" El modelo que emplearemos tiene la forma m<n)Coste ?otal,, la
cual est& su$eta a restricciones del tiempo de respuesta, restricciones de almacenamiento
y restricciones de procesamiento"
En el resto de este punto desarrollaremos los componentes de este modelo bas&ndonos
en la informacin necesaria presentada anteriormente" #a variable de decisin es :ij, la
cual se define como
:ij B 2 si el fragmento Fi se almacena en el sitio %j
:ij B C en otro caso
Coste total" #a funcin de coste total tiene dos componentes: el procesamiento de la
consulta y el almacenamiento" Entonces podr%amos e'presarla como


+
F F
jk
% % Q
i
j k i
C"F CPQ C?I
donde CPQi es el coste de procesar una consulta de la aplicacin i, y C"Fjk es el coste
de almacenar el fragmento Fj en el sitio %k"
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
3onsideremos primero el coste de almacenamiento" Su frmula viene dada por
jk j k jk : F tamaNo QC" C"F U , ) U
donde se representa el coste total de almacenamiento en todos los sitios y para todos los
fragmentos"
El coste de procesamiento de consultas es m&s dif%cil de especificar" Mucos modelos
de asignacin de arcivos se dividen en dos componentes: el coste de procesar las
lecturas y el coste de procesar las actuali!aciones" Kosotros escogeremos un enfoque
diferente para el problema de asignacin en las bases de datos y lo especificaremos a
partir del coste de procesamiento )CP, y el coste de transmisin )C?," El coste de
procesamiento de una consulta )CPQ, para una aplicacin i es
i i i C? CP CPQ +
De acuerdo con las l%neas presentadas anteriormente, el componente de procesamiento
CP se basa en tres factores: el coste de acceso )C",, el coste de mantenimiento de la
integridad );0, y el coste de control de la concurrencia )CC,:
i i i i CC ;0 C" CP + +
#a especificacin detallada de cada uno de estos factores depende del algoritmo que se
emplee para desarrollar estas tareas" Sin embargo, se especificar& C" detalladamente:
( )


+
F F
k jk ij ij ij ij
% %
i
j k
QP? : RR r QR u C"
El primero de los t9rminos de la frmula calcula el n>mero de accesos de la consulta i
al fragmento Fj" =dvierta que )QRij R RRij, da el n>mero total de accesos de lectura y
actuali!acin" =sumiremos que los costes locales de procesamiento de ambos son
id9nticos" El sumatorio proporciona el n>mero total de accesos para todos los
fragmentos a los que accede i" El producto por QP?k da el coste de este acceso al sitio
%k" ?samos de nuevo, :jk para seleccionar >nicamente los valores de coste para los
sitios donde se almacenan los fragmentos"
Se debe tener en cuenta que la funcin de coste de acceso asume que el procesamiento
de una consulta implica su descomposicin en una serie de subconsultas, cada una de
las cuales traba$a sobre un fragmento almacenado en un sitio, seguido de una
transmisin de los resultados al sitio del cual parti la consulta" Se vio, anteriormente,
que es un enfoque muy simplista no tener en cuenta la comple$idad del procesamiento
de la base de datos" Por e$emplo, la funcin de coste no tiene en cuenta el coste de
desarrollar yuntos )si fuese necesario,, lo cual puede e$ecutarse de varias formas" En un
modelo m&s realista, que el modelo gen9rico considerado, esto problemas no deber%an
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
omitirse"
El factor de coste del esfuer!o de integridad puede especificarse como el componente
de procesamiento, e'cepto que la unidad de coste de procesamiento local,
probablemente, cambiar%a para refle$ar el coste real del esfuer!o de integridad"
#a funcin del coste de transmisin puede formularse sobre las l%neas de la funcin del
coste de acceso" Sin embargo, los gastos de la transmisin de datos para actuali!aciones
y para lecturas no es el mismo" En las consultas de actuali!acin, es necesario informar
a todos los sitios donde e'isten r9plicas, mientras que en las consultas de lectura, es
suficiente con acceder al sitio que alberga las copias" En suma, al final de una peticin
de actuali!acin, no e'iste una transmisin de datos al sitio origen de 9sta, sino un
mensa$e de confirmacin, mientras que en las consultas de lectura, los datos a transmitir
al origen son significativos"
El componente de actuali!acin de la funcin de transmisin es
g
: u
g
: u
i o k
jk
F F
ij
% %
k i o
jk
F F
ij
% %
i
j k j k
C?"
, ) , ,, )
U U U U


+
El primer t9rmino es para el env%o del mensa$e de actuali!acin de i desde el sitio
origen o)i, a todas las r9plicas de los fragmentos que necesiten actuali!arse" El segundo
t9rmino ace referencia a la confirmacin" El coste de lectura puede especificarse como

,
_

+

g
:
g
: u
i o k
tamaNo
j i
jk
ij
k i o
jk ij
% %k % %
i
+
F sel
r C?L
k
, ) , ,, )
, )
U U U
m%n
El primer t9rmino de C?L representa el coste de transmitir la peticin de lectura a los
sitios que contienen copias de los fragmentos a los que se necesita acceder" El segundo
t9rmino cuenta para la transmisin de los resultados desde estos sitios al sitio origen" #a
ecuacin afirma que para todos los sitios con copias del mismo fragmento, slo el sitio
que produ!ca el coste total de transmisin m&s pequeo deber%a seleccionarse para la
e$ecucin de la operacin"
=ora, la funcin del coste de la transmisin para la consulta qi puede especificarse
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
como
i i i C?L C?" C? +
que indica la funcin de coste total"
Restri&&iones" #as funciones restrictivas pueden especificarse de forma similar" Sin
embargo, en lugar de describir estas funciones con detalle, simplemente indicaremos el
aspecto que deber%an tener" El tiempo de respuesta deber%a especificarse como tiempo
de e$ecucin de im&'imo tiempo de respuesta de i, i Q
Preferiblemente, la medida de coste en la funcin ob$etiva deber%a especificarse en
t9rminos de tiempo, para acer la especificacin del tiempo de e$ecucin relativamente
sencilla"
#a restriccin de almacenamiento es
% % % de ento alma&enami de &apa&idad R"L k k
F F
jk
j


,
=s% misma, la restriccin de procesamiento es


%k sitio el en de nto pro&esamie de a &
Q
i
i
arg
% %k
%
de pro&eso de &apa&idad
k
2
Esto completa el desarrollo del modelo de asignacin"
Desarrollo prctico.
*amos a presentar aora dos alternativas pr&cticas de desarrollo de la asignacin" ?na
primera consistir%a en el c&lculo de todos los costes y, a partir de sus resultados y con el
me$or esquema de particin determinado por el E'aminador de Particiones, decidir los
fragmentos que deber%an asignarse a cada sitio" Este m9todo manual evidentemente
implica la reali!acin de mucos c&lculos muy engorrosos, y deber%amos partir de una
serie de datos que no siempre es f&cil obtener" ?na segunda alternativa, es el uso de
alg>n algoritmo de asignacin desarrollado a partir de los distintos par&metros del
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
modelo de asignacin" E'isten varios de estos algoritmos, pero se a decidido e'poner
el algoritmo divide y vencer&s .X0 porque ace uso del esquema de fragmentacin que
genera el algoritmo de fragmentacin nAformas presentado en la correspondiente
seccin"
#*todo de asignacin =di!ide ; !encer>s=.
Partiremos del con$unto de esquemas de asignacin que produce el algoritmo KA
(-;M=S" ?n aspecto importante de este algoritmo es que, como ya se coment,
produce esquemas de fragmentacin $er&rquicos, es decir, partiendo de k fragmentos
obtiene kB1 fragmentos para el siguiente esquema"
Seguidamente, describiremos el funcionamiento del algoritmo" En la primera parte del
mismo )antes del primer bucle para,, se intenta encontrar la me$or asignacin del
fragmento >nico )el esquema n>mero 2, y el coste de esta operacin" ?na ve! que se
tiene el fragmento en el me$or sitio, se calcula el coste de mantenerlo en este sitio
invocando a la funcin CosteConsulta" ?na llamada a esta funcin devuelve el coste
para una determinada consulta basada en su plan de e$ecucin"
#a segunda parte del algoritmo va desde el paso / asta el final del mismo" Dado un
esquema de fragmentacin, esta parte calcula el me$or coste de mover los dos nuevos
fragmentos a los diferentes sitios de la red, de$ando el resto de los fragmentos quietos
en los sitios que se determinaron me$ores para ellos" Se repite el bucle para del paso /
para todos los esquemas de fragmentacin de tal manera que el algoritmo termina
proporcionando el me$or esquema de particin y los sitios en donde se deber%a ubicar
cada fragmento" =dvierta que este algoritmo lleva impl%cita la tarea reali!ada por el
E'aminador de Particiones, por lo que no es necesario emplearlo en este enfoque" Por
>ltimo, se desea sealar que la comple$idad del algoritmo es de I)ns
2
:, donde n, s y
son el n>mero de fragmentos, sitios y consultas, respectivamente, y I):, el coste de
llamar a la funcin CosteConsulta"
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
= lo largo de este documento se a intentado dar una visin global y gen9rica de los problemas y
caracter%sticas que contiene el diseo de una base de datos distribuida" Se a eco especial
incapi9 en las t9cnicas de fragmentacin ori!ontal y vertical a trav9s de m9todos y algoritmos
muy frecuentes en la literatura referida al tema" Se espera que el lector no aya tenido
demasiados problemas para su comprensin, las t9cnicas son sencillas y se a procurado incluir
distintos e$emplos para facilitar el entendimiento" Jgualmente, la puesta en pr&ctica de los
algoritmos, es decir, su codificacin, no es un proceso complicado si se poseen nociones en el
desarrollo de algoritmos" Piense, por e$emplo, que los dos algoritmos de particin vertical
presentados, no acen m&s que manipular matrices"
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Algoritmo de ASIG-A+I,--)56
Entrada:
EE2n: esquema de 2ragmentacin
{cada EE2i es un esquema de fragmentacin)
{cada :i es un par fragmento . sitio para el esquema de fragmentacin actual i)
{EE2! es el /nico esquema de fragmentacin que contiene un /nico fragmento con todos
los atri(utos)
declarar
:r : el me'or lugar de u(icacin del esquema EE2r resultado de mo,erlo como un /nico
elemento alrededor de toda la red;
me'orcoste: el coste de u(icar :r
inicio
esquema!
i#
para cada fragmento de EE2i hacer
inicio
sean c' C cG dos nue,os grupos de fragmentos BG2i;
:i:i+r .{(c' cG" 4((c' cG"")
{costec'cG es el coste de mo,er /nicamente dos nue,os grupos de fragmentos
alrededor de la red manteniendo el resto de grupos de fragmentos fi'os en sus
me'ores sitios calculado en interacciones pre,ias)
costec'cG
para cada posi(le s' del grupo c' hacer
para cada posi(le sG del grupo cG hacer
inicio
{:i a&ora contiene la u(icacin de cada grupo de fragmentos
en EE2 excepto los dos nue,os grupos c' C cG)
zsuma para toda consulta q de costeconsulta(q :i{(c's'"
(cGsG")D59";
si zJcostec'cG entonces
inicio
costec'cGz
s'me'ors'
sGme'orsG
fin-si
fin-para
:i:i{(c's'me'or"(cGsGme'or")
si costec'cGJme'orcoste entonces
inicio
me'orcostecostec'cG
{el EE2 actual i de(e ser el me'or que conduzca al menor
coste de procesamiento de la consulta)
esquemai
fin-si
ii?!
fin-para
fin0 {A46GBA36A+9KL)
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
4ambi9n deber%a tenerse presente la e'istencia de enfoques de fragmentacin distintos y,
posiblemente, m&s comple$os, pero se debe pensar que m&s eficientes" Sean, por e$emplo, las
t9cnicas de fragmentacin vertical basadas en grafos, como el algoritmo de Kavate y ;a que
genera en un solo paso fragmentos verticales" =dem&s, est&n apareciendo m9todos de
fragmentacin mi'ta como el que se a comentado" Si bien, estos m9todos son enfoques
formales m&s que pr&cticos, desarrollados por insignes investigadores en universidades, por
tanto, le$os todav%a de su desarrollo comercial"
Pese a la aparicin de los m9todos de bases de datos distribuidas ace ya aos, parece que el
salto de lo centrali!ado a lo distribuido a escala comercial est& por venir" 4odav%a no se a
e'tendido suficientemente el esquema distribuido, pero se espera que pr'imamente se produ!ca
el avance definitivo" 3onsidere los dos componentes b&sicos de los sistemas de bases de datos
distribuidos )la propia base de datos y la red de ordenadores, y piense en la situacin actual de la
inform&tica" Si las bases de datos es una de las ramas m&s antiguas e importantes de la
inform&tica, mucas empresas compran ordenadores para dedicarlos e'clusivamente a la gestin
de sus datos )pienso que, pr&cticamente, en el 2CCZ de las PTMES se produce este eco, y,
como parece ser que se a asumido por parte de todo tipo de empresarios los beneficios que
acarrea la cone'in de los ordenadores, la instalacin de una red, se puede concluir diciendo que
el terreno ya est& abonado para su e'tensin comercial" Slo falta que determinadas
multinacionales decidan apostar m&s fuerte por este enfoque a trav9s de sus famosos sistemas
gestores de bases de datos y que se produ!ca la consolidacin de la resolucin de los problemas
que el enfoque distribuido acarrea"
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero
Soluciones a Problemas de Base de Datos Distribuidas en Sistemas de Pequea y Mediana Escala
E.1A%E& ? B-B1-$()AF@A
.20U a!su M"4", *aldurie! P", Prin&iples o+ .istri(uted .ata(ase %,stems, Prentice +all, 2EE2"
./0U Kavate S"B", barlapalem b", Minyoung ;a", " ;i:ed Fragmentation ;et*odolog, +or
0nitial .istri(uted .ata(ase .esign, 2EEX" ttp:II555"cs"ust"c
.@0 Kiamir B", "ttri(ute Partitioning in a %el+>"dapti)e Relational .ata(ase %,stem, 4ecnical
;eport 2E/, #aboratory for 3omputer Science, Massacusetts Jnstitute of 4ecnology, 2EXH"
.N0 +offer +"=", Severance D"<",?*e Qse o+ Cluster "nal,sis in P*,si&al .ata Base .esign,
(irst Jnternational 3onference on *ery #arge Data Bases, Massacusetts, septiembre 2EXD"
.D0 Kavate S"B", 3eri S", Liederold <", Dou 8", -erti&al Partitioning o+ "lgorit*ms +or
.ata(ase .esign, =3M, diciembre 2EHN"
.O0 Mc3ormicc L"4", Sc5eit!er P"8", Lite 4"L", Pro(lem .e&omposition and .ata
Reorgani8ation (, a Clustering ?e&*niue, -per" ;es", 2EX/"
.X0U Seperd 8"=", +arangsri B", 3en +"#", Kgu ="+"+", " ?Mo>P*ase "pproa&* to .ata
"llo&ation in .istri(uted .ata(ases, (ourt Jnternational 3onference on Database Systems for
=dvanced =pplications, Lorld Scientific Press, Singapur, Singapur =bril 2EED, 2EEO"
ttp:II555"cse"unse"edu"au
.H0U Mutura$ 8", 3acravarty S", *aradara$an ;", Kavate S"B", " Formal "pproa&* to t*e
-erti&al Partitioning Pro(lem in .istri(uted .ata(ase .esign" PDJS, 2EE@"
ttp:II555"cis"efl"edu
.E0 8ain =", Dubes ;", "lgorit*ms +or Clustering .ata, Prentice +all =dvanced Series, 2EHH"
.2C0U Smit, 8"b", %ur)e, Paper on -erti&al Partitioning, ?niversidad de +a5aii, Koviembre
2EEX" ttp:II555"ics"a5aii"edu
.220U Bell D", <rimson 8", .istri(uted .ata(ase %,stems, =ddison : Lesley, 2EE/"
.2/0 barlapalem b", Kg Moon Pun, Quer,>.ri)en .ata "llo&ation "lgorit*ms +or .istri(uted
.ata(ase %,stems, DEd= 2EEX" ttp:II555"cs"ust"c
.2@0 Brunstrom =", #eutenegger S"4", Sima ;", #:perimental #)aluation o+ .,nami& .ata
"llo&ation %trategies in a .istri(uted .ata(ase Rit* C*anging Rorkloads, (ourt Jnternational
3onference on Jnformation and bno5ledge Management, Kovember 2EED"
ttp:II555"cs"du"edu
8os9 #uis 3isneros 3ervantes : 8orge 8avier 8irn ;osero

También podría gustarte