Automatizacion del diseño

  • Upload
    monmara

  • View
    35

  • Download
    0

Embed Size (px)

Citation preview

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

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

TesistaHctor Joaqun Fraire Huacuja

AsesorDr. Joaqun Prez Ortega

CoasesorDr. 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 IntroduccinLa 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 fragmentacinCuando 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 horizontalo 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 horizontalo 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 DEP2 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. DEP1 AND 4. DEP1 AND JOB=P JOBP JOB=P JOBP

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: DEP1 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: DEP1 AND m4: DEP1 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 JOBP JOB=P JOBP

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 m4Conclusiones

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: DEP1 AND m6: DEP1 AND m7: DEP1 AND m8: DEP1 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 JOBP AND JOBP AND JOB=P AND JOB=P AND JOBP AND JOBP AND SAL>50 SAL50 SAL50 SAL50 SAL50 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 JOBP AND JOB=P AND JOBP AND JOB=P AND JOBP AND JOB=P AND JOBP

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 JOBP AND JOB=P AND JOBP

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

2.3 Problema de la ubicacin de fragmentosDado 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 asncronaEste 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 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)

Procedimiento de bsqueda de un mnimo local Sea s S Repetir Sea y V( s) Si 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)