SciELO - Scientific Electronic Library Online

 
vol.33 número3Patologias associadas à distribuição natural de se, ca e mg sobre a crosta terrestrePesca, caça e nutrição humana em bosques tropicais: falta de gordura? índice de autoresíndice de assuntospesquisa de artigos
Home Pagelista alfabética de periódicos  

Serviços Personalizados

Journal

Artigo

Indicadores

Links relacionados

Compartilhar


Interciencia

versão impressa ISSN 0378-1844

INCI v.33 n.3 Caracas mar. 2008

 

Preoptimización de consultas en fuentes de datos con capacidades limitadas.

Elsa Tovar y María Esther Vidal

Elsa Liliana Tovar Flórez. Licenciada en Computación, Universidad Central de Venezuela (UCV). Magister y doctorando en Ciencia de la Computación, USB, Venezuela. Profesora, Universidad de Carabobo, Venezuela. Dirección: Departamento de Computación, Facultad Experimental de Ciencia y Tecnología, Universidad de Carabobo, Sector Bárbula, Naguanagua 2005. Edo. Carabobo, Venezuela. e-mail: eltovar@uc.edu.ve

María Esther Vidal Merodio. Ingeniera en Computación, Magister y Doctora en Ciencia de la Computación, Universidad Simón Bolívar (USB), Venezuela. Profesora, USB, Venezuela. e-mail: mvidal@ldc.usb.ve

RESUMEN

Tecnologías emergentes tales como Web Semántica, P2P y Grid Semántico han hecho accesible una gran cantidad de fuentes de datos, caracterizadas por propiedades que impactan en la complejidad de la optimización tradicional de consultas y en las tareas de procesamiento. En este trabajo se describe el efecto de las capacidades de consulta limitadas en el proceso de encontrar un buen plan para evaluar una consulta. Este problema es NP-Completo y diferentes enfoques han sido utilizados para encontrar soluciones aproximadas. Se considera el proyecto WebSrcMed, que implementa una estrategia de optimización de dos fases para encontrar planes de ejecución buenos en términos de bajo costo y seguros ya que, al menos, una combinación de fuentes de datos puede responder la consulta. En la primera fase, las descripciones de capacidades limitadas son consideradas para particionar el espacio de búsqueda en conjuntos de preplanes donde las capacidades de la consulta son satisfechas y se selecciona un buen preplán entre ellos. En la fase, el espacio de planes inducidos por el preplán es explorado y se produce un buen plan de ejecución. Debido a que espacio de búsqueda de los preplanes puede ser grande, se requieren técnicas eficientes para explorarlo adecuadamente. Se presenta un algoritmo evolutivo que encuentra eficientemente preplanes seguros y buenos. En un estudio experimental se observó que la solución encuentra buenos preplanes para consultas complejas. La eficiencia del algoritmo utilizado (número de soluciones diferentes respecto al número de soluciones encontradas) es superior a la eficiencia mostrada en técnicas aleatorias existentes.

Query preoptimization in data sources with limited capabilities

SUMMARY

Emerging technologies such as Semantic Web, P2P and Semantic Grid have made available a huge number of sources, usually characterized by properties that touch on the complexity of traditional query optimization and processing tasks. In this paper, the effect of limited query capabilities during the process of identifying a good plan to evaluate a query is described. This problem has been found to be NP-Complete and different approaches have been proposed to generate an approximated solution to the problem. The WebSrcMed project, which implements a two-step cost-based optimization strategy to identify a good and safe execution plan, is considered. In a first step, descriptions of the limited query capabilities are considered to partition the space of plans into sets of pre-plans where the query capabilities of the selected sources are satisfied and a good pre-plan is selected among them. In a second step, the space of plans induced by the selected pre-plan is explored, and a good execution plan produced. Since the size of the pre-plans’ solution space may be large, efficient exploration techniques to solve the problem are required. An evolutive algorithm that finds good and safe preplans efficiently is presented. An experimental study led to observe that the solution is able to efficiently identify good pre-plans for complex queries. The efficiency of the algorithm used (number of different solutions related to the total number of solutions found) is better than the efficiency shown by existing randomized techniques.

Preotimização de consultas em fontes de dados com capacidades limitadas.

RESUMO

Tecnologias emergentes tais como Web Semântica, P2P e Gris Semântico tem facilitado o acesso a uma grande quantidade de fontes de dados, caracterizadas por propriedades que impactam na complexidade da otimização tradicional de consultas e nas tarefas de processamento. Neste trabalho se descreve o efeito das capacidades de consulta limitadas no processo de encontrar um bom plano para avaliar uma consulta. Este problema é NP-Completo e diferentes enfoques têm sido utilizados para encontrar soluções aproximadas. Se considera o proyecto WebSrcMed, que implementa uma estratégia de otimização de duas fases para encontrar planos de execução bons em termos de baixo custo e seguros já que, ao menos, uma combinação de fontes de dados pode responder a consulta. Na primeira fase, as descrições de capacidades limitadas são consideradas para particionar o espaço de busca em conjuntos de pré-planos onde as capacidades da consulta são satisfeitas e se seleciona um bom pré-plano entre eles. Na fase, o espaço de planos induzidos pelo pré-plano é explorado e se produz um bom plano de execução. Devido a que espaço de busca dos pré-planos pode ser grande, se requerem técnicas eficientes para explorá-lo adequadamente. Apresenta-se um algoritmo evolutivo que encontra eficientemente pré-planos seguros e bons. Em um estudo experimental se observou que a solução encontra bons pré-planos para consultas complexas. A eficiência do algoritmo utilizado (número de soluções diferentes em relação ao número de soluções encontradas) é superior à eficiência mostrada em técnicas aleatórias existentes.

