Vous êtes sur la page 1sur 43

Automatizacin del Diseo de la Fragmentacin Horizontal en

Bases de Datos Distribuidas







Resumen



La administracin de bases de datos distribuidas en redes de computadoras con
cientos de usuarios conectados concurrentemente, es un problema actual en muchas
empresas que compiten en los mercados mundiales. Debido al alto grado de
conectividad que provee Internet a las empresas, el problema del diseo de la
distribucin de las bases de datos ha recuperado su vigencia. Este problema consiste en
tratar de determinar la mejor forma de dividir las relaciones de la base de datos en
fragmentos y determinar la ubicacin ptima de dichos fragmentos en los diversos
sitios de la red.

Diferentes trabajos en el campo asocian al problema tres procesos: la fragmentacin de
las relaciones, la ubicacin y la replicacin de los fragmentos. El enfoque tradicional
consiste en abordar el problema por etapas. Los resultados en esta direccin han sido
poco exitosos en la solucin de casos reales.

El enfoque ms exitoso, por su capacidad para resolver problemas ms realistas,
desarrolla la idea de que el diseo de la distribucin es esencialmente un problema de
agrupamiento. [Prez 1999] formula un modelo de fragmentacin vertical al que se
integran los requisitos de ubicacin y replicacin de los fragmentos. La fragmentacin o
agrupacin se condiciona por los requisitos de los otros dos procesos. De esta manera
los tres procesos se integran en uno solo. Con este modelo se reportan soluciones de
problemas con ms de 500 sitios.

A pesar del xito del enfoque integrador en la solucin de instancias grandes del
problema, solo ha sido aplicado a la generacin de fragmentos verticales. Un problema
abierto en este campo consiste en determinar dicho enfoque es independiente de la
unidad de distribucin.

Esta investigacin trata de contribuir a la solucin de dicho problema. La contribucin
especfica consiste en demostrar que el enfoque integrador es exitoso en la solucin de
problemas realistas, cuando la unidad de distribucin son fragmentos horizontales. Con
este propsito se propone disear un modelo de fragmentos horizontales, que integre
los requisitos de ubicacin y replicacin de los fragmentos.





Anteproyecto de Propuesta Doctoral




Tesis

Automatizacin del Diseo de la Fragmentacin Horizontal en Bases de Datos
Distribuidas


Tesista

Hctor Joaqun Fraire Huacuja

Asesor

Dr. Joaqun Prez Ortega

Coasesor

Dr. Rodolfo Abraham Pazos Rangel
















Contenido

1. Introduccin

2. Estado del conocimiento

3. Revisin del estado del arte

4. Justificacin

5. Descripcin del problema

6. Propuesta de investigacin

7. Plan de trabajo

8. Contenido de la tesis

9. Referencias

1 Introduccin


La gran cantidad de informacin que producen grandes empresas
geogrficamente distribuidas, ha generado una gran dispersin de los datos
asociados a sus sistemas de informacin. Para compartir dichos datos se
requiere de tecnologa capaz de integrarlos para permitir el acceso
concurrente de mltiples usuarios. Una de las tecnologas que se propone
alcanzar este tipo de objetivos son lo Manejadores de Bases de Datos
Distribuidas (MBDD).

Actualmente existen productos comerciales y prototipos de investigacin que
ofrecen una gran funcionalidad para la administracin de los datos. Algunas de
las funciones ms relevantes que se han incorporado en los ltimos aos son:
Soporte a bases de datos distribuidas, fragmentadas, replicadas y con
conexiones intermitentes. Sin embargo existe muy poca funcionalidad de
soporte a las tareas de los administradores de las bases de datos. La
administracin del rendimiento de las bases de datos es una de las tareas que
actualmente se sigue realizando en forma manual. Uno de los lideres
comerciales de esta tecnologa ha declarado recientemente que considera
estratgico para su producto automatizar todas las tareas del DBA[Oracle
2002].

El diseador de una base de datos distribuidas aplica una metodologa de
diseo que incluye las siguientes actividades:

Recopilar la informacin requerida por los usuarios en los diversos sitios
de la red.
Elaborar el diseo conceptual de la base de datos global.
Elabora el diseo lgico de la base de datos en funcin del manejador
de base de datos que se va a utilizar.
Disear la distribucin de los datos en los diversos sitios de la red.
Implementar la base de datos de acuerdo a las especificaciones de
diseo.


El diseo de la distribucin es el principal objeto de estudio de este trabajo.
Tradicionalmente este proceso se realiza en dos etapas. Primero se
fragmentan las relaciones de la base de datos. Posteriormente los fragmentos
son ubicados en los distintos sitios de la red. La ubicacin de los datos afecta
sensiblemente el desempeo de los sistemas de bases de datos distribuidas.
El tiempo y el costo requeridos para el procesamiento de las consultas,
dependen en gran parte del lugar donde se localizan los datos requeridos por
dichas consultas.

[Ozsu 1999] seala la necesidad de contar con herramientas y metodologas
para automatizar el diseo de la distribucin
Esta investigacin se propone desarrollar un modelo del problema del
diseo de la distribucin que integre la fragmentacin horizontal con la
ubicacin y replicacin de los fragmentos en los diversos sitios de una
red.

Tradicionalmente, el proceso de diseo de la distribucin ha sido
realizado manualmente por el administrador de la base de datos
usando su experiencia e intuicin. Las dimensiones de las
aplicaciones actuales exceden las capacidades del diseador para
realizar manualmente un diseo ptimo de la distribucin. En el
corto plazo, automatizar las tareas de los administradores de las
bases de datos ser una ventaja competitiva de las empresas
dedicadas al desarrollo de MBDDs [Oracle 2002].



2 Estado del conocimiento


2.1 Tcnicas de fragmentacin

Cuando un recurso es compartido por varios usuarios, su fragmentacin
permite que partes del recurso puedan ser asignados a diferentes usuarios.
Este enfoque permite hacer un uso ms eficiente del recurso ya que disminuye
el tiempo de espera de los usuarios por el recurso, permite la realizacin de
tareas concurrentes y paralelas con el recurso y evita su desperdicio. Tcnicas
de fragmentacin como estrategia de optimizacin del uso de recursos han sido
desarrolladas para diferentes aplicaciones computacionales: administracin de
memoria, administracin de archivos, bases de datos relacionales, distribuidas
y centralizadas, bases de datos orientadas a objetos, almacenes de datos y
bases de datos mviles [Ceri 1984][Karlapalem 1992][Bandrinath
1997][Samtani 1998] .


2.1.1 Fragmentacin de bases de datos relacionales distribuidas.

La fragmentacin de una relacin puede realizarse en forma vertical, horizontal
o mixta. Los fragmentos verticales son grupos de atributos de la relacin, los
horizontales son grupos de tuplas y los mixtos se forman considerando un
grupo de atributos de la relacin y luego seleccionando un grupo de tuplas del
fragmento ( o inversamente, seleccionar tuplas de la relacin y luego tomar
solo un grupo de atributos). Una fragmentacin adecuada para ser distribuida
debe cumplir los requisitos siguientes: evitar la perdida y redundancia de la
informacin. Para alcanzar este objetivo los fragmentos deben incluir todos los
datos de la relacin original, los fragmentos deben ser disjuntos y la relacin
original se debe poder reconstruir a partir de los fragmentos.
Los algoritmos de fragmentacin pueden ser clasificados en dos grandes
grupos: algoritmos basados en afinidad y algoritmos basados en funciones de
costo [ Bellatreche 1999].

2.1.1.1 Basados en afinidad
A partir de la informacin relativa al uso y frecuencia de acceso a los
atributos/predicados por las aplicaciones, se define la matriz de afinidad entre
pares de atributos/predicados. Estos algoritmos tratan de determinar cuales
son los grupos de atributos/predicados con el ms alto nivel de afinidad. Dichos
grupos constituyen los fragmentos de la relacin.

Fragmentacin vertical
o Algoritmo de agrupamiento usando BEA [Navathe 1982]
o Algoritmo grfico [Navathe 1989]

Fragmentacin horizontal
o Algoritmo de fragmentacin mintermina [1984]
o Algoritmo grfico adaptado [Navathe 1995]


2.1.1.2 Basados en costo
Estos algoritmos definen un modelo de costo, cuyas caractersticas dependen
de la aplicacin para la que se esta realizando la fragmentacin. La funcin de
costo se utiliza para evaluar los esquemas de fragmentacin. Se selecciona el
esquema de fragmentacin de menor costo.

Fragmentacin vertical
o Algoritmo de particionamiento binario [Navathe 1984]
o Algoritmo de Apers [Apers 1988]
o Algoritmo de fragmentacin vertical FURD [Prez 1999]

Fragmentacin horizontal
o Algoritmo de Apers [Apers 1988]
o Algoritmo exhaustivo [Bellatreche 1998]
o Algoritmo heurstico [Bellatreche 1998]


2.1.2 Fragmentacin de bases de datos orientadas a objetos.

