You are on page 1of 44

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 tiene 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 2. DEP=1 AND 3. DEP<>1 AND 4. DEP<>1 AND JOB=P JOB<>P JOB=P 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 m2: DEP=1 AND m3: DEP<>1 AND m4: DEP<>1 AND 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. JOB=P JOB<>P JOB=P JOB<>P

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 Proyectos Programadores r s r 1-s 1-r s 1-r 1-s

Fragmentos m1 m2 m3 m4
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 m2: DEP=1 AND m3: DEP=1 AND m4: DEP=1 AND m5: DEP<>1 AND m6: DEP<>1 AND m7: DEP<>1 AND m8: DEP<>1 AND Anlisis Probabilidad de acceso por aplicacin Proyectos Programadores r s r s r 1-s r 1-s 1-r s 1-r s 1-r 1-s 1-r 1-s JOB=P AND JOB=P AND JOB<>P AND JOB<>P AND JOB=P AND JOB=P AND JOB<>P AND JOB<>P AND SAL>50 SAL<=50 SAL>50 SAL<=50 SAL>50 SAL<=50 SAL>50 SAL<=50

Fragmentos m1 m2 m3 m4 m5 m6 m7 m8

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 m2: DEP=1 m3: DEP=1 m4: DEP=1 m5:NOT( DEP=1) m6: NOT(DEP=1) m7: NOT(DEP=1) m8: NOT(DEP=1) AND AND AND AND AND AND AND AND DEP=2 DEP=2 NOT(DEP=2) NOT(DEP=2) DEP=2 DEP=2 NOT(DEP=2) NOT(DEP=2) AND JOB=P AND JOB<>P AND JOB=P AND JOB<>P AND JOB=P AND JOB<>P AND JOB=P 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 m4: DEP=1 m5:NOT( DEP=1) m6: NOT(DEP=1)

AND AND AND AND

NOT(DEP=2) NOT(DEP=2) DEP=2 DEP=2

AND JOB=P AND JOB<>P AND JOB=P AND JOB<>P

o en forma equivalente m3: DEP=1 m4: DEP=1 m5: DEP=2 m6: DEP=2 AND JOB=P AND JOB<>P AND JOB=P AND JOB<>P

2.3 Problema de la ubicacin de fragmentos


Dado un conjunto de fragmentos F = {F1, F2, ..., Fn} y una red de computadoras formada por el conjunto de sitios S = {S1, S2, ..., Sm}, en la cual se ejecutan un conjunto de aplicaciones Q = {q1, q2, ..., qq}. El problema consiste en encontrar la distribucin ptima de F sobre S. [Ozsu 1999] F1 S3 S2 F3 S1 RED Sm Figura 1. Problema de la ubicacin de fragmentos. Fn q3 q1