PALABRAS CLAVE / Algoritmos Evolutivos / Capacidades de Consulta / Consultas Limitadas / Fuentes de Datos Web / Optimización de Consultas /

Recibido: 16/04/2007. Modificado: 28/01/2008. Aceptado: 29/01/2008.

Las tecnologías emergentes tales como la Web Semántica, P2P y el Grid Semántico han hecho accesible una cantidad enorme de fuentes de datos, extendidas a lo largo del planeta en universidades, laboratorios, institutos, bibliotecas, centros de investigación y otras instituciones privadas o públicas. Adicionalmente, la Internet se ha extendido como una plataforma efectiva para la telecomunicación, además de ser un escenario de gran potencialidad para el intercambio y la búsqueda de información. La complejidad de las tareas propias de los sistemas de gestión de datos como la optimización de consultas y el procesamiento de datos (Ramakrishnan y Gehrke, 2000) se pueden ver afectadas por ciertos elementos de la Internet.

Usualmente, las fuentes de datos que pueden ser accedidas a través de la Internet tienen capacidades de procesamiento de consultas diferentes, por lo que algunas pueden tener limitaciones en el tipo de operación a ejecutar. Además, muchas de estas fuentes suelen tener interfaces que requieren de la instanciación de algún atributo para retornar otros atributos requeridos en la consulta. Estas características de las fuentes de datos conforman las llamadas capacidades limitadas de las fuentes de datos consideradas en este trabajo.

Vía Internet puede haber cientos o miles de fuentes de datos con capacidades limitadas que pudieran contestar una consulta en particular. Esta propiedad puede impactar en las tareas de optimización y evaluación de consultas. Tradicionalmente, para responder una consulta se deben ejecutar las siguientes tareas: 1) el análisis para chequear la sintaxis y la semántica (parsing); 2) la optimización que consiste inicialmente en la enumeración de todos los planes de ejecución y, en segundo lugar, la escogencia de aquel que minimice el costo de procesamiento basado en algún criterio de selección; y 3) el plan de evaluación escogido en el paso anterior es ejecutado y los elementos de la base de datos que satisfacen la consulta dada son retornados al usuario. Tradicionalmente, los planes de ejecución son representados como una estructura de árbol donde los nodos hojas representan subobjetivos base de la consulta y los nodos intermedios corresponden a los diferentes operadores que relacionan a los subobjetivos de la consulta. Los nodos internos están anotados con información de los algoritmos que serán utilizados durante la evaluación de la consulta.