Los investigadores de la Universidad de Hong Kong Karlapalem, Bellatreche y
Li, constituyen el ncleo de investigacin ms importante en este campo. La
fragmentacin de clases en un sistema de base de datos orientada a objetos
fue propuesta por primera vez por este grupo de investigacin , conjuntamente
con Navathe en [Karlapalem 1992]. Desde entonces han desarrollado
conceptos, tcnicas de implementacin y algoritmos para la fragmentacin
horizontal y vertical de clases en bases de datos orientadas a objetos. Se ha
mostrado como se puede realizar la fragmentacin de manera transparente y
se han desarrollado prototipos para validar las tcnicas para lograr la
transparencia. Se han desarrollado modelos analticos de costo para el
procesamiento de consultas sobre bases de datos de objetos fragmentadas y
se usan estos modelos para determinar la mejor fragmentacin posible para un
conjunto de consultas dado. Se ha explorado el concepto de jerarquas de
unin de ndices estructurales y se han desarrollado algoritmos de seleccin
para la ejecucin eficiente de un conjunto de consultas.[Karlapalem 1995,
1996,2000], [Bellatreche 1997,1998,2000]. Actualmente estn explorando la
aplicabilidad de estas ideas a la fragmentacin de almacenes de datos.
Otro grupo de investigacin que tambin ha contribuido en este campo es el de
Ezeife y Baker en la Universidad de Windsor CA. En [Ezeife 1994, 1995]
adaptan tcnicas de fragmentacin horizontal y vertical usadas en bases de
datos relacionales para la fragmentacin clases. En [Ezeife 1999] proponen un
modelo del costo de acceso local y remoto para evaluar esquemas de
fragmentacin. Tambin este grupo esta actualmente trabajando en la
fragmentacin de almacenes de datos.


2.1.3 Fragmentacin de almacenes de datos

Los trabajos de investigacin en este campo se inician con la caracterizacin
de la problemtica general que se realiza en [Widom 1995] y [Chaudhuri 1997].
El primer trabajo realizado en la Universidad de Stanford, presenta una visin
estructural del problema desde la perspectiva de los investigadores. El
segundo, realizado por investigadores de Microsoft y HP, se enfoca hacia los
requisitos comerciales del producto. A diferencia de los anteriores, [Samtani
1998] presenta posibles soluciones a la problemtica de los almacenes de
datos. Seala que la fragmentacin de bases de datos multidimensionales
representa una importante rea de oportunidad para el desarrollo de
investigaciones. [Munneke 1999] propone y analiza detalladamente dos
estrategias de fragmentacin de bases de datos multidimensionales.
[Bellatreche, Karlapalem 2000] propone una metodologa para la fragmentacin
de un almacn de datos modelado con una esquema de estrella y analiza los
problemas asociados con el proceso. [Bellatreche 2000] propone un modelo de
fragmentacin horizontal del almacn de datos con base en el costo de
ejecucin de las consultas OLAP.


2.1.3 Fragmentacin de bases de datos mviles

Uno de los grupos de investigadores que actualmente aplican tcnicas de
fragmentacin a la solucin de problemas en sistemas cliente-servidor con
clientes mviles, es el formado por Badrinath, Imielinski y Phatak en la
Universidad de Rutgers NJ. En [Imielinski et al 1992] describen de manera
general el impacto que el uso creciente de dispositivos de computo mvil,
tendra en los sistemas de bases de datos distribuidas. Como resultado de
estos pronsticos inician el macro-proyecto DATAMAN, con el cual se
pretende investigar los efectos de la movilidad de los usuarios en los sistemas
de bases de datos. DBMATE es el subproyecto mediante el cual analizan los
sistemas cliente-servidor con clientes desconectados. En [Badrinath 1997]
proponen una arquitectura cliente-servidor modificada para soportar clientes
tradicionales y mviles. Se propone tambin el uso de fragmentos horizontales
para soportar la sincronizacin de los datos de los clientes mviles con los
datos del servidor.
Los investigadores Navathe, Ammar, Omiecinski, Yee y Donahoo del Instituto
Tecnolgico de Georgia, conjuntamente con la empresa Syncrologic Inc. Of
Atlanta estn desarrollado tecnologa para la sincronizacin de bases de datos
intermitentemente conectadas. En [Navathe 1998] se describe la arquitectura
de las bases de datos intermitentemente conectadas. El proceso de
sincronizacin de los datos de los usuarios mviles y los datos del servidor, se
implementa con base en la formacin de grupos de fragmentos de la base de
datos, a los que los usuarios se suscriben de acuerdo a los fragmentos que les
interesan. Consideran de manera independiente el problema de la
fragmentacin de la base de datos y el de la formacin de grupos. En [Yee
1999] se proponen algoritmos para la formacin de los grupos. En [Navathe
1999] se especifica formalmente del problema y se proponen dos nuevos
algoritmos. En [Yee 2001] se desarrolla un algoritmo heurstico para resolver el
problema del rediseo de los grupos.


2.2 Algoritmo de fragmentacin horizontal mintermina

El diseo de fragmentos horizontales consiste en agrupar las tuplas que tengan
las mismas propiedades desde el punto de vista de su localizacin. Cada grupo
de tuplas que tienen las mismas propiedades constituirn un fragmento. La
idea bsica es que si dos elementos del mismo fragmento tienen las mismas
propiedades respecto a su localizacin, cualquier mtodo usado para la
ubicacin de los datos colocar juntos los dos fragmentos.

Para describir los conceptos de complecin y minimalidad, se utiliza el ejemplo
y desarrollo original de [Ceri 1984]. Estos conceptos son analizados con todo
detalle ya que son la pieza fundamental en el desarrollo del algoritmo de
fragmentacin.




2.2.1 Conceptos bsicos

Considere el problema de determinar la fragmentacin horizontal de una
relacin global EMP. Suponga que las aplicaciones importantes de esta base
de datos distribuida requieren informacin de la relacin EMP acerca de
empleados que son miembros de proyectos.

Cada departamento es un sitio de la base de datos distribuida. Las aplicaciones
son ejecutadas en los departamentos; sin embargo, cuando son ejecutadas en
un departamento dado, hacen referencia con mayor probabilidad a las tuplas
de los empleados de ese departamento que a las de los empleados de otros
departamentos. Esto ocurre porque los empleados estn asignados a un
departamento determinado, porque cada proyecto es realizado en un
departamento y porque la informacin acerca de los proyectos es requerida
tpicamente por empleados que trabajan en el proyecto. Los fragmentos se
disean agrupando las tuplas de los empleados que trabajan en el mismo
departamento; estas tuplas tienen las mismas propiedades desde el punto de
vista de su localizacin.

Sea R la relacin global que se va a fragmentar horizontalmente.

1. Un predicado simple es un predicado de la forma: Atributo=valor

2. Un predicado mintermino derivado de un conjunto de predicados
simples P es la conjuncin de todos los predicados que aparecen en P,
tomados en forma natural o negada, siempre que la expresin no sea
contradictoria.


3. Un fragmento es el conjunto de todas las tuplas que satisfacen un
predicado mintermino.

4. Un predicado simple p es relevante con respecto a un conjunto de
predicados simples P si existen al menos dos predicados mintermino
de P cuya expresin difiere solo en el predicado p (el cual aparece en
forma natural en un caso y negado en el otro) tal que los fragmentos
correspondientes son referidos de manera diferente por al menos una
aplicacin.



Ejemplo
Considere la relacin del ejemplo anterior. Una aplicacin importante requiere
informacin acerca de los empleados que son miembros de proyectos. Otra
aplicacin importante requiere datos exclusivamente de los empleados que son
programadores. Ambas aplicaciones pueden ser ejecutadas en cualquier sitio
de la base de datos distribuida y accesan las tuplas de los empleados con la
misma probabilidad. La probabilidad con que la primera aplicacin refiere a los
empleados de un mismo departamento es r y la probabilidad con que la
segunda aplicacin refiere a los programadores es s.
Supongamos que solo hay dos departamentos, 1 y 2; por tanto DEP=1 es
equivalente a DEP<>2 y viceversa. Dos predicados simples son DEP=1 y
JOB=P. Los predicados mintermino para estos dos predicados son:

1. DEP=1 AND JOB=P
2. DEP=1 AND JOB<>P
3. DEP<>1 AND JOB=P
4. DEP<>1 AND JOB<>P

El predicado simple DEP=1 es relevante respecto a los predicados dados. Los
minterminos 1 y 3 solo difieren en el predicado simple DEP=1 y son accesados
de manera diferente por la aplicacin que solicita empleados en los proyectos.
Esto se debe a que el 1 solo tiene empleados del departamento 1 y en el 3 no
hay empleados del departamento 1. Los empleados del mismo departamento
son accesados con la misma probabilidad r por dicha aplicacin, pero los que
no son de dicho departamento son accesados con probabilidad 1-r.

El predicado simple JOB=P es relevante con respecto los predicados dados.
Los minterminos 1 y 2 solo difieren en el predicado simple JOB=P y son
accesados de manera diferente por la aplicacin que solicita empleados que
son programadores. Esto se debe a que el 1 solo tiene empleados que son
programadores y en el 2 no hay empleados que sean programadores. Los
programadores son accesados con la misma probabilidad s por dicha
aplicacin, pero los que no son programadores son accesados con
probabilidad 1-s.

Las definiciones anteriores no son constructivas, no permiten construir una
fragmentacin. Se definen ahora dos propiedades que caracterizan una
fragmentacin adecuada.

Sea P={ p1,p2,p3,....pn} un conjunto de predicados simples. Para que P
represente correcta y eficientemente una fragmentacin , P debe ser completo
y mnimo.

