Está en la página 1de 11

Montes de Oca Olgun Antonio de Jess Base de datos distribuidas

UNAM-FES Acatlan.
Diseo de bases de datos
distribuidas
En este trabajo no nos vamos a basar en el diseo de los sistemas distribuidos
ni en la arquitectura de las redes ya que partiremos de que estos ya estn creados o
que se crearan posteriormente conforme a las necesidades de las bases de datos.
Se ha sugerido que la organizacin de sistemas distribuidos puede ser
investigada a lo largo de tres dimensiones ortogonales segn Levin & Morgan.
Estos tres niveles son:
1. Nivel de distribucin
2. Comportamiento de los patrones de acceso.
3. Nivel de conocimiento en el comportamiento del patrn de acceso.
La imagen representa los tres niveles a lo largo de las dimensiones. En
trminos del nivel de distribucin hay tres posibilidades.
dinmico
Esttico
Datos
Datos +
Programas
Patrones de acceso
Distribucin
Nivel de conocimiento
Informacin
completa
Informacin
parcial
Montes de Oca Olgun Antonio de Jess Base de datos distribuidas
UNAM-FES Acatlan.
Primero: Que no haya distribucin; cada aplicacin y sus datos se ejecutan en
un sitio y no hay comunicacin con algn otro programa o acceso a algn archivo de
datos de otro sitio. Esto caracterizaba a los primeros das de trabajo en red pero ya no
es tan comn en nuestros tiempos.
Segundo: Distribucin de datos; Todos los programas son replicados en todos
los sitios pero no los archivos de datos por consiguiente las peticiones de los usuarios
son manejadas en el sitio donde fueron originados y solo los archivos de datos
necesarios son movidos alrededor de la red.
Datos + programas: los archivos de datos y los programas pueden ser
compartidos.
En el diagrama se muestra una distincin entre la distribucin de datos y la
distribucin de datos + programas ilustrando las diferencias entre sistemas de
computadora distribuidos homogneos y heterogneos. Indica correctamente que en
un ambiente heterogneo es ms difcil e incluso imposible ejecutar un programa dado
en diferente hardware bajo un diferente sistema operativo.
A lo largo de la segunda dimensin del comportamiento de los patrones de
acceso es posible identificar dos alternativas. Los patrones de acceso de peticiones de
usuarios puede ser esttico, es decir que no cambian en el tiempo, o dinmico.
A lo largo de la tercera dimensin tenemos el nivel de conocimiento del
comportamiento de los patrones de acceso. Podemos plantear la opcin de que el
desarrollador no conozca nada acerca de estos patrones pero sera difcil construir un
DBMS que cubriera esta cuestin sin informacin previa por eso, y para que sea mas
fcil es necesario que el diseador o desarrollador tenga la informacin completa.
Estrategias de diseo alternativos
Se consideraran estrategias para el diseo de base de datos que se usan
comnmente son principalmente dos enfoques. El enfoque Up-Down y el enfoque
Bottom-Up que como su nombre lo indica son enfoques muy diferentes para el
proceso de diseo pero como la mayora de los diseadores de software saben es muy
raro que sea suficiente que una aplicacin se ajuste perfectamente a uno de estos dos
enfoques.
Proceso de diseo Top-Down
La actividad para este proceso de diseo comienza con el anlisis de
requerimientos que define el ambiente del sistema y determina tanto las necesidades
de los datos como las del proceso. Con respecto al DBMS este es definido en base al
desempeo, la confiabilidad y disponibilidad, economa y flexibilidad.
El documento resultante de el anlisis de requerimientos es la entrada para el
desarrollo de dos actividades paralelas que son el diseo conceptual y el diseo visual.
Montes de Oca Olgun Antonio de Jess Base de datos distribuidas
UNAM-FES Acatlan.
El diseo visual se encarga de definir las interfaces para el usuario final,
mientras que el diseo conceptual es el proceso por el cual la empresa es examinada
para determinar los tipos de entidades y las relaciones entre esas entidades. En ambas
actividades de diseo el usuario necesita especificar las entidades de datos y debe
determinar la aplicacin que correr en a base de datos as como la informacin
esttica acerca de la aplicacin.
El esquema conceptual global y la informacin de los patrones de acceso
recopilados como resultado del diseo visual son entradas para el diseo de la
distribucin. El objetivo en esta etapa es disear el esquema local conceptual
distribuyendo las entidades sobre los sitios del sistema distribuido. Las relaciones
distribuidas son comnmente divididas en sub-relaciones llamadas fragmentos los
cuales estarn distribuidos. As entonces la actividad de diseo de distribucin consiste
en dos pasos: Fragmentacin y asignacin.
El ltimo paso en este proceso de diseo es el diseo fsico, en el cual
mapeamos los esquemas conceptuales locales con los dispositivos de almacenamiento
fsicos disponibles en los sitios correspondientes.
Proceso de diseo Bottom-Up
Este tipo de proceso es conveniente cuando las bases de datos ya existen y las
tareas del proceso de diseo involucran integrarlas en una sola base de datos. El punto
de inicio de este proceso son los esquemas conceptuales locales individuales; el
proceso consiste en integrar esos esquemas en un esquema conceptual global.
Problemas en el diseo de la distribucin
Ya se haba mencionado anteriormente la necesidad de fragmentar pero no
tenemos una idea clara de cmo y para qu hacerlo. Para comenzar sera bueno que
contestramos las siguientes preguntas con respecto a la fragmentacin las cuales
estn interrelacionadas.
Por qu fragmentar?, Cmo deberamos fragmentar?, Qu tanto
deberamos fragmentar?, Hay alguna forma de probar las correcciones de la
descomposicin?, Cmo deberamos asignar?, Cul es la informacin necesaria para
la fragmentacin y la asignacin?
La fragmentacin
Razones para la fragmentacin
Desde el punto de vista de la distribucin de datos no hay realmente una
razn para la fragmentacin despus de todo en sistemas distribuidos la distribucin
es realizada en la base de los archivos completos.
Montes de Oca Olgun Antonio de Jess Base de datos distribuidas
UNAM-FES Acatlan.
Pero con respecto a la fragmentacin es necesaria debido a tres aspectos:
1. Encontrar la unidad de relacin apropiada; ya que el acceso a la
aplicacin no se hace en la totalidad de las relaciones de la base pero
si de un subconjunto de ellas.
2. Si tenemos las sub-relaciones como unidades de relacin cuando
tratemos de accesar a datos que estn en otros sitios ser mas
conveniente hacer la replicacin de los datos que estn en las sub-
relaciones en lugar de traer los datos de todas las relaciones.
3. Si tomamos las sub-relaciones como unidades de relacin se pueden
ejecutar una cantidad de transacciones concurrentemente, adems la
fragmentacin de relaciones tpicamente resulta en la ejecucin
paralela de un nico query dividindolo en sub-queries que operan
sobre los fragmentos.
Pero como en todo hay costes y uno de ellos es que si necesitamos recuperar
datos de dos fragmentos los obtenemos pero despus tendremos que unirlos y esto es
costoso evitar esto es una de las principales problemticas de la fragmentacin.
El segundo problema es referido al control de la semntica de los datos,
especialmente en la revisin de la integridad.
Alternativas de fragmentacin.
Esencialmente las instancias de relacin son tablas y una de las situaciones es
encontrar un mtodo o forma de convertir la tabla completa en sub-tablas mas
pequeas. Tenemos dos alternativas para esto, dividirlas en forma horizontal o en
forma vertical.
La fragmentacin horizontal se da sobre las tuplas y la fragmentacin vertical
se da sobre los atributos.
Si se usa ms de una fragmentacin estas deben estar anidadas y si se utilizan
fragmentaciones anidadas de diferentes tipos la fragmentacin se convierte en una
fragmentacin hibrida.
Grado de la fragmentacin
El grado al cual debera ser fragmentada la base de datos es una decisin
importante que afecta al desempeo de la ejecucin del query.
El grado de fragmentacin depender de las necesidades de nuestra
aplicacin la cual correr en la base de datos, ahora que hemos visto los contras de
tener fragmentos grandes o muy pequeos , nos tocara decidir el grado al que se
fragmentara y ajustar nuestra aplicacin para que pueda funcionar con la
fragmentacin.
Montes de Oca Olgun Antonio de Jess Base de datos distribuidas
UNAM-FES Acatlan.
Correccin de las reglas de fragmentacin.
Hay tres reglas importantes que debemos reforzar cuando se va a realizar la
fragmentacin:
1. Completitud: Esta referida a una descomposicin sin prdida de datos,
es decir que se asegure que los datos en una relacin global pueden
ser mapeados en fragmentos si ningn tipo de perdida.
2. Reconstruccin: la posibilidad de reconstruccin de una relacin global
a partir de fragmentos de relaciones asegura que las restricciones
definidas sobre los datos en forma de dependencias sean preservadas.
3. Disyuncin: Dice que si particionamos la relacin de forma horizontal
un dato que tengamos en un fragmento no debe estar presente en
algn otro de los fragmentos de la relacin.
Asignacin.
Alternativas de asignacin.
Esto se refiere a la forma en cmo asignaremos los fragmentos de las
relaciones en cada uno de los sitios teniendo ya bien realizada nuestra fragmentacin.
Cuando los datos son asignados estos quizs tambin sean replicados o
mantenidos como una sola copia. La razn para la replicacin es confiabilidad y
eficiencia de queries de solo lectura. Por otro lado en un sistema con replicacin los
queries de actualizacin causaran problemas ya que el sistema debe asegurarse de
que todas las copias de los datos sean correctamente actualizadas.
Una base de datos no replicada comnmente es llamada base de datos
particionada contiene fragmentos que son asignados en sitios y hay solo una copia de
cualquiera de los fragmentos en la red.
Requerimientos de informacin.
En el proceso de diseo de la distribucin existen bastantes factores que
contribuyen a un diseo optimo pero que a su vez causan complejidad a la hora de
plantear un problema de distribucin; algunos de estos aspectos son :
La organizacin lgica de las bases de datos
La localizacin de las aplicaciones
Las caractersticas de acceso de la aplicacin a la base de datos.
Montes de Oca Olgun Antonio de Jess Base de datos distribuidas
UNAM-FES Acatlan.
Fragmentacin.
Fragmentacin horizontal.
Como se explico al principio la fragmentacin horizontal est relacionada a la
particin a lo largo de las tuplas; as cada fragmento tiene un subconjunto de las tuplas
de la relacin.
Fragmentacin horizontal primaria: esta es llevada a cabo usando predicados
que estn definidos en la relacin.
Fragmentacin horizontal derivada: es la particin de las relaciones que
resulta de predicados que han sido definidos en otras relaciones.
Requerimientos de informacin de una fragmentacin horizontal
Informacin acerca de la base de datos: Concierne a la informacin del
esquema conceptual global de la base de datos, en este contexto es importante notar
cmo estn conectadas las relaciones de la base de datos una con otra.
Las conexiones entre los objetos de la base de datos en este caso llamadas
relaciones deben ser absolutamente familiares para los que han manejado modelos de
sistemas de bases de datos.
La relacin al final de la conexin es llamada propietario de la conexin y la
relacin que esta en la cabeza de la conexin es llamada miembro.
Fragmentacin horizontal primaria
sta est definida por una operacin de seleccin en las relaciones propietario
del esquema de una base de datos, por lo tanto en una relacin dada R
i
sus
fragmentos horizontales estn dados por
R
i
=