En este trabajo se presenta el efecto en la tarea de optimización de las capacidades limitadas de las fuentes de datos que pueden ser usadas para responder una consulta. Este problema de optimización ha sido abordado anteriormente por varios autores (Levy et al., 1996; Papakonstantionou et al., 1996; Haas et al., 1997; Florescu et al., 1999; Vidal, 2000), así como en el proyecto WebSrcMed (Vidal et al., 1998; Zadorozhny et al., 2002). Estos trabajos proponen soluciones basadas en arquitecturas de mediadores y traductores (Wiederhold, 1992). Los mediadores son componentes de software que se encargan de realizar las tareas de descomponer las consultas en distintos subobjetivos (llamada también tarea de reescritura basada en la capacidad (CBR: capability based rewritting), identificar las fuentes de datos relevantes para cada subconsulta, y encontrar un buen plan de ejecución. Por otra parte, los traductores están conectados a las fuentes de datos y tienen como objetivo adaptar las subconsultas enviadas por el mediador al lenguaje de consulta local de las fuentes de datos, y traducir las respuestas que deben ser devueltas hacia el mediador.

El proyecto WebSrcMed implementa una estrategia de optimización de dos fases para encontrar planes de ejecución buenos en términos de su bajo costo y ser seguros, ya que al menos una combinación de fuentes de datos puede responder la consulta. En la primera fase de la optimización, las descripciones de las capacidades limitadas son consideradas para particionar el espacio de búsqueda en conjuntos de preplanes. Formalmente, un preplán es un orden parcial de ejecución de los subobjetivos de la consulta. Esta fase culmina con la escogencia de un buen preplán. En la segunda fase, el espacio de planes inducidos por el preplán es explorado y se produce un buen plan de ejecución. Raschid et al. (2000) demostraron que el tamaño del espacio de preplanes es exponencial respecto al número de subobjetivos de la consulta. Vidal et al. (1998) utilizaron una estrategia aleatoria llamada "mejoramiento iterativo" que encuentra preplanes de buen costo en un tiempo aceptable. Sin embargo, el número de soluciones repetidas del total de soluciones generadas durante la preoptimización es muy grande, indicando una baja eficiencia en la manera de explorar el espacio de búsqueda.

Debido a que el espacio de búsqueda de preplanes es grande y que se requieren técnicas para explorarlos eficientemente, en este trabajo se presenta un algoritmo evolutivo capaz de recorrer en forma eficiente el espacio de búsqueda de preplanes y encontrar uno de costo mínimo. Los algoritmos evolutivos son metaheurísticas para optimización y búsqueda de soluciones en espacios no lineales.

Ejemplo

Considérese una arquitectura de mediadores y traductores. El mediador interactúa directamente con una aplicación, desde la cual los usuarios interrogan al sistema a través de consultas especificadas en el lenguaje SQL (Ramakrishnan y Gehrke, 2000). El mediador se encarga de descomponer las consultas en subconsultas, de determinar qué fuentes de datos son relevantes a cada subconsulta y de identificar un plan de ejecución para esa consulta. Los traductores se comunican con el mediador y se encargan de resolver los conflictos de comunicación con las fuentes de datos, que designaremos como F1, F2 y F3, autónomas y distribuidas por distintas regiones de Venezuela. F1, F2 y F3 son fuentes de datos de un dominio común relacionado con información propia de centros de investigación de Venezuela. Se asume que no todas las fuentes de datos pueden ejecutar las mismas operaciones sobre los datos para una consulta dada. En la Tabla I se describen las relaciones según el modelo relacional. Seguidamente se presentan dos consultas.

Consulta 1: "Indique la ubicación del centro de investigación donde trabaja el Dr. Alonso Gamero".

select Centro_Inv.ubicación

from Investigador, Centro_Inv

where Investigador.nombre_inv= 

"Alonso Gamero" and

Investigador.lug-trabajo=

Centro_Inv.nombre-cen

Para esta consulta podría generarse un plan de ejecución que tenga el siguiente orden del operador: Investigador Centro_Inv. Sin embargo, este plan no puede ser evaluado por las fuentes disponibles, ya que F2 requiere instanciar el atributo ubicación de la relación Centro_Inv para poder generar su información. Un optimizador de consultas debe identificar que este plan de ejecución no es seguro, ya que ninguna fuente de datos puede evaluarlo, y debe entonces descartarlo o quizás nunca generarlo. Con este ejemplo se puede observar que las fuentes de datos con capacidades limitadas pueden llevar a generar tanto planes de ejecución seguros como no seguros, situación que no se presenta en los tradicionales sistemas relacionales. Otro aspecto del problema es el que trata con los distintos planes de ejecución que, aún siendo seguros, presentan diferentes costos y, por ello, deben ser estudiados a fin de escoger uno de costo menor. Para estudiar este aspecto del problema se presenta la siguiente cosnsulta.

Consulta 2. "Dar los títulos de los libros publicados por todos los investigadores que nacieron el 7 de junio de 1966".

select título-l

from Investigador, Libros_Pub

where Investigador.ci =

Libros_Pub. ci-autor and

fecha-nac = 07/06/1966

Supóngase que, para este ejemplo, se consideran las fuentes de datos presentadas anteriormente y otras fuentes de datos más (F4, F5, F6, F7) que contienen información adicional sobre los investigadores venezolanos y sus publicaciones. Para responder a la consulta, el mediador hace uso de la siguiente información: a) un esquema con las relaciones en el mediador como se aprecia en la Tabla II, y b) un conjunto de descripciones de las fuentes de datos y sus capacidades (md). Para describir las capacidades limitadas de cada fuente de datos es necesario indicar, en el mediador, cómo pueden ser consultadas las relaciones; es decir, qué atributos deben ser instanciados y qué valores de atributos se retornan en cada relación. Esta información puede ser llevada como

Mdi: (Fi, Ri, cap)

donde Fi: identificador de la fuente de datos, Ri: identificador de la relación, cap: conjunto de capacidades limitadas de la fuente de datos Fi respecto a la relación Ri.

El conjunto cap indica qué atributos deben ser instanciados (atributos de entrada) en la relación Ri para poder retornar otros atributos de Ri (atributos de salida). Estas limitaciones se expresan como

atributos de entrada ® atributos de salida.

En este ejemplo, las capacidades de las fuentes de datos están expresadas en Tabla III y de ella se obtiene que la relación ‘Investigador’ de la fuente de datos F1 puede ser consultada sin ningún tipo de restricciones mediante Md1, pues no requiere conocer el valor de ninguno de sus atributos para devolver los valores del resto de los atributos que contiene ([ ] ® ci, nombre-inv, e-mail-inv, fecha-nac, lug-trabajo). No sucede igual con las relaciones ‘Investigador’ de las fuentes de datos F4 y F5, descritas en Md2 y Md3, respectivamente, donde se requiere conocer los valores de ‘ci’ para retornar los valores de los atributos ‘nombre-inv’, ‘e-mail-inv’, ‘fecha-nac’, ‘lug-trabajo’ (ci ® nombre-inv, e-mail-inv, fecha-nac, lug-trabajo ) y de ‘fecha-nac’ para retornar ‘ci’, ‘nombre-inv’, ‘e-mail-inv’, ‘lug-trabajo’ (fecha-nac ® ci, nombre-inv, e-mail-inv, lug-trabajo). Debido a que las relaciones ‘Investigador’ y ‘Libros Pub’ tienen varias descripciones en el mediador (Md1, Md2, Md3 y Md5, Md6, Md7), la cantidad de planes de ejecución está determinada por la combinación de las relaciones involucradas en la consulta que el mediador haga respetando las capacidades de las fuentes de datos. Uno de los siete planes de ejecución que se tienen para la consulta 2 es, por ejemplo, Libros_Pub Investigadorfecha-nac= 07/06/1966, tomando a Libros_Pub de F3 según está indicado en Md5 y a Investigador de F1 según indica Md1.