1. Se dice que un conjunto de predicados P es completo si y solo si
dos tuplas que pertenecen al mismo fragmento son referidas con la
misma probabilidad por toda aplicacin. Cada aplicacin deben referir
con una misma probabilidad a todas las tuplas de un fragmento dado. P
no es completo si existe al menos una aplicacin que refiera con
diferente probabilidad dos tuplas de un mismo fragmento producido por
P.

2. Se dice que el conjunto de predicados simples P es mnimo si todos
sus predicados son relevantes. Dado un predicado simple p de P,
existen dos predicados mintermino que solo difieren en p y que son
accesados de manera diferente por alguna aplicacin.

Suponga que se tienen 10 predicados simples. En tal caso se tienen un total de
1024 fragmentos mintermino. Si se elimina un solo predicado por no ser
relevante, se disminuye el numero de fragmentos mintermino a 512. Esto
representa una disminucin del 50% de los fragmentos considerados en el
primer caso.

Ejemplo
Para la base de datos considerada en los ejemplos anteriores.

CASO 1.

Sea P1={DEP=1}.

Los fragmentos producidos por P1, son los correspondientes a los siguientes
minterminos:

m1: DEP=1
m2: DEP<>1

Anlisis

1. El fragmento correspondiente a m1 nicamente contiene tuplas de
empleados del departamento 1, pero contiene programadores y no
programadores.

La aplicacin que requiere empleados de los proyectos accesa con la
misma probabilidad r, a todas las tuplas del fragmento.

La aplicacin que requiere empleados que son programadores accesa
con una misma probabilidad s, las tuplas del fragmento
correspondientes a programadores y con otra probabilidad 1-s, a las
tuplas que corresponden a no programadores.

2. El fragmento correspondiente a m2 unicamente contiene tuplas de
empleados que no son del departamento 1, pero contiene programadores y no
programadores.

La aplicacin que requiere empleados de los proyectos accesa con la
misma probabilidad 1-r, a todas las tuplas del fragmento.

La aplicacin que requiere empleados que son programadores accesa
con una misma probabilidad s, las tuplas del fragmento
correspondientes a programadores y con probabilidad 1-s, a las que
corresponden a no programadores.

Conclusiones:

La aplicacin que accesa los programadores accesa con probabilidad diferente
las tuplas de m1 (y de m2 tambien).
Por lo tanto, existe al menos una aplicacin que accesa de manera diferente
las tuplas de un fragmento (en este caso los dos fragmentos) derivado a partir
de P1.
Se concluye entonces que P1 no es completo.

Por otra parte, la aplicacin que usa los empleados de los proyectos accesa
con probabilidad r las tuplas de m1 y con probabilidad 1-r las tuplas de m2.

Los minterminos derivados de P1 solo difieren en el predicado DEP=1.

Por lo tanto existe una aplicacin que accesa de manera diferente las tuplas de
dos minterminos que solo difieren en el predicado considerado.

Se concluye que el predicado simple DEP=1 es relevante.


CASO 2

Sea P2={DEP=1, JOB=P}.

Los fragmentos producidos por P2, son los correspondientes a los siguientes
minterminos:

m1: DEP=1 AND JOB=P
m2: DEP=1 AND JOB<>P
m3: DEP<>1 AND JOB=P
m4: DEP<>1 AND JOB<>P


Anlisis

1. El fragmento correspondiente a m1 nicamente contiene tuplas de
empleados del departamento 1 y que son programadores.

La aplicacin que requiere empleados de los proyectos accesa con la
misma probabilidad r, a todas las tuplas del fragmento.

La aplicacin que requiere empleados que son programadores accesa
con la misma probabilidad s, a todas las tuplas del fragmento.

2. El fragmento correspondiente a m2 nicamente contiene tuplas de
empleados del departamento 1 que no son programadores.

La aplicacin que requiere empleados de los proyectos accesa con la
misma probabilidad r, a todas las tuplas del fragmento.

La aplicacin que requiere empleados que son programadores accesa
con la misma probabilidad 1-s, a todas las tuplas del fragmento.

3. El fragmento correspondiente a m3 nicamente contiene tuplas de
empleados que no son del departamento 1 y que son programadores.

La aplicacin que requiere empleados de los proyectos accesa con la
misma probabilidad 1-r, a todas las tuplas del fragmento.

La aplicacin que requiere empleados que son programadores accesa
con la misma probabilidad s, a todas las tuplas del fragmento.

4. El fragmento correspondiente a m4 nicamente contiene tuplas de
empleados que no son del departamento 1 y que no son programadores.

La aplicacin que requiere empleados de los proyectos accesa con la
misma probabilidad 1-r, a todas las tuplas del fragmento.

La aplicacin que requiere empleados que son programadores accesa
con la misma probabilidad 1-s, a todas las tuplas del fragmento.


Probabilidad de acceso por aplicacin
Fragmentos Proyectos Programadores
m1 r s
m2 r 1-s
m3 1-r s
m4 1-r 1-s

Conclusiones

Todas las aplicaciones consideradas accesan con una misma probabilidad a
todas las tuplas de cada uno de los fragmentos.


Por lo tanto P2 es completo.

Los minterminos m1 y m2 solo difieren en el predicado JOB=P y son
accesados de manera diferente por la aplicacin que usa programadores.

Por lo tanto dicho predicado es relevante.

Los minterminos m1 y m3 solo difieren en el predicado DEP=1 y son
accesados de manera diferente por la aplicacin que usa los empleados de los
proyectos.

Por lo tanto dicho predicado es relevante.

Como todos los predicados de P2 son relevantes, se concluye que P2 es
mnimo.


CASO 3

P3={ DEP=1, JOB=P, SAL>50}

Los fragmentos producidos por P2, son los correspondientes a los siguientes
minterminos:

m1: DEP=1 AND JOB=P AND SAL>50
m2: DEP=1 AND JOB=P AND SAL<=50
m3: DEP=1 AND JOB<>P AND SAL>50
m4: DEP=1 AND JOB<>P AND SAL<=50
m5: DEP<>1 AND JOB=P AND SAL>50
m6: DEP<>1 AND JOB=P AND SAL<=50
m7: DEP<>1 AND JOB<>P AND SAL>50
m8: DEP<>1 AND JOB<>P AND SAL<=50

Anlisis


Probabilidad de acceso por aplicacin
Fragmentos Proyectos Programadores
m1 r s
m2 r s
m3 r 1-s
m4 r 1-s
m5 1-r s
m6 1-r s
m7 1-r 1-s
m8 1-r 1-s

Conclusiones
P3 es completo porque cada aplicacin refiere con una misma probabilidad a
todas las tuplas de un mismo fragmento.

DEP=1 es relevante ya que los predicados mintermino que solo difieren en este
predicado son accesados de manera diferente por una aplicacin. Por ejemplo
m1 y m5, m2 y m6, m3 y m7, m4 y m8.

JOB=P es relevante ya que los predicados mintermino que solo difieren en
este predicado son accesados de manera diferente por una aplicacin. Por
ejemplo m1 y m3, m2 y m4, m5 y m7, m6 y m8.

El predicado SAL>50 no es relevante ya que m1 y m2 son dos predicados
mintermino que solo difieren en el predicado dado y para los cuales las tuplas
de los fragmentos asociados son accesadas con la misma probabilidad por
cada una de las aplicaciones (r en un caso y s en el otro).

Por lo tanto P3 no es mnimo.


2.2.2 Algoritmo COM_MIN
Las bases de este algoritmo son desarrolladas en [Ceri 1984].
El algoritmo genera un conjunto de predicados completo y mnimo Pr a partir
de un conjunto de predicados simples Pr.

Regla 1.
Afirma que una relacin o fragmento se divide "en al menos dos partes a las
cuales se accede de forma diferente por al menos una aplicacin."

fi de Pr'
El fragmento fi se define de acuerdo a un predicado mintrmino especificado
sobre los predicados de Pr'.



El algoritmo funciona de la manera siguiente:

1. Determinar un predicado p1 de Pr que divida las tuplas de la relacin
original de acuerdo a la regla 1. Hacer Pr=Pr-{p1} y Pr={ p1}
2. Considere un nuevo predicado pi de Pr que divida a algn fragmento de
Pr de acuerdo a la regla 1. Hacer Pr=Pr-{pi} y Pr=PrU {pi}


Ejemplo

Sea P={SAL>50, DEP=1, JOB=P}

Suponga que los programadores tiene un salario mayor que 50.

Como SAL>50 divide las tuplas de la relacin en programadores y no
programadores, entonces la aplicacin de programadores accesa dichos
fragmentos de manera diferente (regla 1).

Luego P={ DEP=1, JOB=P} y P={SAL>50}

Todos los predicados de P son relevantes.

Uno de los fragmentos asociados con P contiene nicamente programadores y
el otro no programadores. El predicado DEP=1 divide al fragmento de
programadores en dos partes, los que pertenecen al departamento 1 y los que
pertenecen a otros departamentos. Estos dos ltimos fragmentos son
accesados con diferente probabilidad por la aplicacin de proyectos. Por tanto
el predicado DEP=1 divide de acuerdo a la regla 1 a un fragmento de P.

Luego P={ JOB=P} y P={SAL>50, DEP=1}

Todos los predicados de P son relevantes.

El predicado restante divide de acuerdo a la regla 1 al fragmento asociado a
DEP=1.

Luego P={} y P={SAL>50, DEP=1, JOB=P}