(),
Donde F
i
es la frmula de seleccin usada para obtener el fragmento R
i
.
ntese que si F
i
es una forma normal conjuntiva donde se exige que F
i
sea un
predicado de minterms
1
Fragmentacin horizontal derivada
Una fragmentacin horizontal derivada est definida sobre una relacin
miembro de una conexin de acuerdo a una operacin de seleccin especificada por
su propietario. Es importante recordar dos cosas.

1
MINTERM es una expresin lgica de n variables consistente nicamente en el operador
conjuncin lgica (AND) y el operador complemento o negacin (NOT).
Montes de Oca Olgun Antonio de Jess Base de datos distribuidas
UNAM-FES Acatlan.
1. La conexin entre las relaciones de propietario y miembro
estn definidas como un equi-join.
2. Un equi-join puede ser implementado por su significado de
semijoins.
El segundo punto es importante para nosotros ya que queremos particionar
una relacin miembro de acuerdo a la fragmentacin de su propietario. Pero tambin
queremos que el fragmento resultante sea definido solo sobre los atributos de las
relaciones miembro.
Por lo tanto dada una conexin miembro L donde el propietario de (L) =S y
miembro de (L) es R
i
los fragmentos horizontales derivados de R estn definidos como:

= ,
Donde es el mximo nmero de fragmentos que sern definidos en R, y