A medida que se tratan consultas con más relaciones involucradas en este tipo de operadores (operadores binarios como el join), el espacio de posibles planes de ejecución crece exponencialmente. Ante la imposibilidad de recorrer exhaustivamente el espacio de búsqueda de planes de ejecución, surge la necesidad de diseñar estrategias eficientes que guíen la búsqueda hacia un plan de ejecución seguro y bueno. Por seguro se entiende que, por lo menos, haya una combinación de descripciones de las relaciones, entre aquellas que están disponibles en las fuentes de datos, que provea la respuesta a la consulta. Por otra parte, un plan de ejecución bueno es aquel que, además de seguro, tenga un costo de ejecución tal que no se encarezca inadecuadamente el tiempo de respuesta de la consulta.

Antecedente: El Proyecto WebSrcMed

WebSrcMed es un proyecto que trata con capacidades limitadas en fuentes de datos accesibles vía Internet. Tiene una arquitectura de mediadores y traductores. Sus principales características se centran en su enfoque de la tarea de capacidad basada en reescritura (CBR) y el optimizador de consultas de dos fases. La tarea CBR especifica qué propiedades tiene el mediador. En WebSrcMed, la CBR es tal que el mediador solo acepta aquella consulta para la cual hay, por lo menos, una fuente de datos que pueda evaluarla. Pero la característica más novedosa de WebSrcMed es el enfoque de la optimización en dos fases, la preoptimización y la optimización de la consulta. En primera instancia, la preoptimización limita la búsqueda de una solución a las áreas del espacio de soluciones en donde se encuentren planes de ejecución seguros. Luego, en la optimización, solo se enumeran planes que están dentro de las porciones del espacio de soluciones identificadas en la preoptimización. En la preoptimización se identifican porciones del espacio de planes de ejecución donde solo existen planes seguros. Cada porción está caracterizada por un preplán. Formalmente, un preplán corresponde a un orden parcial de los subobjetivos de una consulta y un conjunto de dependencias entre estos subobjetivos que se establecen a partir de las descripciones en el mediador. Los planes de ejecución corresponden a una enumeración simple de los subobjetivos de una consulta. Más específicamente, los preplanes constan de dos conjuntos, uno conformado por órdenes parciales de los subobjetivos de la consulta y el otro es el conjunto de órdenes de precedencias entre los subobjetivos. Ambos componentes representan las restricciones impuestas por las capacidades de las fuentes de datos escogidas para responder a la consulta. En trabajos anteriores (Vidal, 2000) se ha mostrado que existe una correlación positiva entre el promedio de costos para los preplanes de una consulta y sus correspondientes mejores planes de ejecución.

Modelo de Costos

En WebSrcMed, cada preplán caracteriza a un sector del espacio de búsqueda donde hay planes de ejecución seguros, indicando qué fuentes de datos son relevantes para responder a la consulta y las capacidades limitadas que ellas exhiben. Además, el preplán indica el orden de ejecución (a efectuarse en las fuentes de datos correspondientes) de los subobjetivos de la consulta. Mantiene métricas asociadas a cada una de las capacidades de las fuentes de datos, tales como: a) costo remoto: tiempo que toma retornar la primera tupla; b) costo de descargar (downloading): costo de descargar datos relevantes desde la fuente de datos, lo que puede significar acceso a múltiples páginas de memoria; y c) cardinalidad del resultado: número de tuplas retornadas. El modelo de costos para los preplanes toma en consideración la existencia de dependencias entre los subobjetivos de la consulta para encontrar el costo de un preplán. Vidal (2000) propuso un algoritmo basado en una metaheurística conocida como "mejoramiento iterativo". Este algoritmo genera, de forma aleatoria, un preplán inicial al que sucesivamente se le van aplicando transformaciones que llevan a nuevos preplanes seguros. Sin embargo, el número de veces que encuentra el mismo preplán es muy grande respecto al número total de preplanes encontrados.

Este trabajo presenta un algoritmo evolutivo, como alternativa al algoritmo que usa WebSrcMed, para realizar la fase de preoptimización. La hipótesis consiste en establecer que la implementación de conceptos como el cruce de preplanes progenitores que puedan combinar sus mejores características (aquellas que lo hacen tener un costo más bajo) para hacerlas heredar a sus descendientes (otros preplanes) y la implementación del concepto evolutivo de mutación, que permite explorar sectores distintos del espacio de búsqueda (evitando el riesgo de encontrar un máximo local como solución definitiva). Ello llevará a mejorar la eficiencia en la exploración del espacio de búsqueda, encontrando buenos y seguros preplanes con un mínimo de repeticiones.