No todos los predicados de P son relevantes. En un ejemplo anterior se
muestra que el predicado SAL>50 no es relevante con respecto a los otros dos.
Este predicado se debe eliminar de P.

Por tanto el conjunto de predicados completo y mnimo generado a partir de P
es P={DEP=1, JOB=P}



2.2.3 Algoritmo HORIZONTALP

Las bases de este algoritmo son desarrolladas en [Ceri 984] y su formulacin
detallada se presenta en [Ozsu 1999].
La entrada al algoritmo es la relacin Ri sujeta a la fragmentacin y el conjunto
de predicados simples Pri, que se establecieron de acuerdo a las aplicaciones
definidas sobre la relacin Ri. El algoritmo produce la fragmentacin
mintermina de Rj



El algoritmo funciona de la manera siguiente:

1. Aplicar el algoritmo COM-MIN para obtener un conjunto de predicados
simples Pr que sea mnimo y completo.
2. Determinar todos los minterminos derivados de Pr.
3. Determinar las implicaciones entre los predicados simples de Pr.
4. Eliminar los minterminos contradictorios.


Ejemplo.

Sea P={SAL>50, DEP=1, DEP=2, JOB=P}.

1. Aplicando COM_MIN a P, se genera el conjunto completo y mnimo
P={DEP=1, DEP=2, JOB=P}
2. Conjunto de predicados mintermino derivados de P.

m1: DEP=1 AND DEP=2 AND JOB=P
m2: DEP=1 AND DEP=2 AND JOB<>P
m3: DEP=1 AND NOT(DEP=2) AND JOB=P
m4: DEP=1 AND NOT(DEP=2) AND JOB<>P
m5:NOT( DEP=1) AND DEP=2 AND JOB=P
m6: NOT(DEP=1) AND DEP=2 AND JOB<>P
m7: NOT(DEP=1) AND NOT(DEP=2) AND JOB=P
m8: NOT(DEP=1) AND NOT(DEP=2) AND JOB<>P

3. Conjunto de implicaciones I entre predicados simples.

DEP=1 implica NOT (DEP=2)
DEP=2 implica NOT (DEP=1)

4. Con base en las implicaciones determinadas, resultan contradictorios los
minterminos m1, m2, m7 y m8. Despus de eliminarlos la fragmentacin
mintermina resultante es:

m3: DEP=1 AND NOT(DEP=2) AND JOB=P
m4: DEP=1 AND NOT(DEP=2) AND JOB<>P
m5:NOT( DEP=1) AND DEP=2 AND JOB=P
m6: NOT(DEP=1) AND DEP=2 AND JOB<>P

o en forma equivalente

m3: DEP=1 AND JOB=P
m4: DEP=1 AND JOB<>P
m5: DEP=2 AND JOB=P
m6: DEP=2 AND JOB<>P



2.3 Problema de la ubicacin de fragmentos

Dado un conjunto de fragmentos F = {F
1
, F
2
, ..., F
n
} y una red de computadoras
formada por el conjunto de sitios S = {S
1
, S
2
, ..., S
m
}, en la cual se ejecutan un
conjunto de aplicaciones Q = {q
1
, q
2
, ..., q
q
}. El problema consiste en encontrar
la distribucin ptima de F sobre S. [Ozsu 1999]














Figura 1. Problema de la ubicacin de fragmentos.




La ubicacin de fragmentos es un problema complejo y su solucin no es trivial,
debido al nmero de parmetros que intervienen en el modelado y a la
complejidad del problema subyacente. El espacio de soluciones factibles para
este problema es muy grande, an para problemas de tamao pequeo. Si
consideramos que el problema de ubicacin considere rplicas, permitir que
los fragmentos se encuentren replicados en diversos sitios de la red, el nmero
de alternativas crece considerablemente. En la Figura 1 se muestra el
fragmento F
1
, replicado en los sitios S
2
y S
3
. Los siguientes teoremas
S
1

S
2

S
3

S
F
1
F
2

F
3

F
n

F
1

q
1

q
2

q
3

RED
establecen el tamao del espacio de factibilidad del problema en el caso no
replicado y replicado.





Teorema 1. Ubicacin no Replicada

Dados un conjunto finito de fragmentos F con card(F)=n y un conjunto finito de
sitios S con card(S)=m, entonces, si M es el espacio de soluciones factibles
del problema de la ubicacin no replicada de datos se tiene que card(M)=m
n
.

Demostracin:

Sean F, S y M como se indica en el teorema, entonces cada fragmento de F se
puede colocar en uno y solo uno de los sitios. Existen m posibilidades de
colocar uno de los fragmentos de F en los sitios S sin replicarlo. Por tanto el
numero de formas distintas de colocar todos los fragmentos es m
n
. Como cada
forma de colocar los fragmentos es una solucin factible, se concluye que
card(M)=m
n





Teorema 2. Ubicacin Replicada

Dados un conjunto finito de fragmentos F con card(F)=n y un conjunto finito de
sitios S con card(S)=m, entonces, si M es el espacio de soluciones factibles del
problema de la ubicacin replicada de datos se tiene que card(M)=(2
m
-1)
n


Demostracin:

Sean F, S y M como se indica en el teorema. Cada fragmento de F se puede
colocar de tal manera que se replique en 1,2,3,... o m sitios. Si C(r,s) denota las
combinaciones de tamao s tomadas entre r objetos, entonces existen
C(m,1)+C(m,2)+C(m,3)+.....+C(m,m) formas de colocar cada uno de los
fragmentos en los sitios considerando todas las posibles formas de replicarlo.
Por otra parte, usando el teorema del binomio se tiene que 2
m
=
C(m,0)+C(m,1)+C(m,2)+C(m,3)+.....+C(m,m). Por tanto el numero de formas de
colocar un fragmento de F es (2
m
1). Se concluye entonces que le nmero de
formas de colocar los n fragmentos en los m sitios es (2
m
1)
n
. Como cada
forma de colocar los fragmentos es una solucin factible, se concluye que
card(M)= (2
m
1)
n





Los resultados anteriores demuestran que el problema de la distribucin de
datos con replicacin es potencialmente ms complejo que sin replicacin.
[Appers, 1988], establece que el problema de determinar la ubicacin no
replicada de fragmentos, minimizando costos totales de comunicacin, es NP-
completo. Por esta razn la solucin de instancias grandes, en cualquiera de
los dos casos, requiere el uso de mtodos heursticos.


2.4. Estrategias de replicacin.

Productos comerciales tales como Oracle, SQL Server y Sybase, cuentan con
servidores de replicas incorporados a sus servicios. Dichos servidores utilizan
dos estrategias bsicas de replicacin: asncrona y sncrona. Los dos servicios
asumen la existencia de un servidor que administra las copias primarias o
maestras. Este servidor contiene toda la relacin que sirve de base para
generar las replicas. Los servidores que no son primarios pueden recibir y
almacenar replicas desde el servidor primario. Estas replicas son fragmentos
de la relacin que reside en el primario. En una base de datos distribuidas
pueden existir mltiples servidores primarios, cada uno de ellos administra las
replicas de diferentes relaciones de la base de datos. Adicionalmente cada
servidor de replicas es responsable de distribuir y mantener actualizadas las
replicas requeridas por los servidores no primarios.


P
1
P
2
R
1
R
2
R
1
R
2

2.4.1 Replicacin sncrona.


Este tipo de replicacin dispara el proceso de actualizacin de replicas en el
momento en que una replica es modificada. En el momento en que se modifica
una de las replicas, se establece contacto con el servidor responsable de la
replica y se le informa de la actualizacin. El servidor actualiza la copia primaria
del dato modificado y esta informacin es enviada a todos los sitios en que
existe una copia de la replica modificada.





Este tipo de estrategia de replicacin se caracteriza porque permite mantener
un alto nivel de consistencia entre las replicas. Genera un alto grado de
sobrecarga en la red y no permite que los usuarios puedan trabajar
desconectados. Un
sistema que opere con este mecanismo de replicacin solo soporta clientes
tradicionales ya que no permite manejar clientes mviles.




2.4.2. Replicacin asncrona

Este tipo de replicacin dispara el proceso de actualizacin de replicas a
intervalos regulares de tiempo. Requiere que todos los servidores almacenen
localmente una bitcora con las modificaciones que se van realizando sobre las
replicas. Una vez que inicia el proceso de sincronizacin con los servidores
primarios, las bitcoras son enviadas a dichos servidores y estos realizan el
proceso de reconciliacin de replicas para determinar sus valores actuales.
P
R
R
1
2
3
3
1 Modificacin de replica
2. Informacin inmediata al primario
3. Actualizacin de todas las replicas
Finalmente se realiza el proceso de actualizacin de todas las replicas
administradas por cada servidor primario. modificada. En el momento en que
se modifica una de las replicas, se establece contacto con el servidor
responsable de la replica y se le informa de la actualizacin. El servidor
actualiza la copia primaria del dato modificado y esta informacin es enviada a
todos los sitios en que existe una copia de la replica modificada.




Este tipo de estrategia de replicacin se caracteriza porque permite un alto
nivel de autonoma en los sitios. Un usuario puede incluso trabajar sobre las
replicas sin que este conectado a la red. Las modificaciones se siguen
registrando en la bitcora local y una vez que se reconecta se incorporan sus
modificaciones locales en el siguiente periodo de sincronizacin. Por esta
misma razn el nivel de consistencia de los datos es bajo. En un momento
determinado dos usuarios distintos pueden usar diferentes valores para el
mismo dato.