=

( ), donde F
i
es la frmula de acuerdo a la cual la fragmentacin horizontal
primaria S
i
est definida.
Revisin de correcciones.
Ahora debemos revisar los algoritmos de fragmentacin respecto a los 3
criterios de correccin descritos antes:
Completitud: La completitud de una fragmentacin horizontal primaria est
basada en los criterios de seleccin usados ya que la base del algoritmo de
fragmentacin es un conjunto de predicados completos y mnimos. La completitud de
una fragmentacin horizontal derivada es un poco ms difcil de definir.
Reconstruccin: la reconstruccin de una relacin global a partir de sus
fragmentos es llevada a cabo por el operador Unin tanto en la fragmentacin
horizontal primaria como en la derivada.
Disyuncin: es fcil establecer la disyuncin de una fragmentacin primaria
que la de una fragmentacin derivada. En una fragmentacin primaria la disyuncin
est garantizada mientras que los predicados de minterms de la fragmentacin sean
mutuamente excluyentes.
En la fragmentacin derivada hay un semi-join involucrado que agrega una
complejidad considerable. La disyuncin puede ser garantizada si el join es simple de
no ser as ser necesario investigar los valores actuales de las tuplas.
Montes de Oca Olgun Antonio de Jess Base de datos distribuidas
UNAM-FES Acatlan.
Fragmentacin vertical
La fragmentacin vertical produce fragmentos los cuales contienen un
subconjunto de los atributos as como la clave principal de la relacin.
El objetivo de este tipo de fragmentaciones es particionar una relacin en un
conjunto de relaciones ms pequeas tal que otras de las aplicaciones de los usuarios
corrern en solo un fragmento.
El particionamiento vertical es inherentemente ms complicado que el
horizontal ya que en el horizontal si el nmero total de predicados simples es n hay 2
n
posibles predicados minterms que pueden ser definidos en ellos.
Sin embargo para la fragmentacin vertical si una relacin tiene m atributos
que no sean claves primarias el nmero de posibles fragmentos es igual a B(m) el cual
es el numero de BELL. Para valores grandes de m, ( ) ; por ejemplo para
m=15, ( ) para m=30, ( )