Formalización del Problema

Este trabajo aborda el problema de encontrar un orden parcial de los subobjetivos de una consulta, al cual se denomina preplán. Los parámetros del problema y las soluciones están asociados al manejo de la optimización de consultas en la arquitectura de mediadores-traductores y a la naturaleza heterogénea y de capacidades limitadas de las fuentes de datos. Por esta razón, es necesario definir previamente algunos conceptos específicos del contexto del problema.

Descripción de una fuente de datos. La descripción de una fuente de datos md (llamada también descripción del mediador) consiste en una tripleta (F, R, cap) donde F: identificador de la fuente de datos, R: identificador de la relación, y cap: conjunto de capacidades limitadas de la fuente de datos F respecto a la relación R. Las limitaciones se expresan como

atributos de entrada -> atributos de salida

Esquema del mediador. Al conjunto de todas las relaciones Ri y de todas las descripciones mdj en el mediator se le conoce con el nombre de esquema del mediador MD.

Consulta en el mediador. Una consulta en el mediador mq es un conjunto de subobjetivos {C1,C2,...,Cn} donde Ci=(R,AR), R: identificador de una relación descrita en el mediador, y AR: subconjunto de atributos de la relación R referidos en la consulta.

smqo. Dada una consulta en el mediador mq={C1,C2,...,Cn}, un ordenamiento seguro para mq es un orden parcial smqo=<SetSub1, SetSub2,...,SetSubm>, con m£n, de los subobjetivos de la consulta donde cada SetSubi es una partición de mq y por cada subobjetivo Ci en mq, existe una descripción md en el mediador y md es satisfecha por Ci en smqo. Una descripción en el mediador md es satisfecha por un subobjetivo Ci si Ci contiene constantes o valores en uno o algunos de sus atributos que instancian los atributos de entrada de md.

smqod. Dada una consulta en el mediador mq={C1,C2,...,Cn} y un ordenamiento seguro para mq, es un orden parcial smqo=<SetSub1,SetSub2,...,SetSubm>, un conjunto de dependencias del ordenamiento de la consulta en el mediador smqod es el conjunto de pares (Ci,Cj), con i¹j tal que CiÎSetSubk y CjÎSetSubl, SetSubk precede a SetSubl en smqo, y Cj contiene un atributo que es instanciado por Ci en smqo.

Preplán. Dada una consulta en el mediador mq={C1,C2,...,Cn}, un preplán pp es un par (smqo, smqod) donde smqo corresponde a un ordenamiento seguro de los subobjetivos de la consulta en el mediador y smqod es el conjunto de dependencias del ordenamiento para mq en smqo.

Función objetivo para los preplanes. Sea sopp el espacio de soluciones o espacio de búsqueda de los preplanes en el problema de optimización combinatoria preoptimización de una consulta en ambientes de fuentes de datos con capacidades limitadas, la función c/so: sopp ® R es aquella que asigna un valor real a cada preplán de sopp para medir en forma cuantitativa su calidad como solución.

En el problema de la preoptimización de consultas se utiliza un modelo de costos para asignar un valor correspondiente al costo de un preplán (Raschid et al., 2000). En este trabajo se pretende encontrar un preplán que constituya una buena solución al problema de la preoptimización. El preplán encontrado será una solución óptima, definida como

Solución óptima. Dado un conjunto de valores reales asignados por una función objetivo c/so: so ® R para un subconjunto de soluciones del espacio de búsqueda so en una instancia de un problema de optimización combinatoria oopt= (o, c/so), la solución óptima al problema es aquella que sea el mínimo o el máximo, según sea el tipo de optimización, de los valores asignados por c/so al subconjunto considerado de so.

El preplán que constituye la solución óptimal al problema de la preoptimización de consultas en fuentes de datos con capacidades limitadas, caracteriza a un conjunto de planes de ejecución como seguros; es decir, planes para los cuales existe una combinación de fuentes de datos que puede contestar la consulta y, además, son buenos en términos de bajo costo. Más formalmente, un plan bueno y seguro se define como

Plan seguro. Dada una consulta mq={C1,…,Cn} y un conjunto de descripciones en el mediador MD={md1,…,mdn} de forma que Ci= (Ri,Ai) y mdi representa una descripción de capacidad sobre Ri, y sea ps(MD) un ordenamiento de los subobjetivos en mq, donde cada Ci está asociado a su correspondiente descriptor de capacidad en MD, se dice que ps(MD) es un plan seguro si para todo Ci= (Ri,Ai) en sp(MD) se cumplen las siguientes condiciones: a) los atributos de Ri en Ai son un subconjunto de los atributos en mdi, y b) los atributos de entrada de mdi están instanciados.