Tpicamente el intervalo de tiempo entre periodos de sincronizacin es un
parmetro del sistema. Si el intervalo es muy corto se simula el funcionamiento
de la replicacin sncrona. Si se usa un intervalo grande, se tiene entonces un
ambiente con una mayor autonoma en los sitios de trabajo. En general la
longitud del intervalo se debe acondicionar a las caractersticas de la carga de
trabajo, estimando el volumen de usuarios tradicionales y mviles del sistema.




2.5. Mtodos heursticos
P
R
1
3
5
R
Bitcora
local
Bitcora
local
2
3
5
1. Modificacin en replica
2. Registro de la modificacin en la bitcora
3. Bitcoras al primario durante la
sincronizacin
4

Un mtodo heurstico es un conjunto de pasos bien definidos para identificar
rpidamente una solucin de alta calidad para un problema dado, donde una
solucin es un conjunto de valores para las incgnitas del problema y la calidad
se define por un criterio o mtrica de evaluacin establecida. Los mtodos
heursticos son llamados tambin algoritmos de aproximacin, procedimientos
inexactos, algoritmos incorrectos o simplemente heursticas[Barr 2001].

El problema de la distribucin de fragmentos es un problema NP-completo. La solucin
del problema, usando mtodos exactos, solo puede ser realizada en casos de instancias
pequeas del problema. Para instancias grandes se requiere usar mtodos heursticos.
Estos mtodos ofrecen soluciones cercanas a la solucin ptima del problema con una
inversin razonable de recursos. Bsicamente definen estrategias de navegacin a travs
del espacio de soluciones del problema considerado que les permiten escapar de los
ptimos locales y aproximarse al ptimo global. Actualmente existen una diversidad de
mtodos heursticos disponibles, tales como recocido simulado, bsqueda tab,
algoritmos genticos, grasp, redes neuronales, aprendizaje reforzado, etc.
Independientemente del mtodo que se utilice, el diseador de soluciones heursticas
debe resolver dos problemas centrales: definir una representacin adecuada de las
soluciones e implementar una estrategia de bsqueda eficiente para el mtodo
seleccionado.


2.5.1 Representacin para el problema de la ubicacin de fragmentos no
replicados.

En esta y la siguiente seccin se utilizan los conceptos tericos que se presentan en
[Michalewicz 200]. En esta seccin se desarrolla el diseo de la solucin heurstica del
problema de la ubicacin replicada de fragmentos.

Definicin: Problema de optimizacin combinatoria

Una instancia de un problema de optimizacin combinatoria es una pareja (S,C), donde
S representa el conjunto de soluciones factibles del problema y C una funcin de
evaluacin de las soluciones definida por E: S R.

Donde
el problema de minimizacin consiste en determinar s
optima
S tal que
E(s
optima
)<= E(s) para toda s S.

el problema de maximizacin consiste en determinar s
optima
S tal que
E(s
optima
)>= E(s) para toda x S

A la solucin s
optima
se le denomina una solucin globalmente ptima.

Un problema de optimizacin combinatoria es un conjunto I de instancias del problema.



Definicin: Estructura de vecindades

Dada una instancia de un problema de optimizacin combinatoria (S,C). Una estructura
de vecindades

V: S 2
S


asocia a cada solucin s S un subconjunto V(s) de S.

V(s) es llamada una vecindad de s y contiene todas las soluciones vecinas o
cercanas a la solucin s.

Si r V(s) entonces se dice que r es un vecino de s.


Ejemplo: Problema de la ubicacin no replicada de fragmentos.

Dados un conjunto de n fragmentos F
n
, un conjunto de m sitios S
m
y un conjunto de k
consultas Q
k
, determinar la forma de ubicar sin replicacin los fragmentos en los sitios,
de tal manera que se minimicen los costos derivados de las operaciones de solo/lectura y
de actualizacin realizadas por las consultas.

Representacin de las soluciones:

Si i=1,2...n y j=1,2,...m entonces s(i)=j indica que el fragmento i se
encuentra ubicado en el sitio j.

Una solucin factible es de la forma s=(s(1),s(2),s(3),....,s(n)) donde cada
componente puede tomar cualquier valor entre 1,2,...m.


S={ s tales que s es una solucin factible del problema}

El espacio de soluciones factibles depende del numero de fragmentos y de
sitios S=S(F
n
,S
m
)

Card(S) = m
n



Funcin de evaluacin

E(s) = Costo de operaciones de solo lectura(s,Q
k
) + Costo de operaciones de
actualizacin(s,Q
k
)

E=E(Q
k
)


Instancias del problema

Una instancia del problema, define una configuracin determinada de
fragmentos, sitios y consultas: (S,E)=(S(F
n
,S
m
),E(Q
k
))==(n,m,k)

I={(1,1,1),(3,2,2),(20,10,10),(100,30,30),.....}




Estructura de vecindades:

Dada la solucin s(i)=j , entonces la solucin r(i)=j es un vecino de s si y solo si
s(i)=r(i) para todo i<> i
1
,i
2
con s(i
1
)=r(i
2
) y s(i
2
)=r(i
1
)

Dada una solucin factible s, un vecino r de s se obtiene cambiando la
ubicacin de dos fragmentos.

El nmero total de vecinos de una solucin s es C(n,2)

Considere la instancia (4,3,5), entonces la solucin s=(1,2,3,2) indica que el
primer atributo se ubica en el sitio 1, el segundo en el sitio 2, el tercero en el
sitio 3 y el cuarto en el sitio 2.

El numero total de vecinos es C(4,2)=6

V(s)={(2,2,3,1), (3,2,1,2), (2,1,3,2), (1,3,2,2), (1,2,3,2), (1,2,2,3) }



2.5.2 Bsqueda local

Definicin: ptimo local

Dada una instancia de un problema de optimizacin combinatoria (S,E) y una estructura
de vecindades V, entonces s S es:

Un mnimo local si E(s)<=E(r) para toda r V(s)

Un mximo local si E(s)>=E( r) para toda r V(s)




Procedimiento de bsqueda de un mnimo local

Sea s S

Repetir

Sea y V( s)

Si E(y)<=E(s) s=y

Hasta que E(y)>=E(s) para toda y V(s)


Los procedimientos de bsqueda local tienen el inconveniente de quedar atrapados en
los ptimos locales. La nica posibilidad de producir ptimos absolutos es que se elija
una vecindad que contenga dichas soluciones. Construir vecindades que cumplan esta
condicin es igual de complicado que resolver el problema original.

Los mtodos heursticos se disean teniendo en mente la siguiente cuestin Cmo
escapar de los ptimos locales?.

En primera instancia se observa que la regin o vecindad donde se realiza la bsqueda
depende de la solucin inicial elegida. Por esta razn se ejecuta varias veces el
procedimiento de bsqueda local, iniciando cada nueva ejecucin con una solucin
inicial diferente.

Una segunda observacin es que la estrategia de bsqueda se mueve a travs de las
mejores soluciones locales. En este punto la reflexin se dirige hacia la pregunta
siguiente Existirn vas cortas hacia los ptimos locales que pasen a travs de
soluciones locales peores que las mejores locales?.

Los mtodos heursticos desarrollan esta idea con diferentes enfoques. Algunos usan
algn tipo de mecanismo probabilstico para transitar la mayor parte del tiempo a travs
de las mejores soluciones locales y un proporcin menor de tiempo se le da oportunidad
a las soluciones locales an cuando no mejoren la solucin actual. Otros con el mismo
propsito generan rastros por los caminos que han transitado, para tratar de lograr el
mismo efecto.




2.5.3 Algoritmo heurstico GRASP

[Resende 1998] describe la estructura del algoritmo GRASP. El algoritmo consta de
dos fases: en la primera se construye una solucin inicial y en la segunda se realiza una
bsqueda local en la vecindad de la solucin. En la fase constructiva se van
seleccionando los diferentes componentes de una solucin. Para cada una de las
componentes se evalan las diferentes alternativas de seleccin disponibles. Se
restringen las opciones nicamente a las candidatas mejor evaluadas. Finalmente se
selecciona aleatoriamente la componente de la solucin entre la lista restringida de
candidatos.
Una vez que se tiene la solucin inicial se procede a realizar una bsqueda local, hasta
que se encuentra una vecindad en la que ningn vecino es mejor que la solucin actual.
La estrategia de bsqueda se puede realizar de manera similar a la que sigue la
bsqueda local bsica. Otra alternativa es obligar a que se evalen todos los vecinos de
la vecindad, invocando de manera recursiva la funcin de bsqueda. Una problemtica
que se presenta es que la segunda estrategia genera soluciones de muy buena calidad
para instancias pequeas del problema, pero para instancias muy grandes requiere de
muchos recursos para resolverlos. La estrategia bsica resuelve problemas muy grandes,
pero las soluciones que obtiene, incluso en casos pequeos, son de muy mala calidad.

En general el trabajo con mtodos heursticos enfrenta el problema de definir estrategias
de bsqueda eficientes, para producir soluciones de muy alta calidad.





Algoritmo GRASP

s
optima
= valor muy grande

for k=1 to MAXITER

s=Construye()

s=Local(s)

if E(s)<E(s
optima
)