estos valores indican que es en vano


intentar obtener soluciones optimas de un problema de fragmentacin vertical.
Existen dos tipos de enfoques heursticos para la fragmentacin vertical de
relaciones globales:
1. Agrupacin: comienza con la asignacin de cada atributo a un
fragmento y en cada paso se unen algunos de los fragmentos hasta
que los criterios se satisfagan.
2. Particionamiento: comienza con una relacin y se decide realizar
particionamientos benficos en base al comportamiento de acceso de
las aplicaciones hacia los atributos.
Requerimientos de informacin de una fragmentacin vertical.
La informacin principal requerida por una fragmentacin vertical es la
relacionada a las aplicaciones. Ya que el particionamiento vertical coloca en un
fragmento aquellos atributos los cuales son accesados juntos.
Los principales datos requeridos relacionados a las aplicaciones son sus
frecuencias de acceso.
Sea = ,

, es el conjunto de queries que corrern en una


relacin (,

, ,

). Entonces para cada query q


i
y cada atributo A
j
, asociamos
un atributo valor de uso, denotado como use(q
i ,
A
j
) y se define como sigue.
,

=
1
u

Montes de Oca Olgun Antonio de Jess Base de datos distribuidas


UNAM-FES Acatlan.
Algoritmo de agrupamiento
La tarea fundamental en el diseo de un algoritmo de fragmentacin vertical
es encontrar algunas formas de agrupamiento de los atributos de una relacin basada
en la afinidad de los atributos. El algoritmo de agrupamiento es considerado apropiado
por las siguientes razones.
1. Es diseado especficamente para determinar grupos de elementos
similares, en comparacin con ordenarlos linealmente.
2. Los agrupamientos finales son intensivos en el orden en el cual los
elementos son presentados al algoritmo,
3. El tiempo de computacin del algoritmo es razonable n
2
donde n es el
nmero de atributos.
4. Las relaciones secundarias entre los grupos de atributos agrupados son
identificables.
Algoritmo de particin
El objetivo de la particin consiste en encontrar conjuntos de atributos a los
que se acceda conjuntamente, o a un gran nmero de ellos, por los distintos grupos de
aplicaciones. Por ejemplo, si es posible identificar dos atributos, A1 y A2, a los que
accede nicamente la aplicacin q1, y unos atributos A3 y A4, a los que acceden dos
aplicaciones q2 y q3, sera muy sencillo decidir qu fragmentos establecer. Por ello, es
necesario encontrar un algoritmo que identifique estos grupos.
Existen dos complicaciones que necesitan apuntarse. La primera es relativa a
la particin. El procedimiento de particin nicamente divide el conjunto de atributos
de dos formas: generando el conjunto AS y el conjunto AI. En el caso que el conjunto
de atributos sea grande, seguramente ser necesario un mtodo de particin que
soporte n-formas de divisin. El diseo de este algoritmo es posible, pero
computacionalmente costoso. A lo largo de la diagonal de la matriz MGA es necesario
probar 1, 2, ..., n - 1 puntos de divisin y para cada uno de estos verificar el lugar que
maximice a z. Por tanto, la complejidad del algoritmo alcanzara un valor de O(2
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.
La segunda complicacin se refiere a la localizacin de un bloque de atributos
que debera formar un fragmento. Nuestra discusin no va ms all de considerar que
el punto de particin es nico y simple, y que divide a la matriz MGA en una particin
superior izquierda y en una particin con el resto de los atributos. La particin, sin
embargo, podra formarse en el medio de la matriz. En este caso, necesitamos
modificar el algoritmo levemente. La columna ms a la izquierda de la matriz MGA se
desplaza para convertirse en la columna ms a la derecha y la fila superior se desplaza
para pasar a ser la inferior. A la operacin de desplazamiento le sigue la verificacin de
las n - 1 posiciones de la diagonal para encontrar el mximo de z. La idea que esconde
el desplazamiento consiste en mover el bloque de atributos que debera formar un
Montes de Oca Olgun Antonio de Jess Base de datos distribuidas
UNAM-FES Acatlan.
grupo a la esquina superior izquierda, donde se identificar ms fcilmente. Con el
aadido de la operacin de desplazamiento, la complejidad del algoritmo de particin
se eleva en un factor n convirtindose en O(n
2
).
Revisando las correcciones
Completitud: la completitud es garantizada por el algoritmo de particin ya
que cada atributo de la relacin global es asignado a uno de los fragmentos.
Reconstruccin: hemos mencionado ya que la reconstruccin pude darse
mediante la aplicacin de una operacin de unin, asi para la fragmentacin vertical
de una relacin R

= {

, ,

] y los atributos clave K.


=

Por lo tanto mientras que cada R


i
sea completo, la operacin de unin
reconstruir apropiadamente R.
Disyuncin: como indicamos antes la disyuncin de fragmentos no es
importante para la fragmentacin vertical como lo es en la horizontal.
Fragmentacin hibrida.
En la mayora de los casos una simple fragmentacin horizontal o vertical de
un esquema de base de datos no ser suficiente para satisfacer los requerimientos de
una aplicacin de usuario. En este caso una fragmentacin vertical debera ir seguida
por una horizontal, o viceversa, produciendo una particin con estructura de rbol.
Tambin es llamada fragmentacin mixta o anidada.
Asignacin.
La asignacin de recursos a travs de los nodos de una red de computadoras
es un problema viejo que ha sido estudiado exhaustivamente. La mayora de este
trabajo, sin embargo, no se direcciona al problema de diseo de bases de datos
distribuidas pero es preferible que poner archivos de datos individuales en una red de
computadoras. Primero necesitamos definir los problemas de asignacin as
precisamente.
Problema de asignacin.
Asumiendo que existe un conjunto de fragmentos F={F1,F2,,Fn} y una red
consistente en sitios S={S1,S2,,Sm} en los cuales un conjunto de aplicaciones
Q={q1,q2,qn} est corriendo. El problema de asignacin involucra encontrar la
optima distribucin de F en S.
Montes de Oca Olgun Antonio de Jess Base de datos distribuidas
UNAM-FES Acatlan.
Una de las ms importantes cuestiones que necesitamos discutir es la
definicin de optimalidad. La optimalidad puede ser definida con respecto a dos
mediciones.
1. Costos mnimos. El costo de una funcin consiste en el costo de
almacenamiento de cada Fi en el sitio Sj, el costo de actualizar Fi en
todos los sitios donde este almacenado y el costo de la comunicacin
de datos.
2. Desempeo. La estrategia de la asignacin est diseada para
mantener un desempeo mtrico. Como minimizar el tiempo de
respuesta y maximizar la salida de informacin a cada sitio.
Requerimientos de informacin.
En la etapa de asignacin necesitamos los datos cuantitativos acerca de la
base de datos, las aplicaciones que corren sobre ella, las comunicaciones de la red, las
capacidades de procesamiento y las limitantes de almacenamiento para cada sitio en
la red.
Informacin de la base de datos.
Para llevar a cabo una fragmentacin horizontal definimos la seleccin de
minterms. Ahora necesitamos extender la definicin de fragmentos, y definir la
seleccin de un fragmento F
j
con respecto a un query q
i
. Este es el nmero de tuplas
de F
j
que se necesitan ser accesadas para procesar q
i
.
Informacin de la aplicacin.
La mayora de la informacin relacionada a la aplicacin ya ha sido compilada
durante la actividad de fragmentacin, pero en algunos de los casos es requerido por
el modelo de asignacin
Informacin del sitio.
Para cada sitio necesitamos conocer acerca de su capacidad de
almacenamiento y procesamiento. Obviamente, aquellos valores pueden ser
computados por medio de elaboradas funciones o por simples estimaciones.
Informacin de la red.
En nuestro modelo asumimos la existencia de una simple red donde el costo
de comunicacin es definido en trminos de un marco de datos. As pues g
ij
denotan
los costos de comunicacin por marco entre los sitios S
i
y S
j
.

También podría gustarte