Atributo instanciado. Sea ps(MD)=<C1,…, Cn> un ordenamiento de subobjetivos sobre un conjunto de descripciones de capacidades de fuentes de datos MD={md1,…,mdn}, sea Ci=(Ci,Ai) un subobjetivo en sp(MD) y sea Att un atributo en Ci, se dice que Att está instanciado en ps(MD) si se cumple alguna de las siguientes condiciones:

a) Existe un par (Att,v) en Ai y v es una constante.

b) Existe un par (Att,X) en Ai, donde X es una variable y existe un subobjetivo Cg=(Rg,Ag) en sp(MD) con g<i, tal que

b1) Existe un par (att’, X) en Ag

b2) Att’ es un atributo de salida en mdg, es decir, att’ es un atributo de salida en el descriptor de capacidades asociado a Cg.

Plan bueno. Sea ps(MD) un plan seguro y sea umbral un valor real, se dice que ps(MD) es bueno si costo (ps(MD)) < umbral, donde costo es la función de costos de los planes.

Con base en las definiciones presentadas anteriormente, se puede decir que:

1- La preoptimización de una consulta en un ambiente de fuentes de datos con capacidades limitadas es una instancia oopt= (o,c/so) del problema de optimización combinatoria Oopt , y

2- La instancia oopt= (o,c/so) se define como o= (p,so), donde p= (MD,mq), siendo MD el esquema del mediador y mq un ordenamiento de los subobjetivos de la consulta que acepta el mediador, para la cual hay, por lo menos, una combinación de descripciones de las fuentes de datos en el mediador que tienen los datos y las capacidades de procesamiento requeridas para responder a la consulta (Vidal, 2000).

Además, so= sopp, donde sopp: espacio de búsqueda de los preplanes de la consulta que orientan hacia planes de ejecución seguros, y c/so= c/sopp es la función objetivo mediante la cual se le asigna un valor a cada preplan encontrado en el espacio de búsqueda. Debido a que la técnica mediante la cual se explorará el espacio de búsqueda es la de un algoritmo evolutivo, esta función objetivo es la función de aptitud. Esta función mide cuán interesante es un preplán en términos del costo. En el contexto de este problema, mientras menos costoso sea un preplán más apto es para su medio. En esta función no aplican restricciones para garantizar soluciones que estén en una región factible del espacio de búsqueda pues solo se aplica a preplanes válidos. Bajo esta conceptualización de la aptitud, no son necesarias otras funciones de "reparación" de individuos no adaptados. La función objetivo es

Aptitud(preplán)= 1/Costo(preplán) + K

donde K: constante conveniente para evitar resultados indeterminados de la aptitud (preplán) y costo (preplán) es un valor derivado de aplicar la extensión del modelo de costos usado por Predator (Seshadri, 1997) al cual se le han añadido las métricas que requiere WebSrcMed para procesar una consulta.

Algoritmo Evolutivo

La solución al problema de la preoptimización es encontrar un buen preplán en términos de bajos costos para la consulta aceptada por el mediador. Entonces, el espacio de soluciones al problema es el espacio de los preplanes de la consulta, la población. Así, cada preplán es un individuo de la población, como se aprecia en la Figura 1. En este caso, la preoptimización debe considerar múltiples descripciones de fuentes de datos para cada relación en el esquema del mediador. Cada una de estas descripciones (md, mediator description) puede indicar un conjunto diferente de capacidades de procesamiento de consultas de la fuente de datos. Estas capacidades son explícitamente indicadas en el preplán a través del ordenamiento de subobjetivos de la consulta y del conjunto de dependencias entre esos subobjetivos, smqo y smqod respectivamente. Considerando el preplán como una estructura de datos (compuesta del smqo y el smqod) lo que diferencia a un preplán de otro es la asignación de las mdi para cada subobjetivo de la consulta que impacta en la conformación del smqo. Una vez asignadas las mdi y conformado el smqo se pueden estudiar las dependencias generadas, el smqod. De esta forma, la representación de los individuos de la población puede ser conformada por un ordenamiento de descripciones del mediador que corresponden, una a una, con el ordenamiento de los subobjetivos de la consulta.

Concepto de "Harén"

Con la intención de encontrar la forma de minimizar el número de preplanes repetidos en el proceso de recorrer el espacio de búsqueda, se propone una implementación novedosa, el concepto de ‘harén’. Este harén, es una analogía con la organización social de ciertas especies del reino animal, basada en la existencia de algún progenitor dominante que se cruza con los individuos del sexo contrario, que constituyen su harén. Si se escoge un individuo al que se llamará el "macho dominante", este individuo, que es el de mayor aptitud en la población, se cruza con las mejores hembras para legar a sus descendientes los rasgos genéticos que les permitirán adaptarse bien a su medio. Por su parte, las hembras ven temporalmente afectada su aptitud debido a la gestación y cría de su descendiente. Para escoger, tanto al "macho dominante" como a las "mejores hembras", se usó el mecanismo de selección de la ruleta normalizada, donde la probabilidad de selección de un individuo es proporcional a su aptitud, simulando así la selección natural.

Mutación

La mutación representa la alteración de un individuo en uno de sus genes. El individuo a mutar es escogido, al azar, entre todos los individuos de la población. Los pasos para la mutación se muestran en la Figura 2.