s
optima
=s

endinf
endfor


Funcin Construye()

// eval(t) es una funcin real que permite evaluar cada uno de los componentes de s.
// 0<=<=1

s=

Inicializar la lista C de opciones candidatas como primera componente de s.

while C<>

s
min
= min {eval(t) para cada t C}

s
max
=max {eval(t) para cada t C}

RCL= { t C tal que eval(t) <= s
min
+ (s
max
-s
min
) }

Selecciona aleatoriamente el componente t e C

s= s U { t }

Actualiza C con las opciones para la siguiente componente de s

end while


Funcin Local(s)

// Versin no recursiva

Repetir

Genera y V( s)

Si E(y)<=E(s) s=y

Hasta que E(y)>=E(s) para toda y V(s)



Funcin Local(s)

// Versin recursiva

Repetir

Genera y V( s)

Si E(y)<=E(s) { s=y ; Local(s) }

Hasta que E(y)>=E(s) para toda y V(s)


Ejemplo: Problema de la ubicacin no replicada de fragmentos.

Se considera la instancia (4,3,5) y la representacin y estructura de vecindades ya
definidas en el ejemplo anterior.


Fase constructiva

En esta fase se construye una solucin inicial aadiendo a cada paso una componente a
la estructura de la solucin. Cada componente de la solucin es alguno de los sitios.

Estructura inicial de s=()

Como el primer atributo lo podemos ubicar en cualquiera de los 3 sitios, entonces C={
1,2,3} y con los siguientes costos de ubicacin :

Para evaluar estos costos se puede usar la funcin de evaluacin de las soluciones. Los
costos que se muestran son supuestos ya que no se tiene definida una funcin de
evaluacin especfica para el ejemplo.

E((1,0,0))=100 min
E((2,0,0))=160 max
E((3,0,0))=125

Con a=0.5 min + a (max-min) = 130

RCL={ t C tal que t <=130} = { 1,3 }

Finalmente se selecciona aleatoriamente una opcin de RCL: 3

Por lo tanto en este momento se tiene s=(3)

Se procede de la misma manera con la segunda , tercera y cuarta componente de s.
Suponga que finalmente s=(3,2,1,2) con E(s)=95

Una terminada la fase constructiva, se tiene una solucin inicial para proceder a la
bsqueda local.



Fase de bsqueda local

Aplicando la versin no recursiva y suponiendo conocidos los valores de los costos de
las soluciones se tiene que:

Vecinos de s Evaluacin
(2,2,1,3) 120
(1,2,3,2) 100
(2,3,1,2) 89
(3,1,2,2) 112
(3,2,1,2) 75
(3,2,2,1) 110

Si los vecinos se generan en el orden indicado, cuando llega al tercer vecino realiza el
cambio de vecindad s=(2,3,1,2).

La bsqueda continua hasta que se encuentra un ptimo local.

Este ptimo local se compara con el ptimo global candidato, si se requiere se actualiza
el global y se procede a reiniciar una nueva iteracin del procedimiento completo.




3 Revisin del estado del arte

En esta seccin se resumen los trabajos ms importantes relacionados con el
problema del diseo de la distribucin. Se pretende establecer de manera
precisa el nicho hacia el que se enfoca la investigacin y presentar evidencia
suficiente de que el problema que se pretende resolver es actualmente un
problema abierto y relevante. El problema abordado, entre otros, de manera
parcial o total en los artculos siguientes:

[Ceri 1983] aborda el problema de determinar la ubicacin ptima de un conjunto
de fragmentos de relaciones. Se formula como un problema de programacin
lineal entera cero uno. La funcin objetivo considera el costo total del
procesamiento de las transacciones. Las entradas del modelo son: 1. la
cardinalidad de las relaciones y ligas, 2. una fragmentacin horizontal candidata
de las relaciones y la ubicacin inicial de los fragmentos y 3. la especificacin de
las transacciones ms importantes, sus frecuencias y sitios de origen. Considera
restricciones de no replicacin, dependencia entre relaciones, de consistencia de
la variables de decisin, y de almacenamiento en los sitios. Como mtodo de
solucin utiliza una heurstica para descomponer el problema original en
subproblemas. Muestra la factibilidad de la propuesta resolviendo una instancia
con 4 fragmentos, 5 consultas y 3 sitios.


[Navathe 1984] trata con el problema de la fragmentacin vertical de relaciones y
el problema de la ubicacin y replicacin de fragmentos. Para resolverlo aplica un
procedimiento heurstico de dos etapas. Primero determina una fragmentacin
vertical binaria, usando la matriz de afinidad de los atributos. En una segunda
etapa determina la mejor ubicacin de los fragmentos determinados en la etapa
previa. Para evaluar el costo de cada alternativa de ubicacin de los fragmentos
no replicados, utiliza costo de transmisin de los fragmentos. Para el caso
replicado incorpora adems el costo de procesamiento de las transacciones y el
costo de almacenamiento en los sitios. Este proceso se aplica recursivamente a
cada uno de los dos fragmentos que se determinaron en la fase inicial. Las
entradas requeridas son la matriz de uso de los atributos, la frecuencia de acceso
de las consultas desde los sitios, la selectividad de las consultas y los costos de
transmisin, almacenamiento y de acceso local. Como un proceso posterior
realiza la replicacin replicada aplicando un mtodo heurstico. Reporta la
solucin de una instancia de 20 atributos y 4 sitios.

[Apers 1988] trata el problema de la fragmentacin de relaciones y el problema
de la ubicacin de los fragmentos y las consultas en los sitios. Propone mtodos
de fragmentacin horizontal y vertical. Propone un mtodo grafico de ubicacin
de fragmentos y consultas, que utiliza planes de ejecucin de las consultas.
Minimiza el costo total de transmisin asociado a cada alternativa de ubicacin.
Para resolver el modelo propone utilizar ramificacin y acotamiento y mtodos
heursticos. Las entradas del problema de ubicacin son: una fragmentacin
candidata, planes y frecuencia de ejecucin de las consultas y costos de
transmisin. Demuestra que el problema de determinar una ubicacin ptima es
NP-completo. Propone algunos mtodos heursticos de solucin del modelo
propuesto. No reporta la solucin del problema para instancias especficas.

[Cornell 1989] trata el problema de la ubicacin de relaciones y la determinacin
de los sitios en que se ejecutarn las operaciones de reunin. Propone un modelo
de programacin lineal entera para minimizar el costo de transmisin generado
por el procesamiento de las consultas y la transmisin de los mensajes incluidos
en los planes de ejecucin. Considera restricciones relativas a la capacidad de
procesamiento, de almacenamiento en disco y de comunicacin de los enlaces.
Las entradas del modelo son las relaciones que se van ha ubicar, la frecuencia y
los planes de ejecucin de las consultas y los costos de transmisin. Para
resolver el modelo propone utilizar tcnicas tradicionales de programacin lineal
entera o mtodos heursticos. No reporta soluciones especficas del modelo.


[Lin 1995] investiga el problema de la ubicacin de fragmentos de relaciones.
Utiliza un modelo de programacin lineal entera para minimizar el costo total de
comunicacin. El modelo supone que es posible determinar las rutas de
propagacin de las actualizaciones de menor costo. En tal caso, el modelo se
puede resolver aplicando tcnicas tradicionales de la programacin lineal entera.
La informacin requerida por el modelo es: rutas de propagacin de las
actualizaciones, los fragmentos de las relaciones y los costos de transmisin. No
reporta soluciones especficas del problema.

[March 1995] analiza el problema de la ubicacin de fragmentos y operaciones.
Utiliza planes de ejecucin de consultas, para desarrollar un modelo de
programacin lineal entera cero uno. Se propone minimizar los costos de
operacin del sistema, los cuales incluyen: costos de comunicacin, acceso a
disco, procesamiento y almacenamiento. Considera restricciones relativas al
problema y relacionadas a la capacidad recursos tales como: entrada y salida a
disco, procesador, almacenamiento y enlaces de comunicacin. Las entradas
requeridas son: conjunto de fragmentos, frecuencia y planes de ejecucin de las
consultas y los costos de procesamiento, almacenamiento, entrada y salida a
disco y comunicacin. Propone el uso de algoritmos genticos para resolver el
modelo. Reporta la solucin de instancias con 3 sitios, 3 fragmentos, 12 a 18
pasos de ejecucin de consultas.

[Tamhankar 1998] aborda el problema de la fragmentacin horizontal y la
ubicacin y replicacin de fragmentos. Realiza cuatro pasos seriados para
resolver el problema de manera integral, pero utiliza diferentes funciones objetivo
en cada una de las etapas. Usa modelos de programacin lineal que aceptan
como entradas las consultas y su frecuencia de uso en los sitios y los costos de
transmisin. Reporta la solucin de una instancia de 4 sitios.

Por su relevancia, para el anlisis del estado del arte del problema del diseo de
la distribucin, se presentan ahora las citas textuales de dos importantes trabajos.
Dichas investigaciones muestran la factibilidad del enfoque integrado como
estrategia de solucin del citado problema.

