Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Bases de Datos Distribuidas
Bases de Datos Distribuidas
RESUMEN
El diseo de bases de datos distribuidas es un proceso complicado que incluye muchos
factores para considerar. Adems, siendo las bases de datos distribuidas orientadas a objetos
una generalizacin de bases de datos relacionales, no slo heredan los problemas de diseo
presentes en bases de datos distribuidas relacionales, sino tambin presentan los problemas
adicionales relacionados con el esquema que est compuesto por las clases. Este artculo
presenta la descripcin de las nuevas matrices desarrolladas para las bases de datos
orientadas a objetos que son generalizaciones de las matrices usadas en el proceso de
fragmentacin en las bases de datos distribuidas relacionales. Adems, se propone el
esquema de fragmentacin para las bases de datos orientadas a objetos de diferentes niveles
de complejidad.
1. INTRODUCCIN
El inters generado por la automatizacin de procesamiento de datos dio inicio al
desarrollo de bases de datos relacionales (BDR). Desde los aos setentas, cuando Codd
[Codd94] introdujo este concepto de almacenamiento de datos, creci el desarrollo de los
sistemas que permiten su manejo eficiente (DBMS, database management systems, sistemas de
manejo de bases de datos).
Adems, los avances en la tecnologa de micro-procesadores y el amplio uso de redes de
computadoras impulsaron la investigacin sobre la posibilidad de distribuir los datos en la
red usando diferentes criterios como, por ejemplo, las frecuencias de utilizacin de los datos.
Estas investigaciones dieron inicio a las as llamadas bases de datos distribuidas relacionales
(BDDR).
El objetivo de las BDDR es mejorar la eficiencia de su desempeo fsicamente
distribuyendo los datos de acuerdo a los requerimientos de uso y las capacidades
computacionales que disponen los diferentes usuarios, pero manteniendo la visin del
sistema como un solo componente. Se desarrollaron diferentes algoritmos de distribucin de
datos y se implementaron las tcnicas de fragmentacin de dos tipos: fragmentacin
horizontal, donde se distribuyen las tuplas (registros) de las tablas de la base de datos entre
diferentes nodos de la red o fragmentacin vertical donde se distribuyen los atributos de
Para los aspectos de la fragmentacin se considera los dos primeros puntos. Debe ser
evidente que para BDDOO el esquema conceptual puede ser mucho ms complejo que para
BDDR.
Aunque existe una diferencia significativa entre estos dos tipos de bases de datos, debe
ser claro que el enfoque relacional puede ser visto (ignorando por la simplicidad la existencia
de los mtodos) como un caso especial de los sistemas orientados a objetos sin la jerarqua de
clases y atributos complejos (atributos que contienen la referencia a otros objetos). Si este es
el caso, los algoritmos desarrollados para BDDR con respecto a la distribucin de los datos
podran ser generalizados y aplicados para BDDOO. Uno de los ejemplos en que es posible
esta generalizacin es el evaluador de particiones desarrollado para la BDDR [Chak93] y
generalizado para la BDDOO [Mali96].
Uno de los componentes muy importantes usados en el desarrollo de los algoritmos de
fragmentacin presentados para BDDR es la matriz del uso de los atributos (AUM, attribute
usage matrix) o la matriz de la afinidad de los atributos (AAM, attribute affinity matrix) que en
general reflejan la informacin de las aplicaciones que operan sobre los datos. Para poder
generalizar los algoritmos de BDDR y aplicarlos a BDDOO se necesita analizar cuales son las
matrices en ambiente orientado a objetos que corresponden a las matrices mencionadas
anteriormente.
En el artculo se describen los aspectos considerados en la fragmentacin en BDDR y
BDDOO, mencionando los trabajos desarrollados en esta rea. Posteriormente se justifica la
necesidad del desarrollo de las nuevas matrices y se describe su presentacin que permite
aplanar la estructura jerrquica de las clases presentada en BDDOO. Finalmente,
basndose en la informacin contenida en las matrices y los resultados de fragmentacin, se
presentan las formas de propagacin de la fragmentacin en la jerarqua de las clases.
2. REVISIN DE TRABAJOS RELACIONADOS CON LA FRAGMENTACION EN
BASES DE DATOS RELACIONALES Y BASES DE DATOS ORIENTADAS A
OBJETOS
Usando la fragmentacin vertical en BDR se puede agrupar los atributos de cada relacin
en registros ms pequeos para mejorar la eficiencia de las transacciones en las bases de
datos. Sin embargo, como el nmero de las particiones posibles es muy grande en una BDR
real [Nava84], en la mayora de las investigaciones se usa un enfoque heurstico para
fragmentar. Una de las suposiciones ms usadas en este enfoque es que el particionamiento
debe considerar que cada fragmento que contiene los atributos debe estar muy cerca de la
transaccin que lo ocupa [Nava84]. Esto significa que, en el caso ideal, el fragmento tiene solo
los atributos que la transaccin local necesita y esta transaccin no necesita accesar ningn
atributo de otro nodo remoto. Sin embargo, en BDDR esto es casi imposible de lograr. La
mejor forma de partir los atributos para una transaccin no es necesariamente la mejor forma
para la otra transaccin. La meta factible es maximizar el desempeo de todas las
transacciones tomando en cuenta todas ellas como un solo grupo. Pues el diseador debe
hacer un compromiso, asegurando el acceso mnimo a los atributos remotos para todas las
transacciones ejecutadas en cada uno de los sitios. El seguimiento de estos conceptos se
puede ver en las investigaciones presentadas sobre la fragmentacin vertical en BDDR.
Actualmente existe un nmero considerable de algoritmos para fragmentacin vertical
en BDR. Los trabajos presentados por Hoffer y Severance [Hoff75], Hammer y Niamir
[Hamm79], Navathe et al. [Nava84], Cornell y Yu [Corn87], Navathe y Ra [Nava89], Chu y
Ieong [Chu93] son muy conocidos por la sociedad de investigadores. Estos autores utilizan
en sus algoritmos las matrices AUM o AAM. Sin embargo, en este artculo se enfatiza ms en
el enfoque presentado por Chakravarthy et al. [Chak93] siguiendo su argumentacin de usar
la matriz AUM en lugar de la matriz AAM. Chakravarthy et al. opinan que AAM solamente
seala la afinidad entre las parejas de los atributos y las relaciones entre ms de dos
atributos no se pueden medir en esta matriz. En este artculo se apoya la opinin de los
autores y se desarrolla la matriz que corresponde a AUM para el ambiente orientado a
objetos. Se puede notar que en las investigaciones referentes a BDDOO no existe
acercamiento de este tipo.
La investigacin de BDOO abarca muchos aspectos, entre los cuales tambin se puede
encontrar la fragmentacin. As, en el desarrollo de la fragmentacin horizontal, Ezeife y
Barker [Ezei94] analizan cuatro casos separados de atributos simples y mtodos simples,
atributos simples y mtodos complejos, atributos complejos y mtodos simples, atributos
complejos y mtodos complejos. Ellos tratan las fragmentaciones primarias y derivadas en su
algoritmo de varios pasos e incluyen la definicin del grafo que enlaza las clases (link graph).
3. Se accesan los atributos solamente usando los mtodos de acuerdo a los principios de
encapsulamiento.
4. Se dispone de la informacin sobre acceso de los mtodos por las transacciones.
5. Se especifica las frecuencias de acceso de transacciones.
6. Se ignora la existencia de los tipos tupla, conjunto y lista.
Tomando en cuenta las consideraciones anteriores, se puede presentar la informacin
necesaria para el particionamiento en la forma de TMUM, MMUM, MAUM.
1. Transaction-Method Usage Matrix (TMUM): la matriz de frecuencias que indica si la
transaccin invoca un mtodo especfico. Los valores usados de cero o uno representan la
situacin que la transaccin no llama o llama el mtodo respectivamente:
trans/mtodo
m1i,j
m2i,j
...
mmi,j
tr1
fm1,1
fm1,2
...
fm1,m
tr2
fm2,1
fm2,2
...
fm2,m
...
...
...
...
...
trT
fmT,1
fmT,2
...
fmT,m
donde
m
mki,j
trp
fmp,r
m2i,j
...
mmi,j
m1i,j
fmm1,2
...
fmm1,m
m2i,j
fmm2,1
...
fmm2,m
mtodo/mtodo
...
...
...
...
...
mmi,j
fmmm,1
fmmm,2
...
donde
m
mki,j
at2i,j
...
atni,j
m1i,j
fat1,1
fat1,2
...
fat1,n
m2i,j
fat2,1
fat2,2
...
fat2,n
...
...
...
...
...
mmi,j
fatm,1
fatm,2
...
fatm,n
mtodo/atributo
donde
n
atpi,j
fatk,l
La informacin especificada arriba puede ser dada por el diseador del sistema.
Adicionalmente, en la misma manera como para el enfoque relacional, se puede
considerar la frecuencia de uso de las transacciones por las aplicaciones (ftr):
Transaccin
tr1
tr2
tr3
...
trT
Frecuencia
ftr1
ftr2
ftr3
...
ftrT
Para hacer el grfico ms fcil de entender no se repiten los mtodos y atributos en sus
subclases, asumiendo que todos los mtodos y atributos de las clases pueden ser accesados
por sus subclases. Aqu, si el nivel de granularidad es igual a uno para las dos clases races
(Clase1 y Clase4) tendremos TMUM de la siguiente forma:
m11,1
m21,2
m74,1
m84,2
M2
M3
M5
M6
tr1
fm1,1
fm1,2
fm1,3
fm1,4
fm1,5
fm1,6
fm1,7
fm1,8
tr2
fm2,1
fm2,2
fm2,3
fm2,4
fm2,5
fm2,6
fm2,7
fm2,8
...
...
...
...
...
...
...
...
...
trT
fmT,1
fmT,2
fmT,3
fmT,4
fmT,5
fmT,6
fmT,7
fmT,8
trans / mtodo
Los valores en las columnas Mi representan la suma de las frecuencias del acceso de los
mtodos por las transacciones correspondientes. Por ejemplo, el valor fm 1,5 es la suma de las
frecuencias del acceso de los mtodos m 32,1 y m42,2 de la Clase2 por la transaccin tr1. Para la
Clase5 los valores correspondientes incluyen no solamente las frecuencias de acceso de los
mtodos de esta clase, sino tambin las frecuencias de accesos de los mtodos de sus
subclases: Clase7.
La MAUM se representa de la siguiente forma:
mtodo/atributo
m11,1
at11,1
at21,2
at74,1
at84,2
AT2
AT3
AT5
AT6
fat1,1
fat1,2
fat1,3
fat1,4
fat1,5
fat1,6
fat1,7
fat1,8
m21,2
fat2,1
fat2,2
fat2,3
fat2,4
fat2.5
fat2,6
fat2.7
fat2.8
m74,1
fat3,1
fat3,2
fat3.3
fat3.4
fat4,5
fat3,6
fat3.7
fat3,8
m84,2
fat4,1
fat4,2
fat4,3
fat4,4
fat4,5
fat4,6
fat4,7
fat4,8
M2
fat5,1
fat5,2
fat5,3
fat5,4
fat5,5
fat5,6
fat5.7
fat5,8
M3
fat6,1
fat6,2
fat6,3
fat6,4
fat6,5
fat6,6
fat6,7
fat6,8
M5
fat7,1
fat7,2
fat7,3
fat7,4
fat7,5
fat7,6
fat7,7
fat7,8
M6
fat8,1
fat8,2
fat8,3
fat8,4
fat8,5
fat8,6
fat8,7
fat8,8
En esta matriz las columnas representadas Atk son las sumas de las frecuencias de acceso
de atributos por los mtodos correspondientes y son representadas en la manera similar
como en TMUM. Obsrvese que la interseccin de la fila M i y la columna Atk tiene los valores
que representan la suma de las frecuencias de todos los atributos de A tk accesados por los
mtodos de Mi.
Para la bsqueda exhaustiva (el paso 4 del algoritmo presentado previamente), los
atributos de las subclases Clase2, Clase3, Clase5 y Clase6 son considerados indivisibles. Esto
significa que no se va a analizar el caso cuando los atributos de alguna de estas clases
pertenecen a diferentes fragmentos. Adems, esta consideracin implica que todos los
atributos de todas las subclases presentados en el mismo camino de la jerarqua deben
formar una entidad indivisible (para las clases Clase5 y Clase7 los atributos at95,1 , at105,2 , at37,1 y
at at147,2 deben ser considerados como indivisibles).
Si el nivel de granularidad es dos para la clase raz Clase 1 y uno para la raz Clase 4 las
m21,2
...
m84,2
M5
M6
tr1
fm1,1
fm1,2
...
fm1,8
fm1,9
fm1,10
tr2
fm2,1
fm2,2
...
fm2,8
fm2,9
fm2,10
...
...
...
...
...
...
...
trT
fmT,1
fmT,2
...
fmT,8
fmT,9
fmT,10
at11,1
at21,2
...
at84,2
AT5
m11,1
fat1,1
fat1,2
...
fat1,8
fat1,9 fat1,10
m21,2
fat2,1
fat2,2
...
fat2,8
fat2.9 fat2.10
...
...
...
...
...
trans / mtodo
mtodo / attributo
...
...
AT6
...
...
m84,2
fat8,1
fat8,2
...
fat8,8
fat8,9 fat8,10
M5
fat9,1
fat9,2
...
fat9,8
fat5,9 fat9.10
M6
fat10,1
fat10,2
...
fat10,8
fat10,9 fat10,10
Los grupos de atributos indivisibles se definen en la forma similar del caso del nivel de la
granularidad uno.
Despus de obtener estas matrices multiplicativas y aplicar algoritmo para obtener el
mejor esquema de fragmentacin, sigue el proceso de propagacin.
El paso de la propagacin puede ser representado como ejemplo para la Clase 1,
suponiendo que despus de aplicar la bsqueda exhaustiva con el nivel de granularidad uno
se obtiene dos fragmentos: el primero tiene el atributos at 11,1 y el segundo tiene atributo at21,2.
La propagacin de esta fragmentacin puede ser presentada de la siguiente manera:
Aqu, dos fragmentos de Clase5 apuntan a la misma clase Clase7 evitando la duplicacin
Aunque esta representacin grfica de la propagacin parece muy complicada para esta
simple clase, en realidad puede ser implementada usando las ideas presentadas en el sistema
ORION [Kim94], donde cada clase tiene su propio descriptor. En esta implementacin cada
objeto tiene su nico indetificador de objeto (UID, unique identifier) que consiste de un par de
valores: el identificador de la clase y el identificador del objeto. De esta forma la informacin
en cul fragmento se encuentra el atributo solicitado se puede mantener en el descriptor de
la clase.
Sin embargo, la representacin de clases puede ser ms compleja e incluir la existencia
de mtodos anidados.
4.2 Atributos simples y mtodos complejos
La diferencia aqu con el caso previo de atributos simples y mtodos simples consiste que
ahora se tiene la posibilidad de las llamadas anidadas entre los mtodos o de la misma clase
o entre las clases que pertenecen a los niveles antecedentes del mismo camino del rbol de la
jerarqua.
Grficamente, un nivel de llamadas anidadas se puede representar de la siguiente forma:
Las aristas del grafo (las frecuencias del uso de los respectivos mtodos) se presentan en
las matrices de TMUM y MMUM en las posiciones correspondientes con el valor igual a 1.
Un caso ms complicado puede ser presentado como sigue:
complejo puede ser ignorada, despus de reflejar en MMUM la relacin entre los mtodos.
Esto ocurre porque el atributo complejo puede ser visto como un tipo de atributo virtual.
La asignacin de este atributo en algn fragmento especfico, despus de aplicar el algoritmo
de fragmentacin, no da la informacin necesaria concerniente, como particionar los
atributos de la clase donde este atributo est apuntando. En este acercamiento se propone
eliminar el atributo virtual del esquema de particionamiento. Este atributo siempre puede
ser puesto y duplicado en cualquier fragmento donde sea necesario. Eliminando este
atributo del algoritmo de fragmentacin, se obtiene el caso de los atributos simples y
mtodos complejos, en lugar de los atributos complejos y mtodos simples.
Para entender mejor esta situacin, se presenta un ejemplo.
Supngase que el atributo complejo atki,j se usa con los siguientes mtodos: mli,j y msi,j.
Esto significa que en algn mtodo se puede encontrar la llamada como: at ki,j.mli,j o atli,j.msi,j
(como se est siguiendo el principio de encapsulacin, no se puede encontrar en la
transaccin, la llamada directa de dos atributos complejos). As, se puede representar la
situacin en la forma grfica:
Si alguna transaccin k llama el mtodo que utiliza este atributo complejo, se propone
eliminar este atributo del grafo. Esto resulta en la situacin donde los mtodos m li,j y msi,j son
llamados en el mtodo mpi,j . Esta relacin entre los mtodos ya se reflej anteriormente en las
posiciones (p,l) y (p,s) y no se necesita hacer modificaciones.
En el caso en que el acceso a los atributos complejos es ms complicado (algn mtodo al
cual este atributo complejo apunta, accesa otro atributo complejo) se necesita hacer las
modificaciones para el grafo de la misma forma como en el caso anterior.
Por ejemplo, si se tiene la siguiente situacin:
Si el nivel de la granularidad es uno para las dos clases races, los mtodos m 11,2 , m21,2 ,
m74,1 y m84,2 se representan en las matrices correspondientes. Para las clases Clase 2, Clase3,
Clase5 junto con la clase Clase7, y Clase6, las frecuencias de acceso de los mtodos se
presentarn como las sumas de las frecuencias de los mtodos de las clases mencionados
anteriormente. Basndose en la explicacin dada para el caso de los atributos simples y
mtodos simples, se tiene, adicionalmente a los mtodos especificados al principio del
prrafo, los siguientes grupos de mtodos:
M2 contiene los mtodos de la clase Clase2
M3 contiene los mtodos de la clase Clase3
M5 contiene los mtodos de la clases Clase5 y Clase7
M6 contiene los mtodos de la clase Clase6
La misma consideracin se puede aplicar a los atributos.
Despus de preparar TMUM, MMUM (si es necesario) y MAUM, aplicar la bsqueda
exhaustiva con un nivel de granularidad especfico y obtener el esquema de fragmentacin
de los atributos, la pregunta que viene es cmo propagar la fragmentacin. La forma de
hacerlo es exactamente la misma como en el primer caso de atributos simples y mtodos
simples: comenzando desde la raz para cada fragmento se analiza los atributos propios de
cada clase. Despus se propaga esta fragmentacin hacia las subclases. En cada subclase se
refleja primero la fragmentacin heredada y solo despus se analiza la propia fragmentacin
de esta subclase. Finalmente, se aplica la fragmentacin a estos atributos propios de la
subclase en la misma manera como se hizo con los atributos en la raz. Este proceso se repite
recursivamente hasta el nivel i de granularidad dado. Para las clases de nivel mayor que i, se
aplica el concepto del grupo de atributos indivisibles, el cual se explic anteriormente.
De los casos vistos anteriormente, queda por ver el ltimo, de atributos complejos y
mtodos complejos.
4.4 Atributos complejos y mtodos complejos
Se puede ver que este caso ya fue incluido en los casos anteriores.
Para todos los casos, el algoritmo aplicado es el mismo que el presentado para atributos
simples y mtodos simples excepto el siguiente refinamiento para el caso de las llamadas
anidadas de los mtodos: Si las llamadas anidadas existen, se debe preparar MMUM y
multiplicarla por TMUM antes de realizar el segundo paso.
5. CONCLUSIONES
Son muchos aspectos que se debe considerar en las BDDR que permiten mejorar el
desempeo en comparacin con un sistema relacional no distribuido. Uno de estos aspectos
es la adecuada forma de fragmentar los datos. Los algoritmos de la fragmentacin vertical
proponen la distribucin de atributos en diferentes nodos, lo que asegura el mejor
desempeo en un ambiente dado. Estos algoritmos usan matrices AUM o AAM. La matriz
AUM recopila la informacin sobre la frecuencia de uso de los atributos por las transacciones
y AAM seala la afinidad de parejas de atributos.
Aunque se desarrollaron investigaciones para encontrar formas de distribuir los datos en
un ambiente orientado a objetos, stos no usan ninguna de estas matrices. La razn principal
es que, aunque se considera BDOO como el caso general de BDR, todava no se han
encontrado los correspondientes elementos generalizados para poder ser usados en este
ambiente de orientacin a objetos. Como la matriz AUM presenta una informacin ms
general, en este artculo se expuso la forma de obtenerla en BDOO, basndose en nuevas
matrices del uso de mtodos por las transacciones (TMUM), del uso de atributos por los
mtodos (MAUM) y del uso de los mtodos por mtodos (MMUM). Adems, se especific
un algoritmo general de fragmentacin tomando en cuenta la existencia de cuatro tipos de
ambientes: atributos simples y mtodos simples, atributos simples y mtodos complejos,
atributos complejos y mtodos simples y atributos complejos y mtodos complejos. Por falta
de algoritmos heursticos de fragmentaciones, se propuso el uso de bsqueda exhaustiva y
aplicacin de evaluador de particiones para la seleccin del mejor esquema de
particionamiento. Dependiendo del nivel de granularidad (profundidad de jerarqua de
clases que se desea fragmentar), se puede modificar los datos en las matrices para respetar
los requerimientos del usuario con respecto a la distribucin de los atributos en diferentes
fragmentos.
Como las BDOO en general se representan en forma de las estructuras jerrquicas,
adicionalmente a la existencia de las matrices y algoritmos de particionamiento, ellas