Cruce

Para comprender el criterio que guía a la herencia es necesario dar un vistazo a los costos asociados a cada descripción en el mediador. Los costos considerados son el tiempo que toma el retorno de la primera tupla y la cardinalidad. Si la asignación de descripciones en el mediador, escogidas en un preplán, no tienen dependencias entre ellas, se presume que la estrategia de evaluación de los subobjetivos en el mediador será la bottom-up que corresponde a la usada cuando se ejecuta un join entre dos subobjetivos, donde uno de ellos o los dos se encuentran en fuentes de datos remotas. En este caso, se establece que el tiempo que toma retornar la primera tupla (para cada descripción remota escogida) impacta significativamente sobre el costo del preplán. Por otra parte, si las descripciones escogidas tienen dependencias entre ellas, se presume que la estrategia de evaluación de los subobjetivos en el mediador será la top-down. En esta estrategia, el join que se ejecuta entre los subobjetivos involucrados se implementa como un nested loop join, lo que implica que el impacto sobre el costo del preplán viene dado por la cardinalidad de las descripciones escogidas. Con esto presente, el cruce entre individuos de la población lleva a considerar qué descripciones de subobjetivos serán heredados por el descendiente. Si el progenitor "hembra" no tiene dependencias entre sus descripciones en el mediador (mdi) entonces se escoge la descripción que tenga el mayor tiempo de retorno de la primera tupla y se cambia por su homólogo en el progenitor "macho", si en este último ese tiempo es menor y se conservan las demás descripciones de la "hembra". Esto hace que el descendiente tenga un genotipo diferente a sus dos padres y que sea menos costoso. Si la "hembra" tiene dependencias entre las descripciones que la conforman entonces se toma la descripción que tenga la más alta cardinalidad y se cambia por la descripción homóloga en el otro progenitor en caso de que esta última sea de menor magnitud. Cuando en ambos casos la descripción escogida para el intercambio tiene un costo menor, el descendiente tendrá el genotipo del progenitor cuya descripción tuvo costo mayor pero con esa descripción cambiada. En la Figura 3 se muestra cómo se establece el criterio que rige el cruce entre dos individuos de la población.

Estudio Experimental

Se parte de la hipótesis que la exploración del espacio de búsqueda de preplanes mediante la implementación de operadores evolutivos, como el cruce entre preplanes y la mutación de preplanes, aportará una manera eficiente de encontrar un preplán de costo mínimo. Por ello, la evaluación experimental del algoritmo evolutivo se contrasta con los resultados de aplicar la metaheurística ‘mejoramiento iterativo’ para resolver el mismo problema. En cada comparación se evalúan los algoritmos para los siguientes criterios: a) costo del mejor preplán conseguido, el valor cuantitativo del preplán de menor costo; b) tiempo de ejecución, que mide en milisegundos el tiempo que toma la metaheurística para conseguir el mejor preplán para una consulta dada; y c) eficiencia del algoritmo, una medida para observar el número de repeticiones de la misma solución en el proceso de recorrer el espacio de búsqueda. Puede verse como una medida de la cobertura del espacio de búsqueda de preplanes y se calcula como

Eficiencia= nuevas soluciones / número total de soluciones generadas.

El algoritmo evolutivo fue codificado en Quintus Prolog 3.4, el catálogo con las descripciones del mediador y las relaciones del esquema lógico se tomaron de archivos planos generados con una herramienta llamada CEBOLLIN (Rodríguez y Gómez, 2001). Con la finalidad de evaluar el comportamiento del algoritmo evolutivo en variados escenarios, se simuló la preoptimización de la consulta para cuando a) el conjunto de fuentes de datos se iba incrementando, añadiendo al catálogo inicial descripciones de fuentes de datos nuevas mediante la aplicación de transformaciones addbind (Vidal, 2000), y b) el conjunto de fuentes de datos se transforma al sustituir descripciones de fuentes de datos existentes por otras más restrictivas, aplicando transformaciones bind (Vidal, 2000) al catálogo inicial. Los experimentos fueron ejecutados en una máquina Compaq con Pentium 4 de 500MHz bajo Windows 2000 Professional, con 256MB de RAM. Para cada tipo de consultas (pequeñas, medianas y grandes) fue necesario entonar los parámetros del algoritmo evolutivo, pues la incidencia del número de subobjetivos de la consulta impacta en el tamaño del espacio de búsqueda de preplanes. Por otra parte, las transformaciones Bind van imponiendo restricciones a los preplanes, lo que implica una disminución del espacio de soluciones. Esto orientó la búsqueda del tamaño de la población hacia un número máximo que permitiera aceptar la consulta y favorecer la convergencia del algoritmo hacia una solución buena.