[Ozsu 1999]
La segunda parte del diseo de la distribucin, denominada ubicacin, es
considerada tpicamente independiente de la fragmentacin. El proceso es lineal
considerando la salida de la fragmentacin como entrada de la ubicacin. A
primera vista , aislar los dos pasos aparentemente simplifica la formulacin del
problema al reducir el espacio de decisin. Un examen ms cercano revela que
aislar los dos pasos contribuye a la complejidad de modelo de ubicacin. Ambos
pasos tienen similares entradas, difieren solo en que la fragmentacin opera
sobre las relaciones globales mientras que la ubicacin trabaja sobre fragmentos
de dichas relaciones. Ambos requieren informacin de las aplicaciones de los
usuarios ( frecuencia de acceso a los datos, como se relacionan los datos entre
si, etc), pero ignoran como cada uno hace uso de dichas entradas. El resultado
final es que los algoritmos de fragmentacin deciden como particionar una
relacin basados parcialmente en como la accesan las aplicaciones, pero los
modelos de ubicacin ignoran la parte que esta entrada juega en la
fragmentacin. En consecuencia, los modelos de ubicacin tienen que incluir de
nueva cuenta toda la especificacin de las relaciones entre los fragmentos y
como los accesan las aplicaciones. Parece ms prometedor formular una
metodologa que refleje ms propiamente la interdependencia de las decisiones
de la fragmentacin y ubicacin. Esto requiere ampliar las estrategias actuales de
distribucin. Reconocemos que metodologas integradas tal como la propuesta
podran ser considerablemente ms complejas. Los efectos sinrgicos de la
combinacin de los dos pasos activara el desarrollo de mtodos heursticos de
solucin aceptables.

[Perez 1999]
En este trabajo, se presenta un enfoque innovador en la solucin del problema
del diseo de la distribucin en bases de datos distribuidas, en particular en el
diseo de la fragmentacin vertical y ubicacin de fragmentos.
De acuerdo con la literatura especializada, se han propuesto
diversos mtodos para el diseo de la distribucin. Estos ltimos,
invariablemente han dividido el problema de diseo en dos fases:
fragmentacin y ubicacin. En contraste con estos mtodos, el
modelo matemtico propuesto en este trabajo muestra que es
factible integrar fragmentacin y ubicacin en un solo paso,
permitiendo resolver el problema de una manera ms eficiente

[Mondragn 2001]
Este trabajo incorpora el proceso de replicacin al modelo propuesto por Prez.
Con esta modificacin el modelo integra la fragmentacin vertical con la ubicacin
y replicacin de los fragmentos.

Si se considera que el problema del diseo de la distribucin
incluye los procesos de fragmentacin, ubicacin y replicacin, la
siguiente tabla muestra el desarrollo del enfoque utilizado para
resolverlo.

Unidad de
distribucin
Procesos que
realiza
Enfoque utilizado
[Ceri 1983] Fragmentos
horizontales
Ubicacin y
replicacin
Cada proceso se
realiza en forma
independiente.
[Navathe 1984] Fragmentos
verticales
Fragmentacin,
ubicacin y
replicacin
Cada proceso se
realiza en forma
independiente.
[Apers 1988] Fragmentos
horizontales y
Fragmentacin y
ubicacin
Cada proceso se
realiza de manera
verticales y
operaciones
independiente.
[Cornell 1989] Relaciones y
operaciones
Ubicacin Independiente de
otros procesos
[Lin 1995] Fragmentos
horizontales o
verticales
Ubicacin Independiente de
otros procesos
[March 1995] Fragmentos
horizontales y
verticales y
operaciones
Fragmentacin y
ubicacin
Cada proceso se
realiza de manera
independiente
[Tamhankar
1998]
Fragmentos
horizontales
Fragmentacin,
ubicacin y
replicacin
Cada proceso se
realiza de manera
independiente
[Prez 1999] Fragmentos
verticales
Fragmentacin y
ubicacin
Los procesos se
integran en uno
solo.
[Mondragn
2001]
Fragmentos
verticales
Fragmentacin,
ubicacin y
replicacin
Los procesos se
integran en uno
solo

Del anlisis del estado actual que guarda la solucin al problema
del diseo de la distribucin, se concluye que:

El enfoque propuesto por Prez es una innovadora estrategia de
solucin al problema
No ha sido demostrado que dicha estrategia sea independiente de la
unidad de distribucin que se utilice.
No se ha encontrado evidencia de que exista un modelo de distribucin
de fragmentos horizontales que integre la fragmentacin y la ubicacin.



4. Justificacin


Las empresas modernas estn agresivamente adoptando nuevas soluciones
tecnolgicas para mejorar su competitividad y rentabilidad. Los costos de
administracin de los sistemas han venido creciendo y erosionando los
mrgenes de utilidad. Las compaas desarrolladoras de software de bases de
datos estn desarrollando estrategias que les permitan automatizar la
administracin de sus productos. [Oracle 2002].

El diseo de la distribucin de una base de datos distribuida es una de las
tareas que debe realizar el administrador de la base de datos. Como
responsable del rendimiento global del sistema, debe tomar decisiones acerca
de cmo fragmentar las relaciones y donde ubicar los fragmentos para
mantener los niveles de servicio comprometidos con los usuarios. La dinmica
de los ambientes modernos, caracterizada por una amplia distribucin y
movilidad de los usuarios, incrementa de manera notable el nivel de
complejidad de las tareas del administrador. Es deseable que el servidor de la
base de datos incorpore la capacidad de identificar los patrones de la carga de
trabajo y la capacidad de ajustar el diseo de la distribucin de la base de
datos para responder de manera ptima a los patrones previstos.

La incorporacin de usuarios mviles crea un nuevo escenario a modelar. En
los ambientes distribuidos tradicionales una desconexin se consideraba una
falla del sistema. En los ambientes actuales una desconexin es una condicin
vlida del sistema. Bajo ciertas circunstancias, la consistencia absoluta de los
datos ya no es una condicin necesaria del sistema. Los sistemas de bases
de datos actuales deben ser capaces de trabajar con diferentes niveles de
consistencia de los datos. Esta puede variar entre su nivel en funcin de la
mezcla actual de los usuarios del sistema. Por otra parte, la localizacin de los
usuarios juega un papel importante en aplicaciones de cmputo mvil. En
dichas aplicaciones los datos requeridos por dependen de la ubicacin
geogrfica de los usuarios. Resulta natural considerar fragmentar
horizontalmente las relaciones incorporando informacin geogrfica a dichas
relaciones [Badrinath 1997].
Las tecnologas de la informacin son uno de los ms importantes recursos
estratgicos de las empresas. Les permite tomar ventaja sobre sus
competidores. El crecimiento de la infraestructura tecnolgica de la informacin
y de los volmenes de informacin, ha transformado la administracin de
dichos recursos en un reto formidable para la empresa. Las soluciones
tecnolgicas, que son capaces de sacar ventaja de los ambientes de
comunicacin modernos, tienden ha ser cada vez ms complejas de operar. La
administracin efectiva de dichas soluciones constituye una continua
preocupacin para los tcnicos que los administran.

La solucin al problema del diseo de la distribucin puede contribuir a la
automatizacin de los procesos administrativos de los manejadores de bases
de datos.

Un programa capaz de resolver el problema del diseo de la distribucin puede
ser la base de herramientas de apoyo a los procesos de diseo de bases de
datos distribuidas.

Otros mbitos potenciales de contribucin son el diseo general de soluciones
heursticas y el diseo de los propios mtodos heursticos.

Los modelos de distribucin de fragmentos horizontales pueden contribuir al
diseo de bases de datos mviles. Esto se debe a que la localizacin
geogrfica de los usuarios, fragmenta horizontalmente a las relaciones de la
base de datos.

























5. Descripcin del problema


5.1 Planteamiento del problema

Dados una relacin R, una red de computadoras formada por
los sitios S = {S
1
, S
2
, ..., S
m
} en los cual son ejecutadas las
consultas Q = {q
1
, q
2
, ..., q
k
}.

Con base en la frecuencia, ubicacin y predicados de las
consultas, el problema consiste en determinar la fragmentacin
horizontal F = {F
1
, F
2
, ..., F
n
} de la relacin R y la ubicacin
replicada de los fragmentos en los sitios de la red que
minimicen el costo total de la transmisin generada por la
atencin a las aplicaciones.




5.2 Principales problemas a resolver


5.2.1 Estrategia de fragmentacin.

Diseo de una estrategia de fragmentacin horizontal, que sirva
de base para el diseo de un modelo de programacin entera que
integre la fragmentacin, la ubicacin y la replicacin.

[Prez 1999] considera los atributos de la relacin como unidades
de distribucin y los atributos asociados al mismo sitio se
consideran parte de un solo fragmento. En el caso de la
distribucin horizontal este mecanismo no se aplica directamente,
ya que implica que la unidad de distribucin es una tupla. Como
el nmero de tuplas de una relacin es variable y normalmente
mucho mayor que el nmero de atributos, resulta poco prctico
usar las tuplas como fragmentos elementales.




5.2.2 Estrategia de replicacin.

Definicin de una estrategia de replicacin adecuada para soportar clientes
mviles.

Se requiere un mecanismo de replicacin asncrono que actualice a intervalos
regulares la informacin de las replicas. La duracin del intervalo de
actualizacin determina el nivel de autonoma de los usuarios y el nivel de
consistencia de los datos. Si se actualiza en forma inmediata (sincrnicamente)
o a intervalos muy cortos de tiempo, el nivel de consistencia es muy alto pero la
autonoma de los sitios es muy baja. Con intervalos ms grandes el nivel de
consistencia es menor y la autonoma aumenta. Lo ideal es que el sistema se
adapte automticamente a las caractersticas de la carga de trabajo. En funcin
de la mezcla de usuarios mviles y tradicionales el sistema debe definir la
longitud del intervalo de actualizacin de las replicas.