F1 F2 q 2

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 F1, replicado en los sitios S2 y S3. Los siguientes teoremas

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)=mn. 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 mn. Como cada forma de colocar los fragmentos es una solucin factible, se concluye que card(M)=mn

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)=(2m-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 2m= 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 (2m 1). Se concluye entonces que le nmero de formas de colocar los n fragmentos en los m sitios es (2m 1)n . Como cada forma de colocar los fragmentos es una solucin factible, se concluye que card(M)= (2m 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 NPcompleto. 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.

P1 R2

R1 R2

R2

P1: Servidor primario 1 R1 P2: Servidor primario 2

R2

R1: Replica administrada por el servidor P2 primario 1 R1

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.

1 2 P 3 R

3 R 1 Modificacin de replica 2. Informacin inmediata al primario 3. Actualizacin de todas las replicas

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.

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.

1 3 4 P 5 5 3 R Bitcora local R 2 Bitcora local

1. Modificacin en replica 2. Registro de la modificacin en la bitcora 3. Bitcoras al primario durante la sincronizacin

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

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 soptima E(soptima)<= E(s) para toda s S. S tal que

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

S tal que

A la solucin soptima 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 2S 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 Fn, un conjunto de m sitios Sm y un conjunto de k consultas Qk, 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(Fn,Sm) Card(S) = mn

Funcin de evaluacin E(s) = Costo de operaciones de solo lectura(s,Qk) + Costo de operaciones de actualizacin(s,Qk) E=E(Qk)

Instancias del problema Una instancia del problema, define una configuracin determinada de fragmentos, sitios y consultas: (S,E)=(S(Fn,Sm),E(Qk))==(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<> i1,i2 con s(i1)=r(i2) y s(i2)=r(i1) Dada una solucin factible s, un ubicacin de dos fragmentos. vecino r de s se obtiene cambiando la

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 soptima = valor muy grande for k=1 to MAXITER s=Construye() s=Local(s) if E(s)<E(soptima) soptima=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<> smin= min {eval(t) para cada t C}

smax=max {eval(t) para cada t C} RCL= { t C tal que eval(t) <= smin + (smax-smin) } 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 (2,2,1,3) (1,2,3,2) (2,3,1,2) (3,1,2,2) (3,2,1,2) (3,2,2,1) Evaluacin 120 100 89 112 75 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 distribucin Fragmentos horizontales de Procesos que Enfoque utilizado realiza Ubicacin y Cada proceso se replicacin realiza en forma independiente.

[Ceri 1983]

[Navathe 1984] Fragmentos verticales [Apers 1988] Fragmentos horizontales verticales operaciones Relaciones operaciones Fragmentos horizontales verticales Fragmentos horizontales verticales operaciones Fragmentos horizontales Fragmentos verticales Fragmentos verticales

Fragmentacin, ubicacin replicacin Fragmentacin y ubicacin y y Ubicacin Ubicacin o Fragmentacin y ubicacin y Fragmentacin, ubicacin replicacin Fragmentacin ubicacin Fragmentacin, ubicacin replicacin

Cada proceso se y realiza en forma independiente. y Cada proceso se realiza de manera independiente. Independiente de otros procesos Independiente de otros procesos y Cada proceso se realiza de manera independiente Cada proceso se y realiza de manera independiente y Los procesos se integran en uno solo. Los procesos se y integran en uno solo

[Cornell 1989] [Lin 1995] [March 1995]

[Tamhankar 1998] [Prez 1999] [Mondragn 2001]

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 administracin de sus productos. [Oracle 2002].

automatizar la

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 = {S1, S2, ..., Sm} en los cual son ejecutadas las consultas Q = {q1, q2, ..., qk}.

Con base en la frecuencia, ubicacin y predicados de las consultas, el problema consiste en determinar la fragmentacin horizontal F = {F1, F2, ..., Fn} 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 mtodos exactos y heursticos. matemtico mediante

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
Agosto 2001-Agosto 2002 Septiembre 2002-Diciembre 2002 Enero 2003-Agosto 2003 Septiembre 2003-Abril 2004 Mayo 2004-Diciembre 2004

Revisin del estado del arte Propuesta de investigacin Solucin del problema considerando usuarios tradicionales. Solucin del problema considerando usuarios mviles. Elaboracin de la tesis

8. Contenido de la tesis 1. 2. 3. 4. 5. 6. Introduccin Marco terico Modelo propuesto Solucin del modelo Anlisis de resultados 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 objectoriented 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] [Ceri 1987] S. Ceri, G. Pelagatti Distributed databases principles & systems, McGraw Hill, 1984 S. Ceri, B. Percini, y G. Wiederhold Distributed Database Design Methodologies, Proc. IEEE, vol. 75, no. 5, May 1987, pp. 533-546. S. Chaudhuri, U. Dayal, An overview of data warehousing and OLAP technology, 1997. C. J. Date, An Introduction to Database Systems, Volume I, 6 th . Ed., Addison-Wesley, USA, 1995. 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.

[Chaudhuri 1997] [Date 1995]

[Cornell 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]

[Ezeife 1999]

[Imielinsky 1992] [Karlapalem 1992]

[Karlapalem 1995] [Karlapalem 1996]

[Karlapalem 2000]

[Lin 1995]

C. I. Ezeife, K. Barker, A comprehensive approach to horizontal class fragmentation in distributed object based system, 1995 C. I. Ezeife, J. Zheng, Measuring the performance of database object horizontal fragmentation schemes, 1999. T. Imielinsky, B. R. Badrinath, Quering in highly mobile distributed environments, VLDB 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. K. Karlapalem, Q. Li, Partitioning schemes for object oriented databases, RIDEDOM 1995. K. Karlapalem, Q. Li, S. Vieweg, Method induced partitioning schemes for object oriented databases, ICDSC 1996. K. Karlapalem, L. Bellatreche, A. Simonet, Algorithms nd support for horizontal class partitioning in object oriented database, 2000 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] [Navathe 1995] [Navathe 1998] S. Navathe, Vertical partitioning for database design: a graphical algorithm, 1989 S. Navathe, A Mixed Fragmentation Methodology For Initial Distributed Database Design, 1995 S. Navathe, S. Mahajan, M. Donahoo, M. Ammar, S. Malik, Grouping techniques for update propagation in intermittently connected databases, 1998. M.Oszu y P. Valduries. Principles of Distributed Database Systems. Englewood Cliffs, N. J.:.. Prentice-Hall, 1999, ix, 553p. 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. 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. S. Samtani, M. Mohaina, V. Kumar, Y. Kambayashi, Recent advances and research problems in data warehousing, 1998. R. Sarval, S. Kumar, Database server manageability strategies and directions, Oracle corporation, 2002 J. Widom, Research problems in data warehousing, 1995. W. G. Yee et al., A mathematical optimization approach to improve server scalability in intermittently synchronized databases, 1999 W. G. Yee et al., Scaling replica maintenance in intermittently synchronized mobile databases, 2001

[Oszu 1999]

[Prez 1999]

[Sacca 1985]

[Samtani 1998]

[Oracle 2002] [Widom 1995] [Yee 1999]

[Yee 2001]

You might also like