Se determinó experimentalmente que el algoritmo evolutivo presentado en este trabajo encuentra buenas soluciones en el espacio de búsqueda de los preplanes. Sin embargo, los valores medidos en el tiempo de corrida del algoritmo no son competitivos con los encontrados usando mejoramiento iterativo en consultas pequeñas y medianas. El algoritmo evolutivo ofrece la mejor solución al problema cuando se preoptimizan consultas grandes y se aplican las transformaciones bind. La eficiencia es hasta 8,5 veces mejor a la reportada por mejoramiento iterativo y el tiempo no es significativamente mayor en el algoritmo evolutivo. Los experimentos permitieron observar que no se puede generalizar sobre el uso de una estrategia en particular para explorar el espacio de búsqueda de preplanes. Los resultados llevan a concluir que el tamaño de la consulta y las modificaciones al catálogo del mediador (constante dinamismo del ambiente heterogéneo y de capacidades limitadas) inciden en la calidad del preplán encontrado y en el tiempo que toma encontrarlo, por lo que en algunos casos será mejor utilizar una estrategia aleatoria y en otros un algoritmo evolutivo. En la Figura 4, se observa el mejor comportamiento de los algoritmos evolutivos vs mejoramiento iterativo.

Conclusiones

Los algoritmos evolutivos son adecuados en la exploración del espacio de búsqueda de preplanes para la preoptimización de consultas en ambientes con fuentes de datos de capacidades limitadas, dado que

1– Se logró establecer la codificación de los individuos en base a las descripciones de las fuentes de datos en el mediador que correspondían con subobjetivos de la consulta a preoptimizar.

2– Fue acertado el uso de las métricas del tiempo que tarda en llegar la primera tupla (latency) y la cardinalidad del resultado (cardinality) presentados en (Zadorozhny et al., 2002) como criterios que favorecen la evolución de la población en la implementación de la operación de cruce.

3– La implementación del concepto de "harén", del cual no se tiene ninguna referencia en la bibliográfica revisada, permitió mejorar la selección de individuos al evitar sustancialmente la repetición de parejas en el cruce, factor que hubiera desmejorado la eficiencia del algoritmo al generar gran cantidad de soluciones repetidas. La eficiencia se mantuvo por encima del 40% en todos los experimentos realizados, llegando en algunos casos cerca del 90%.

Agradecimientos

Las autoras agradecen a los miembros del Grupo de Investigación de Bases de Datos de la Universidad Simón Bolívar por sus comentarios y sugerencias.

Referencias

1. Florescu D, Levy A, Manolescu I, Suciu D (1999) Query Optimization in the Presence of Limited Access Patterns. Proc. ACM SIGMOD Conf. http://citeseer.ist.psu.edu/article/florescu99query. html.        [ Links ]

2. Haas L, Kossmann D, Wimmers E, Yang J (1997) Optimizing Queries across Diverse Data Sources. Proc. 23rd Int. Conf. VLDB. pp. 276-285.        [ Links ]

3. Levy AY, Rajaraman A, Ordille J (1996) Querying Heterogeneous Information Sources Using Source Descriptions. Proc. 22rd Int. Conf. VLDB. pp. 276-285.        [ Links ]

4. Papakonstantionou Y, Gupta A, Garcia-Molina H, Ullman J (1996). A Query Translation Scheme for Rapid Implementation of Wrappers. 4th Intl. Conf. on Deductive and Object-Oriented Databases; LNCS 1013. Singapore. Springer, Berlin, Alemania. pp. 161-186.        [ Links ]

5. Ramakrishnan R, Gehrke J (2000). Database Management Systems. McGraw-Hill, Madison, WI, EEUU. pp. 271-347.        [ Links ]

6. Raschid L, Vidal M, Zarodohnv V (2000) An Optimizer Strategy to Generate Good Low Cost Plans for Mediator Queries. Technical Report University of Maryland, College Park, MD, EEUU. pp. 18-28.         [ Links ]

7. Rodríguez A, Gómez A (2001) CEBOLLIN: Herramienta para asistir en la evaluación de técnicas de optimización de consultas en fuentes de el Web. Tesis, Universidad Simón Bolívar, Caracas, Venezuela. pp. 28-60.        [ Links ]

8. Seshadri P (1997) Predator: Design and Implementation. Computer Sciences Department. Cornell University. http:// www.cs.cornell.edu/ Info/Projects/PREDATOR/designdoc.html        [ Links ]

9. Seshadri P (1998) Predator: a resource for database research. Sigmod Rec. 27: 16-20.        [ Links ]

10. Tovar E (2004) Un Algoritmo Evolutivo para la Preoptimización de Consultas en Fuentes de Datos con Capacidades Limitadas. Tesis. Universidad Simón Bolívar. Caracas, Venezuela. pp. 15-103.        [ Links ]

11. Vidal M (2000) Técnicas de Mediación en Fuentes de Datos Heterogéneas. Tesis. Universidad Simón Bolívar. Caracas, Venezuela. pp. 10-34.        [ Links ]

12. Vidal M, Raschid L, Urhan T (1998) WebSrcMed: A Mediator for Scaling up to Multiple Web Accessible Sources (WebSources). Technical Report UMIACS, University of Maryland, College Park, MD, EEUU. pp. 31-39.        [ Links ]

13. Zadorozhny V, Raschid L, Vidal M, Urhan T, Bright L (2002) Efficient Evaluation of Queries in a Mediator for WebSources. ACM SIGMOD 2002 June 4-6, Madison, WI, EEUU. pp.85-96.        [ Links ]