5.2.3 Modelo Matemtico

Diseo de un modelo de programacin lineal entera que integre la
fragmentacin horizontal y la ubicacin y replicacin de los fragmentos.

Se requiere disear un modelo de programacin lineal entera que integre los
tres procesos sealados. La funcin objetivo debe considerar el costo total de
la transmisin requerida para atender las consultas. Se considerarn
operaciones de lectura y escritura y restricciones de capacidad en los sitios.


5.2.4 Diseo de la solucin heurstica

Diseo de una representacin del problema que sea independiente del mtodo
heurstico que se utilice.

Disear una estructura de datos para representar las soluciones del problema,
la estructura de vecindades y la funcin de evaluacin de las soluciones. Es
deseable que estos elementos permitan la implementacin de soluciones del
problema con cualquier mtodo heurstico.


5.2.5. Configuracin de mtodos heursticos

Anlisis y diseo de la configuracin de los parmetros y la
estrategia de bsqueda de los mtodos a utilizar.

Para cada uno de los mtodos heursticos con que se resuelva e problema, se
requiere estudiar el estado del arte de la configuracin de sus parmetros y de
su estrategia de bsqueda. Con base en este anlisis se realizarn propuestas
de configuracin para la solucin del problema.










6. Propuesta de investigacin

6.1 Hiptesis

Es posible automatizar el diseo de la distribucin de una base de datos
distribuida, integrando la fragmentacin horizontal, la ubicacin y la replicacin.


6.2 Objetivos


Disear las estrategias de fragmentacin y replicacin.

Disear un modelo matemtico de programacin lineal entera que
integre la fragmentacin, la ubicacin y la replicacin.

Disear e implementar soluciones del modelo matemtico mediante
mtodos exactos y heursticos.

6.3 Alcance y limitaciones

Solo se consideran fragmentos horizontales.

Se consideran aplicaciones tradicionales y mviles.

Se consideran restricciones de capacidad de los recursos.

Los fragmentos se pueden replicar en los sitios.

Se consideran operaciones de lectura y escritura.

Solo se considera la fragmentacin de una relacin.



6.4 Productos esperados

Modelo matemtico

Paquete computacional para automatizar la experimentacin con
diversas soluciones heursticas del modelo.

2 Publicaciones en revista

Patente del paquete computacional






7. Plan de trabajo

Actividades
Periodo

Revisin del estado del arte Agosto 2001-Agosto 2002
Propuesta de investigacin Septiembre 2002-Diciembre 2002
Solucin del problema considerando
usuarios tradicionales.
Enero 2003-Agosto 2003
Solucin del problema considerando
usuarios mviles.
Septiembre 2003-Abril 2004
Elaboracin de la tesis Mayo 2004-Diciembre 2004












8. Contenido de la tesis


1. Introduccin
2. Marco terico
3. Modelo propuesto
4. Solucin del modelo
5. Anlisis de resultados
6. Conclusiones y trabajos futuros












9. Referencias


[Apers 1988] Peter M.G. Apers. Data Allocation in Distributed
Database Systems. ACM Transactions on Database
Systems, Vol. 13, No. 3, pp. 263-304, Sep. 1988.

[Badrinath 1997] B. R. Badrinath, S. H. Phatak, An architecture for
Mobile Databases, 1997 Internal Report. Rutgers
University.
[Bellatreche 1997] L. Bellatreche, K. Karlapalem, A. Simonet, Horizontal
class partitioning in object oriented databases, 1997
[Bellatreche 1998] L. Bellatreche, K. Karlapalem, Q. Li, Derived
horizontal class partitioning in oodbss: Design
strategy, analitical model and evaluation, 1998
[Bellatreche 2000] L. Bellatreche, K. Karlapalem, A. Simonet, Algorithms
and support for horizontal class partitioning in object-
oriented databases, 2000
[Ceri 1983]

S. Ceri, S. Navathe y G. Wiederhold Distribution
Design of Logical Database Schemes, Proc. IEEE
Transactions on Software Engineering, vol. SE-9, no.
4, 1983, pp. 487-503.

[Ceri 1984] S. Ceri, G. Pelagatti Distributed databases principles
& systems, McGraw Hill, 1984
[Ceri 1987]

S. Ceri, B. Percini, y G. Wiederhold Distributed
Database Design Methodologies, Proc. IEEE, vol. 75,
no. 5, May 1987, pp. 533-546.

[Chaudhuri 1997] S. Chaudhuri, U. Dayal, An overview of data
warehousing and OLAP technology, 1997.
[Date 1995] C. J. Date, An Introduction to Database Systems,
Volume I, 6
t h
. Ed., Addison-Wesley, USA, 1995.

[Cornell 1989] D. W. Cornell, P.S. Yu. On Optimal Site Assignment
for Relations in Distributed Database Environment.
IEEE Transactions on Software Engineering, Vol. 15,
No. 8, pp 1004-1009, August 1989.
[Dowdy 1982] L. W. Dowdy y D. V. Foster, Comparative Models of
the File Assignment Problem, ACM Computing
Surveys, vol. 14, no. 2, June 1982, pp. 288-313.

[Ezeife 1994]
[Ezeife 1995] C. I. Ezeife, K. Barker, A comprehensive approach to
horizontal class fragmentation in distributed object
based system, 1995
[Ezeife 1999] C. I. Ezeife, J. Zheng, Measuring the performance of
database object horizontal fragmentation schemes,
1999.
[Imielinsky 1992] T. Imielinsky, B. R. Badrinath, Quering in highly
mobile distributed environments, VLDB 1992
[Karlapalem 1992] K. Karlapalem, M. M. A. Morsi and S. B. Navathe, Issues in
Distribution Design of Object-Oriented Databases, in
International Workshop on Distributed Object Management,
1992.
[Karlapalem 1995] K. Karlapalem, Q. Li, Partitioning schemes for object
oriented databases, RIDEDOM 1995.
[Karlapalem 1996] K. Karlapalem, Q. Li, S. Vieweg, Method induced
partitioning schemes for object oriented databases, ICDSC
1996.
[Karlapalem 2000] K. Karlapalem, L. Bellatreche, A. Simonet, Algorithms nd
support for horizontal class partitioning in object oriented
database, 2000
[Lin 1995] X. Lin, M. Orlowska. An integer Linear Programming
Approach to Data Allocation with the Minimum Total
Communication Cost in Distributed Database Systems.
Information Sciences 85, 1995, pp. 1-10.
[March 1995] S. T. March, S. Rho, Allocating Data and
Operations to Nodes in Distributed Database
Design, Transactions on Knowledge and
Data Engineering, vol. 7, No. 2, April 1995,
pp.305-317.

[Mondragn 2001] R. Mondragn, Esquemas adaptativos de replicacin
para bases de datos distribuidas en internet, Tesis de
maestra dirigida por Dr. Prez, CENIDET, 2001.
[Munneke 1999] D. Munneke, K. Whalstrom, M. Mohania,
Fragmentation of multidimensional databases, 1999.
[Navathe 1982] S. Navathe, S. Gadgil, A methodology for view
integration in logical database design, Eighth VLDB,
Mexico city, 1992.
[Navathe 1984] S. Navathe, S. Ceri, G. Wiederhold y J. Dou, Vertical
Partitioning Algorithms for Database Design, ACM
Trans. On Database Systems, vol. 9, no. 4, Dic. 1984,
pp.680-710.

[Navathe 1989] S. Navathe, Vertical partitioning for database design:
a graphical algorithm, 1989
[Navathe 1995] S. Navathe, A Mixed Fragmentation Methodology For Initial
Distributed Database Design, 1995
[Navathe 1998] S. Navathe, S. Mahajan, M. Donahoo, M. Ammar, S.
Malik, Grouping techniques for update propagation in
intermittently connected databases, 1998.
[Oszu 1999]

M.Oszu y P. Valduries. Principles of Distributed
Database Systems. Englewood Cliffs, N. J.:..
Prentice-Hall, 1999, ix, 553p.

[Prez 1999]

Joaqun Prez Ortega, Integracin de la
Fragmentacin Vertical y Ubicacin en el Diseo
Adaptativo de Bases de Datos Distribuidas, Tesis
Doctoral, ITESM Campus Morelos, Abril 1999.

[Sacca 1985]

Domenico Sacca y Gio Widerhold, Database Pertitioning
in a Cluster of Processors, ACM Transactions on Database
Systems, vol. 10, no. 1, Marzo 1995, pp. 29-56.

[Samtani 1998] S. Samtani, M. Mohaina, V. Kumar, Y. Kambayashi,
Recent advances and research problems in data
warehousing, 1998.
[Oracle 2002] R. Sarval, S. Kumar, Database server manageability
strategies and directions, Oracle corporation, 2002
[Widom 1995] J. Widom, Research problems in data warehousing, 1995.
[Yee 1999] W. G. Yee et al., A mathematical optimization approach to
improve server scalability in intermittently synchronized
databases, 1999
[Yee 2001] W. G. Yee et al., Scaling replica maintenance in
intermittently synchronized mobile databases, 2001

Vous aimerez peut-être aussi