OPTIMIZACIÓN DE CONSULTAS Y CUANTIFICADORES DIFUSOS Leonid TINEO [email protected] Doctorado en Computación Universidad Simón Bolívar Resumen Los Manejadores de Bases de Datos tienen una gran utilidad en el almacenamiento confiable de gran volumen de data. Sin embargo no es sólo esta cualidad la que los hace tan exitosos y útiles, sino también la capacidad de dar acceso eficiente a tal volumen de datos. Para esto se han concebido los mecanismos de optimización de consulta. Un reto que se le plantea a estos sistemas es la posibilidad de permitir la expresión de requerimientos de usuarios con lenguajes cada vez más cercanos a su forma de pensar y a sus preferencias. En este sentido, algunas extensiones basadas en Lógica Difusa han sido propuestas para mejorar la expresividad de los lenguajes de consultas. Uno de los conceptos de esta teoría que podría ser de gran utilidad en la expresión de requerimientos de usuarios es el de Cuantificadores Difusos. Este artículo presenta brevemente el tema de Optimización de Consultas y el tema de Cuantificación Difusa, como marco conceptual básico para una investigación desarrollada sobre los Mecanismos de Evaluación de Consultas Difusas Cuantificadas. Palabras Claves: Bases de Datos Relacionales, Optimización de Consultas, Cuantificadores Difusos, Consultas Difusas INTRODUCCIÓN Actualmente, se llevan a cabo grandes esfuerzos para “humanizar” el acceso a la información. En tal sentido, se busca crear mecanismos de especificación de consultas que se asemejen cada vez más a la expresión del lenguaje natural y al pensamiento humano. Se desea, por tanto, proveer capacidades de Consultas Flexibles que les permitan a los usuarios expresar requerimientos que involucren preferencias[12][13][30][42]. Estas capacidades de consulta necesitan de la expresión y manipulación de términos y sentencias lingüísticos en condiciones de consulta [7][25][39][41]. Un requerimiento de usuario que podría ser formulado y evaluado con estas nuevas capacidades sería, por ejemplo: “Un investigador va a una conferencia en otra ciudad y desea, para alojarse, encontrar un hotel que satisfaga la mayoría de los siguientes criterios: no muy caro, cerca del centro de convención, cerca de alguna estación del metro, con buenas áreas deportivas, cerca de un centro comercial”. Otro posible requerimiento, de este estilo es el siguiente: “Una joven quiere aplicar a un trabajo como investigador novel en un centro de investigación donde hayan al menos cinco investigadores de reconocido prestigio en algún área que sea de su interés”. En los dos ejemplos anteriores hay algunos términos lingüísticos que representan preferencias de usuarios. Entre estos términos se quiere prestar atención particularmente a las frases “la mayoría” y “al menos cinco”. Estos términos son ejemplos de los llamados Cuantificadores Difusos, una extensión de los cuantificadores lógicos que permiten describir gradualmente cantidades mediante el uso de conjuntos difusos. La investigación realizada trata justamente sobre la evaluación de consultas que involucran cuantificadores difusos. A pesar del poder expresivo de la Lógica Difusa, en la comunidad de Bases de Datos, existe cierta resistencia para su uso en consultas [25]. Una razón para tal resistencia radica en el costo que genera la evaluación de la consulta: el costo de procesamiento para las consultas difusas parece ser mucho mayor que para las consultas clásicas[10]. Se han hecho muchos esfuerzos para disminuir los costos de la evaluación de consultas en el contexto de Manejadores de Bases de Datos Relacionales[26]Error! Reference source not found.[34][40]. Estructuras poderosas para almacenamiento y recuperación de datos han constituido la clave para mejorar el desempeño de las consultas. Asimismo, se han creado optimizadores de consultas, aprovechando estas estructuras, así como las condiciones de consulta. A pesar del uso de esta tecnología, el problema de la evaluación de consultas clásicas se mantiene, de alguna forma, abierto; dada una consulta, en general, puede que la forma de evaluación óptima no se logre[10]. Sin embargo, en este caso, generalmente, es posible encontrar un método de procesamiento de consultas con costo razonable. Ésta es la función de los optimizadores de consultas. En el proceso de evaluación de consultas difusas, las estructuras de acceso disponibles no pueden usarse directamente, ya que los criterios de selección se basan en el grado de satisfacción de las condiciones difusas cuya semántica dependiente del usuario. En general, es imposible crear estructuras de acceso especializadas[3]. A continuación se presentan las nociones fundamentales de optimización de consultas clásicas, así como las nociones sobre cuantificación difusa, con miras a sustentar una investigación sobre los mecanismo de evaluación de consultas difusas cuantificadas. OPTIMIZACIÓN DE CONSULTAS Las bases de datos son ampliamente usadas en sistemas de información tanto públicos como privados para una gran gama de campos de aplicación. Para la manipulación correcta y segura de bases de datos se han creado herramientas de software llamadas Sistemas Manejadores de Bases de Datos (DBMS, por sus siglas en inglés: Database Management Systems). Tales sistemas hacen la conexión entre la representación de los datos al nivel del usuario o programador y el nivel físico de almacenamiento de datos. Los modelos de datos tienen como finalidad la representación de la información de una situación del mundo real. En consecuencia, se usan en los DBMS para representar los datos. En los inicios de la tecnología de bases de datos, los modelos de datos poseían un nivel de abstracción muy bajo, representando los datos con estructuras muy cercanas al nivel de almacenamiento físico. Codd [23], en 1970, propuso el Modelo Relacional con la idea de concebir una representación completamente independiente de las estructuras físicas. Este modelo de datos se basa en el concepto matemático de relación. Actualmente, la mayoría de los DBMS se basan en el Modelo Relacional. Una de las funciones principales de los DBMS es proveer acceso eficiente a grandes volúmenes de datos [28][49]. Este acceso se hace mediante consultas que representan requerimientos de usuarios, las cuales son expresadas mediante lenguajes de manipulación de bases de datos, usualmente conocidos como lenguajes de consulta. Los enfoques más generales y formales son el Álgebra Relacional[23] y el Cálculo Relacional[37]. Basándose en estos lenguajes de consulta teóricos, se ha concebido un lenguaje práctico, SQL [35]. Este lenguaje se ha convertido en el estándar para las consultas sobre bases de datos relacionales. La eficiencia en la recuperación de información en los DBMS es alcanzada mediante el uso adecuado de estructuras físicas concebidas para acelerar el acceso a los datos. Estas estructuras son conocidas bajo la denominación común de “caminos de acceso” (en inglés “access paths”) [45]. Entre tales estructuras destacan los árboles de búsqueda en memoria secundaria, como lo son los árboles B+ [24] y las tablas de acceso directo (conocidas como “Hash”, por su nombre en inglés). Pese a la existencia de tales estructuras, dada una consulta en SQL, en general, no se puede garantizar cuál es la mejor manera de resolverla, de forma de obtener el menor costo. Una pieza de software dentro de los DBMS se encarga optimizar la consulta, esta pieza es el optimizador. En este contexto, se entiende por “optimizar” decidir la forma de procesar una consulta de manera que su costo de evaluación sea razonable[45]. Para realizar su trabajo, el optimizador se apoya en un componente del DBMS que almacena la información sobre las estructuras lógicas y físicas de los datos: el Catálogo del Sistema. Para su uso en la optimización, el catálogo, almacena ciertos datos estadísticos como el tamaño de las tablas, tiempo de acceso promedio, entre otros. El problema de encontrar la mejor forma de procesar una consulta es NP completo, debido a la combinatoria de posibles ordenes de evaluación de los operadores involucrados en la consulta y las posibles manera de resolver cada uno de estos operadores. Si se quisiera obtener el menor costo, tendría que estimarse el costo de cada una de estas combinaciones y hallar el mínimo entre ellos. Lo que hacen los optimizadores es trabajar con un conjunto reducido de alternativas de procesamiento, para lo cual se aplican algunas heurísticas. La mayoría de los optimizadores de consultas se basan en el Sistema R que es un optimizador de consulta de IBM[46]. El enfoque de este sistema se conoce como “Optimización Basada en Costos”. Las siguientes secciones se centran es este tipo de optimización. Hay otros enfoques los cuales no se consideran en este trabajo. Entre estos se encuentra la “Optimización Basada en Reglas” [29] en la que el programador puede especificar reglas que guíen al optimizador en su trabajo. Otro enfoque es el de “Generación Aleatoria de Planes”, éste usa algoritmos probabilísticos [22] para explorar el espacio de planes de ejecución de una manera rápida, obteniendo planes relativamente buenos. Planes de Ejecución Dada una consulta cualquiera en SQL, existen varias maneras en que ésta puede procesarse. A esas diversas alternativas de procesamiento se le denominan Planes de Ejecución. Para la especificación y manipulación de los planes de ejecución, la consulta es traducida al Álgebra Relacional, extendida con operadores de agregación y agrupamiento. Los planes de ejecución son representados mediante árboles anotados, con las características: - Las hojas de estos árboles son las relaciones de la base de datos que están involucradas en la consulta; - Las anotaciones en las hojas indican el mecanismo de acceso usado para la relación; - Los nodos internos son las operaciones algebraicas; - Las anotaciones en nodos internos indican el algoritmo de procesamiento usado para el operador; - La ejecución del plan se hace mediante recorrido post-orden del árbol. En algunos casos es factible que un operador se ejecute incrementalmente, a la medida que sus operandos producen resultados Ejemplo 1:Por ejemplo, supóngase que se tienen las relaciones: Persona(pid, nombre, sexo, fch_nac, nacionalidad, ocupación, hobby) Hotel(hid, nombre, país, ciudad, dirección, categoría, precio) Registro(pid, hid, checkin, checkout, habitación) Suponga que se requiere “Obtener los nombres y hobbies de las personas que para el 01/01/06 tengan menos de sesenta años de edad y que se han registrado en el hotel cuyo número de identificación es el 1425”. Este requerimiento se puede expresar en SQL como: select nombre, hobby from Persona P, Registro R where hid=1425 and R.pid=P.pid and fch_nac>01/01/1946 Una expresión equivalente en Álgebra Relacional sería la de la Figura 1. Esta no es la única posible expresión para la consulta. Existe una serie de transformaciones por equivalencia entre las operaciones del Álgebra Relacional que pueden aplicarse para obtener diferentes expresiones de la misma consulta. Se puede tomar ventaja de estas equivalencias en la optimización de consultas. Sobre este punto se hablara más adelante. La expresión de la Figura 1 en efecto representa un conjunto de planes de ejecución. Anotando los nodos adecuadamente se tendría cada plan. Estas anotaciones obedecen a los algoritmos de evaluación y métodos de acceso. nombre, hobby hid=1425 fch_nac>01/01/1946 pid=pid Persona Registro Figura 1. Consulta Expresada como un Árbol de Álgebra Relacional Mecanismos de Acceso Lo primero que se debe mencionar aquí son los métodos básicos de acceso a las relaciones: Secuencial (“File Scan”, en inglés): Simplemente se recorre toda la secuencia de registros en la tabla. Este es un método de acceso ingenuo que puede ser aplicado en cualquier consulta, pero supone un alto costo. Sin embargo en algunos casos no hay otra opción que usuarlo. Indexado: Si una tabla tiene un índice (B+ o Hash), puede hacerse un acceso directo a un registro, mediante el uso de esta estructura. Para que este tipo de acceso sea factible, debe haber una condición en la búsqueda que fije valores para todos los atributos que conforman la clave de la estructura. Secuencial - Indexado: Se pueden recorrer secuencias de registros ordenados por un conjunto de atributos que conforman la clave de acceso de un índice B+, simplemente se busca el primer elemento de la secuencia y se recorre a partir de allí. En este caso se requiere que una condición en la búsqueda establezca comparación con un prefijo de la clave del índice. Por prefijo se entiende una secuencia de los atributos de la clave, que empieza con el primer atributo. La tabla puede tener una estructura de almacenamiento basada en el índice, a lo cual se le conoce como “Cluster”, en la cual los registros están físicamente organizados según el orden establecido por los atributos claves del índice. Búsqueda Binaria: Es probable que una relación no tenga índice, pero que los registros se encuentren ordenados por una clave de búsqueda. En este caso es factible hacer una búsqueda binaria sobre el archivo, lo cual es una alternativa al acceso Indexado o al acceso Secuencial - Indexado. Particionado: En algunos casos se requiere procesar los registros en particiones inducidas por un conjunto de atributos. Para ese tipo de acceso puede hacerse primero un ordenamiento de los registros para luego accederlos por particiones. El ordenamiento es una operación costosa, pero puede ayudar a a bajar el costo de ciertas operaciones complejas. Otra alternativa es hacer un nuevo hash de los registros según los atributos de particionamiento; lo cual también supone un costo considerable en almacenamiento y tiempo de elaboración. El resultado de cualquier operación del Álgebra Relacional es, por definición, una relación. Por supuesto, esta relación puede ser usada como operando en otra operación algebraica. Para que sea procesada. Generalmente estas relaciones son almacenadas en tablas temporales que luego son accesadas con el método que corresponda. En muchos casos es conveniente que esta relación no sea almacenada, sino que sea procesada como entrada del otro operador a la medida que se van produciendo sus elementos. En este caso se dice que el procesamiento es hecho “sobre el vuelo” (en inglés: “on the fly”). En este caso, se dice que los operadores están conectados mediante un canal de comunicación (usualmente llamado “pipeline” por el término en el idioma inglés) Evaluación de Operadores La selección del Álgebra Relacional puede ser implementada con cualquier de los mecanismos anteriormente descritos, salvo el de particionamiento cuyo alto costo se justifica para este operador. La proyección es una operación de sencilla implementar. Basta eliminar los atributos no proyectados. La complejidad emerge cuando se requiere eliminar las repeticiones. En este caso hay que aplicar un mecanismo de acceso particionado por los atributos proyectados, de manera que sea factible detectar los duplicados. Si existe un índice implementado mediante un árbol de búsqueda que contenga en su clave a los atributos proyectados, este índice puede usarse en lugar de la relación para que el recorrido inicial sea hecho sobre un conjunto reducido de registros. La Combinación Relacional (usualmente denominada “Join”, por su nombre en inglés) es una operación muy compleja y costosa. Pero también es una operación de usuo muy frecuente. Por esto se ha estudiado mucho este operador y se han propuesto varios algoritmos para su procesamiento. Muchos DBMS implementan varios de estos algoritmos con el fin de poder elegir en un contexto dado, cuál sería más favorable. A continuación se explican, brevemente, estos algoritmos. Combinación en Ciclo Anidado (“Nested-Loop Join”): La combinación se procesa mediante un ciclo externo que recorre todos los registros de la primera relación y un ciclo interno que recorre todos los registros de la segunda relación. Así, se procesa todo el producto cartesiano de las relaciones y se retiene sólo os pares de registros que cumplan con la condición de combinación. Este es un algoritmo ingenuo con alto costo, por lo que requiere ser mejorado. Simplemente con cambiar los ciclos de manera que avancen por páginas en lugar de avanzar pro registros, se obtienen mejoras sustanciales, pues la relación en el ciclo anidado en lugar de ser recorrida tantas veces como número de registros haya en la relación del ciclo externo, se recorre tantas veces como la cantidad de páginas que ocupa la relación externa. Combinación por Bloques en Ciclo Anidado (“Block Nested-Loop Join”): Una mejora de la combinación por ciclo anidado consiste en que los ciclos en lugar de recuperar un registro a la vez, recuperen bloques de páginas que son cargadas en memoria principal. En esta caso, se selecciona la relación que ocupe menos paginas para que sea la del ciclo externo. Si se tiene una capacidad en memoria para alojar B páginas (el espacio de alojamiento de una página en memoria es denominado “buffer”), entonces se trabaja con B-2 buffer para la relación externa. La relación interna se procesa con un buffer. El buffer restante se utiliza para el resultado. Con esta algoritmo se reduce gramáticamente el número de accesos a memoria secundaria en la combinación. Combinación por Índice en Ciclo Anidado (“Index Nested-Loop Join”): En el caso de que alguna de las relaciones tenga un índice sobre los atributos de combinación, se puede tomar ventaja de este índice para el procesamiento. Se escoge la relación que tiene el índice como relación del ciclo. Por cada registro de la relación del ciclo externo, haciendo uso del índice, se obtiene(n) el(los) registro(s) de la relación interna que cumplen con la condición de combinación. El costo de esta operación varía dependiendo del tipo de índice y de la condición; así como la cardinalidad del conjunto de registros que cumplen la condición de combinación. Tiene la ventaja de no tener que procesar todo el producto cartesiano de las relaciones. Combinación por Ordenamiento y Mezcla (“Sort-Merge Join”): Si la condición de combinación involucra la igualdad de atributos, se puede hacer un procesamiento de tipo Particionado. Se ordenan las dos relaciones por los atributos de combinación, de manera que se identifiquen las particiones y sólo se verifiquen los pares que pertenecen a particiones con igual valor de los atributos. En caso de que alguna de las relaciones ya esté ordenada por este criterio, para ella, se omite la fase de ordenamiento. Con este algoritmo, en la fase de mezcla sólo se tiene que accesar una vez cada página de memoria secundaria de cada relación. El ordenamiento de una relación que ocupa M páginas es de orden M log M. Esto da costos muy buenos para la operación de combinación. Combinación por Hash (“Hash Join”): Este algoritmo es similar al anterior. La diferencia es que, en lugar de hacer el ordenamiento, las particiones se obtienen mediante la construcción de un hash para cada relación. Las estructuras se llenan mediante la misma función de distribución (“hash function”), la cual debe ser uniforme, de manera que para ambas relaciones, la entrada i del hash contiene exactamente los registros que tienen los mismos valores para los atributos de búsqueda. Asumiendo que cada grupo de partición de las relaciones puede ser alojado en memoria, para este algoritmo, el costo en términos de operaciones de entrada y salida es 3(M+N), si una relación ocupa M páginas y la otra relación ocupa N páginas. La dificultad radica en la elección de la función de distribución y el espacio en disco y en memoria requerido para la construcción del hash. Equivalencias Algebraicas El proceso de optimización busca descartar planes de ejecución con tiempos inadmisibles y quedarse con el plan que promete un comportamiento óptimo entre un conjunto de planes considerados. Para conseguir estos planes se aplican transformaciones por equivalencias algebraicas sobre la expresión de consulta. Las equivalencias aplicables se presentan a continuación. Cascada de Selección: c1c2cn R c1 c2 cn R Conmutación de Selección: c1 c2 R c2 c1R Cascada de Proyección: a1R a1 a2 an R , con i,j i<j (aiaj) Conmutación de Combinación: R Asociación de Combinación: R SS (S R, con atributos identificados por nombres T)(R S) T Conmutación de Selección y Proyección: a c R c a R con todos los atributos de c presentes en a Conmutación de Selección y Combinación Conmutación de Proyección y Combinación: con ningún atributo de c miembro de S con todos los atributos de combinación presentes en a y a1 los atributos de a que con de R y a2 los atributos en a que son de S. Profundidad Izquierda Dada una consulta, las equivalencias algebraicas anteriores perimiten obtener diferentes árboles de Álgebra Relacional para resolver la misma consulta. Debido a que la combinatoria de planes de ejecución es alta, una heurística que se usa es considerar sólo planes basados en árboles de profundidad izquierda. Éstos son árboles lineales en los que las ramas derechas no tienen operadores binarios, es decir el operador de Combinación Relacional siempre se coloca en el subárbol izquierdo. Ejemplo 2: Suponga que, con las mismas relaciones del Ejemplo 1 se requiere “Obtener los nombres e identificadores de personas y hoteles tales que la persona se ha registrado dos o más veces en el hotel”. Esta consulta puede expresarse en SQL así: select distinct P.nombre, P.pid, H.nombre, H.hid from Persona P, Hotel H, Registro R1, Registro R2 where R1.checkin<>R2.checkin and H.hid=R1.hid and H.hid=R2.hid and P.pid=R1.pid and P.pid=R2.pid Un árbol de profundidad izquierda para esta consulta sería el de la Figura 2. Mientras que el árbol equivalente, presentado en la Figura 3, no es un árbol de profundidad izquierda. P.nombre, P.pid, H.nombre, H.hid hid=hid pid=pid checkin<>checkin Registro R2 hid=hid pid=pid Persona P Hotel H Registro R1 Figura 2. Consulta Expresada mediante Árbol Relacional de Profundidad Izquierda P.nombre, P.pid, H.nombre, H.hid hid=hid pid=pid checkin<>checkin pid=pid Persona P Registro R1 hid=hid Hotel H Registro R2 Figura 3. Consulta Expresada mediante Árbol que no es de Profundidad Izquierda Por supuesto que al considerar sólo árboles de profundidad izquierda hay una gran cantidad de planes que no so considerados, entre los cuale sprodría estar el mejor plan. Sin embargo hay buenas razones para esta restricción. Primero que la pesnecia de operadores de combinación hace que se muy grande el volumen de planes alternativos, de manera que hay que limitarlo. Segundo que el uso de árboles de profundidad izquierda permite aprovechar al máxmo la osibilidad de evaluar los operadores de combinación accesando la relación externa “sobre el vuelo” y la relación interna sobrela tabla almacenada. Procesamiento por Bloques SQL permite consultas que hacen uso de subconsultas. Esto se conoce como anidamiento o bloques anidados. Los optimizadores lo que hacen es tratar la subconsulta y la consulta como dos bloques, los cuales son optimizados de manera independiente. Esto hace, en general, que las consultas con anidamiento tengan un alto costo de procesamiento. Sin embargo, en muchos casos, las consultas anidadas pueden ser expresadas de manera equivalente con consultas que no usan anidamiento. Esta transformación típicamente no la hace el optimizador, sino debe ser el programador quien tenga en cuenta esto al momento de expresar la consulta en SQL. Estimación de Costos El costo de un plan es la suma de los costos de los operadores que contiene. El costo de cada operador es estimado obteniendo información del catálogo, tal como tamaños de las tablas, organización física y estructuras de búsquedas definidas. También se requiere para esto estimar los tamaños de los resultados de los operadores internos, porque ellos serán usados para otros operadores cuyo costo de ejecución depende del tamaño de sus operandos. La métrica usada para la estimación de costos es el número de operaciones de entrada y salida que se requieren en el plan. El volumen de operaciones en memoria principal o tiempo de CPU, en general, no es considerado en el costo de los planes en consultas a bases de datos por ser este un problema ligado al acceso a disco (“I/O Bound”) y no ligado a memoria o CPU (“Memory Bound” o “CPU Bound”). Algoritmo de Optimización La optmización de consultas se hace enumerando los planes basados en árboles de profundidad izquierda y descartando durante la enumeración aquéllos que tienen los perores costos de ejecución. Esto se hace mediante la aplicación de los pasos siguientes: Paso 1: Se enumeran todos los posibles planes para cada relación involucrada en la consulta. Cada uno de ellos genera los resultados en algún orden. Para cada orden, se retiene el plan que arroje el menor costo. Paso n+1: Cada plan retenido en el paso n, se considera para la relación externa de una combinación, para cada método de evaluación de combinación, se determina el mejor método de acceso para cada una de las relaciones que se puedan estar en el ciclo interno de la combinación. Para cada posible combinación de relaciones y cada posible orden del resultado, se retiene el plan de menor costo. El paso n+1 se repite hasta que se obtengan planes que tienen todas las relaciones involucradas. Las operaciones de selección son adelantadas lo más posible, considerándolas en cada paso. Las operaciones de proyección podrían adelantarse, pero en la práctica tienden mas bien postergarse. Las operaciones de agregación son dejadas para el final del procesamiento de la consulta. CUANTIFICADORES DIFUSOS Uno de los aspectos más importantes de la Lógica Difusa es la extensión del concepto de cuantificación, la cual permite el uso de cuantificadores lingüísticos, interpretados por medio de conjuntos difusos. Este concepto también fue introducido por Zadeh [60]. Las sentencias cuantificadas difusas han sido objeto de estudio por parte de varios investigadores, dando lugar a varias interpretaciones [27][43][44][58][59][60]. Liétard [38] ha hecho un estudio importante de la cuantificación difusa en el marco de las consultas sobre bases de datos. La lógica Booleana tiene únicamente dos cuantificadores: el existencial y el universal. Sin embargo, se pueden describir cantidades que están entre el existencial y el universal. Además, algunas veces resulta útil expresar cantidades imprecisas de elementos que satisfacen una condición lógica. Esto justifica la existencia de cuantificadores lingüísticos como “la mayoría de”, “pocos de”, “aproximadamente la mitad de”, “aproximadamente cinco”, “al menos cien”. Éstos permiten flexibilizar la expresión de cantidades en sentencias lógicas. Los cuantificadores lingüísticos del lenguaje natural pueden ser interpretados usando conjuntos difusos. Estos cuantificadores, así definidos, son llamados frecuentemente cuantificadores difusos. El conjunto difuso que está asociado con el cuantificador difuso es el conjunto de las cantidades que son compatibles con la definición del cuantificador. La interpretación de los cuantificadores lingüísticos es dependiente del usuario. La interpretación de cualquier cuantificador lingüístico está acotada por su semántica intuitiva en el lenguaje natural. Por lo tanto, un cuantificador lingüístico y su interpretación son vistos, usualmente, como lo mismo. Esto conduce a una clasificación importante de los cuantificadores difusos de acuerdo a su interpretación (dada). Según la naturaleza, estos se clasifican en: cuantificadores absolutos y cuantificadores proporcionales. Por otra parte, de acuerdo con su comportamiento, se puede distinguir entre cuantificadores crecientes, decrecientes y unimodales. Estas dos clasificaciones son ortogonales y cualquier combinación, es permitida. Cualquier cuantificación lingüística debe ser representada por un conjunto difuso con al menos un elemento totalmente incluido y otro completamente excluido. Un cuantificador difuso es un símbolo lingüístico Q al cual es asociado un conjunto difuso tal que Q 0 y Q 1 y Q es o bien Absoluto o Proporcional y Q es o bien Creciente o Decreciente o Unimodal Tipos de Cuantificadores Los cuantificadores absolutos representan cantidades que son absolutas por naturaleza tales como: “aproximadamente 5”, “al menos 2” . Éstos se interpretan por medio de conjuntos difusos de reales no negativos. Para cualquier real no negativo, su grado de membresía al conjunto difuso indica el grado con el cual está cantidad es compatible con el cuantificador. Los cuantificadores proporcionales representan proporciones respecto del conjunto completo. Cuantificadores como “Al menos la mitad”, “La mayoría” representan este tipo de cuantificadores. Éstos son representados por subconjuntos difusos del intervalo unidad [0,1]. Para cualquier proporción su grado de membresía al conjunto difuso indica el grado al cual esta proporción es compatible con el significado del cuantificador. Se puede ver a los cuantificadores difusos proporcionales como predicados difusos sobre el intervalo real [0,1]. Los cuantificadores crecientes son aquellos que se interpretan por medio de un conjunto difuso con una función de membresía creciente. Por ejemplo, en la Figura 4, “Al menos 4” es un cuantificador absoluto creciente, “La mayoría de” es un cuantificador proporcional creciente. 1 1 0 0 0 2 4 6 (a) 8 0 0.25 0.5 0.75 1 (b) Figura 4. Cuantificadores Difusos Crecientes: (a) “Al menos 4”, (b) “La mayoría de” Los cuantificadores decrecientes son cuantificadores lingüísticos representados por conjuntos difusos con monotonía decreciente. Por ejemplo, en la Figura 5, el cuantificador “A lo sumo 4” es un cuantificador absoluto decreciente, el cuantificador “La minoría de” es un cuantificador proporcional decreciente. 1 1 0 0 0 2 4 6 8 0 0.25 (a) 0.5 0.75 1 (b) Figura 5. Cuantificador Difuso Decreciente: (a) “A lo sumo 4”, (b) “La minoría de” Los cuantificadores unimodales son aquellos que tienen una función de membresía que es, primero creciente y luego decreciente. Por ejemplo, en la Figura 6: “Aproximadamente 4” es un cuantificador absoluto unimodal y “Aproximadamente la mitad de” es un cuantificador proporcional unimodal. 1 1 0 0 0 1 2 3 4 5 6 7 0 (a) 0.25 0.5 0.75 1 (b) Figura 6. Cuantificador Difuso Unimodal: (a) “Aproximadamente 4”. (b) “Aproximadamente la mitad de” En la lógica clásica hay sólo dos cuantificadores: el existencial ( ) y el universal ( ). Se les puede ver como casos particulares de la clase más general de cuantificadores difusos, como se muestra en la Figura 7. El Existencial “Existe” es un cuantificador absoluto creciente con una interpretación dada. Por otra parte, el cuantificador “Para todo” es un cuantificador proporcional creciente. 1 1 0 0 1 2 3 4 5 (a) 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 (b) Figura 7. Cuantificadores Clásicos: (a) “Existe”, (b) “Para todo” 1 Sentencia Cuantificadas Difusas Usualmente, los cuantificadores se usan para describir la cantidad de elementos que satisfagan el predicado. El uso de este tipo de cuantificadores es llamado “cuantificación vertical”. La existencia de cuantificadores lingüísticos invita a usar cuantificadores para describir la cantidad de predicados satisfechos por un solo elemento. El uso de este tipo de cuantificadores es llamado “cuantificación horizontal”. Esto fue propuesto por [11][36]. En el contexto de la cuantificación vertical se distinguen dos tipos de sentencias cuantificadas difusas, de acuerdo con la forma de sentencia. Se llamará simplemente a estos dos tipos de sentencia: sentencias de forma S1 y sentencias de forma S2. Las sentencias de forma S1 usan conjuntos clásicos como base para la cuantificación. Es decir, éstos permiten usar cuantificadores difusos para describir la cantidad de elementos en un conjunto clásico que satisfacen una condición difusa. Las sentencias cuantificadas difusas S1 son de la forma “Q X’s are A” donde X es un conjunto clásico, A es un predicado difuso sobre X y Q es un cuantificador difuso. La frase “La mayoría de los empleados son bien pagados y jóvenes, y tienen un alto nivel de preparación” es una sentencia de forma S1; donde “la mayoría” es un cuantificador difuso, la cuantificación es hecha sobre el conjunto clásico de los “empleados”, y el predicado difuso bajo la cuantificación es la conjunción de condiciones difusas atómicas “bien pagados”, “jóvenes” y “tienen un alto nivel de preparación”. Por otra parte, las sentencias de forma S2 usan conjuntos difusos como conjuntos base para la cuantificación. Una sentencia de forma S2 describe la cantidad de elementos de un conjunto difuso que satisfacen el predicado difuso. El conjunto difuso base se denota por un predicado difuso sobre un conjunto clásico. Las sentencias cuantificadas difusas S2 son de la forma “Q B X’s are A” donde X es un conjunto clásico, A y B son predicados difusos sobre X y Q es un cuantificador difuso. Por ejemplo, la frase “La mayoría de los empleados jóvenes son bien pagados y tienen un alto nivel de preparación” es una sentencia de forma S2; aquí “La mayoría” es un cuantificador difuso, el conjunto base de cuantificación es el conjunto difuso de “empleados jóvenes”, y el predicado difuso bajo la cuantificación es la conjunción de las condiciones difusas atómicas “estar bien pagados” y “tener un alto nivel de preparación”. También se pueden distinguir dos tipos de sentencias cuantificadas difusas en el contexto de la cuantificación horizontal: sentencias de forma S3 y S4. La semántica de estas sentencias se expresa en términos de sentencias de forma S1 y S2, respectivamente. Las sentencias de forma S3 usan cuantificadores difusos para describir la cantidad de predicados difusos que un elemento satisface de una lista. Las sentencias cuantificadas difusas S3 son de la forma “x es Q A1, A2 Ak” donde X es un conjunto clásico, A1 , A2 , , Ak son predicados difusos sobre X , x un variable sobre X y Q es un cuantificador difuso. La siguiente es una sentencia de forma S3: “El empleado Luc cumple con la mayoría de los criterios: ser bien pagado, ser joven y tener un alto nivel de preparación”. Donde “La mayoría” es un cuantificador difuso que describe la cantidad de predicados que en la lista “bien pagado”, “joven” y “tiene un alto nivel de preparación”, son satisfechos por el elemento “Luc”, que es miembro del conjunto clásico “empleados”. Hay una asociación axiomática entre las sentencias cuantificadas difusas de forma S3 y S1. La proposición cuantificada “x es Q A1 A2 Ak” es semánticamente equivalente a “Q Y’s son Px”, donde Y A1 , A2 ,, Ak , Px es el predicado difuso sobre Y “ser satisfecho por x” i 1,2,,k Px Ai x . Ai Las sentencias de forma S4 usan cuantificadores difusos para describir la cantidad de predicados difusos importantes de una lista, que son satisfechos por un elemento. La importancia de los predicados difusos se determina por grados dados. Las sentencias cuantificadas difusas S4 son de la forma “x es Q A1, A2 Ak con grados de importancia d1 ,, d k ” donde X es un conjunto clásico, A1 , A2 , , Ak son predicados difusos sobre X , d1 ,, d k números reales en 0,1 , x un variable sobre X y Q es un cuantificador difuso. Un ejemplo de sentencia S4 es: “El empleado Luc cumple con la mayoría de los criterios: ser bien pagado, ser joven y tener un alto nivel de preparación, con grados de importancia 1, 0.7 y 0.4 ”. Donde “La mayoría” es un cuantificador difuso que describe la cantidad de predicados que en la lista “bien pagado” con relevancia 1, “joven” con relevancia 0.7 y “tener un alto nivel de preparación” con relevancia 0.4, que son satisfechos por el elemento “Luc”, que es miembro del conjunto “empleados”. Hay una asociación axiomática entre las sentencias cuantificadas difusas de forma S4 y S2. La proposición cuantificada “x es Q A1 A2 Ak con grados de importancia d1 ,, d k ” es semánticamente equivalente a “Q Pd Y’s son Px”, donde Y A1 , A2 ,, Ak , Px es el predicado difuso sobre Y “ser satisfecho por importante”: x” i 1,2,,k i 1,2,,k Pd Ai d i . Px Ai x , Ai Pd es el predicado difuso sobre Y “ser Debido a la semántica de las sentencias de forma S3 y S4, la interpretación de las sentencias cuantificadas difusas será dada sólo por las formas S1 y S2. Interpretación de Cuantificadores Difusos La interpretación de sentencias cuantificadas difusas ha sido objeto por parte de varios investigadores [27][33][38][44][58][59][60]. Yager [50][51][52][53][54][54][55][55][56][57][58][59] ha investigado varios temas relacionados con cuantificadores lingüísticos. En [98][99] él provee un estudio de algunas de sus aplicaciones. Las principales interpretaciones son aquellas debidas a Zadeh [60], Prade [43] y Yager [55]. Interpretación de Zadeh Esta interpretación [16] se basa en la cardinalidad precisa de un conjunto difuso (count). Establece que si Q es un cuantificador absoluto: si Q es un cuantificador proporcional: si Q es un cuantificador absoluto: xX S1 ( X ) Q A ( x ) 1 X S1 ( X ) Q xX , A ( x) , xX S 2 ( X ) Q min( A ( x), B ( x)) si Q es un cuantificador proporcional: min( A ( x), B ( x)) A ( x) xX S 2 ( X ) Q xX Este enfoque se caracteriza por su sencillez. Su deficiencia es el hecho de considerar la cardinalidad de un conjunto como la suma de los grados de membresía de sus elementos, con lo que un gran número de elementos con baja membresía tiene el mismo aporte que un pequeño número de elementos con alta membresía. El valor que arrojaría esta interpretación para el cuantificador existencial no coincide con su interpretación convencional como la altura del conjunto difuso. Interpretación de Prade La interpretación de Prade [11] se basa en la cardinalidad imprecisa de un conjunto difuso A. Esta cardinalidad está definida por la distribución de posibilidades c: c (k ) 1 i k c (i) 0 i k c (i) A ( xi ) Donde k es el número de elementos x de X que satisfacen A(x)=1 y x1,...,xn, es un ordenamiento del conjunto X tal que A ( x1 ) A ( xn ) . Esta interpretación aplica solamente a sentencias cuantificadas del tipo S1. El valor de verdad para estas sentencias está constituido por la medida de posibilidad (Q;c) y la medida de necesidad (Q;c) del evento difuso “c verifica Q”: Q; c sup min( Q (i), c (i)) 1i n Q; c inf max( Q (i ),1 c (i )) 1i n En el caso de cuantificadores proporcionales estas fórmulas cambiarían, simplemente dividiendo el argumento i de Q entre la cardinalidad n del conjunto base. Esta interpretación no aplica a cuantificadores no monótonos. Tampoco presenta cómo evaluar sentencias del tipo S2. Interpretación OWA de Yager Un operador de promedio ponderado ordenado OWA se define como owa( w1 ,, wn , P1 ,, Pn ) w1q1 wn qn donde q1 qn es un ordenamiento decreciente de [ P1 , , Pn ] , wi pertenece a [0,1] y la suma de ellos es igual a 1. Un cuantificador lingüístico puede representarse como pesos wi de un operador OWA. Esta interpretación [13][14] establece para las sentencias de tipo S1 que S1 ( X ) owa(w1 ,, wn , A ( x1 ),, A ( xn )) donde si Q es un cuantificador absoluto: wi Q (i ) Q (i 1) y si Q es un cuantificador proporcional: wi Q ( ni ) Q ( i n1 ) Y para las sentencias de tipo S2: S 2 ( X ) owa(w1 ,, wn , max( B ( x1 ), A ( x1 )),, max( B ( xn ), A ( xn ))) zj zj j 1 donde wi Q n Q j n1 con zi i inf A ( x) zj zj xX j 1 j 1 i i 1 Tal como se definió originalmente, sólo era aplicable a cuantificadores crecientes, sin embargo se ha hecho una extensión para cuantificadores decrecientes, en el caso de sentencias de tipo S1 [8]. No está definida la interpretación para cuantificadores no monótonos. Interpretación por Descomposición de Yager Yager [55] ha propuesto una interpretación basada en un Principio de Descomposición de los conjuntos base. Se llama a ésta la Interpretación por Descomposición. Yager había restringido su estudio original a cuantificadores recientes, sin embargo, esta interpretación ha sido extendida a cuantificadores decrecientes y unimodales. La interpretación es aplicable a sentencias de forma S1 y S2. Pero, sólo se presenta la interpretación para sentencias de forma S1, dentro del alcance de este trabajo. También se restringirá la presentación a los cuantificadores absolutos, porque se puede transformar cualquier sentencia con un cuantificador proporcional a una sentencia con uno absoluto, simplemente multiplicando las proporciones por la cardinalidad del conjunto base. En esta interpretación se considera verdadera “Q X’s son A”, con Q un cuantificador absoluto creciente, si hay un subconjunto clásico Y de X que satisface las condiciones: 1(Y) “Hay Q elementos en Y” y 2(Y) “Cada elemento de Y verifica A”. En esta interpretación, para una sentencia de la forma “Q X’s are A” con X un conjunto clásico, A un predicado difuso sobre X y Q un cuantificador absoluto creciente; el grado de satisfacción de es QX , A sup Y . Donde (Y) es la proposición “Y satisface 1 (Y) y 1(Y)” cuyo grado de YX satisfacción es Y 1 1 Y , 2 Y , con 1 una norma triangular . La proposición “Hay Q elementos en Y” tiene el valor: 1 Y Q Y . Por otro lado, la proposición “Cada elemento de Y verifica A” tiene el valor: Y 2 y con 2 una norma triangular. 2 A yY Como puede observarse, la escogencia de las normas triangulares 1 y 2 influirá en valor de verdad de la sentencia cuantificada difusa “Q X’s son A”. La escogencia de las normas triangulares 1 y 2 ejerce la misma influencia en el ajuste para el operador lógico de conjunción para predicados difusos. Usualmente, este operador se interpreta usando el “min”. Si se escoge esta norma triangular, se obtiene que el grado de satisfacción de “Q X’s son A”, es Q X , A sup i1 X es un ordenamiento de X tal que x x x . A 1 A 2 A X m in i, x donde x , x ,, x Q A i 1 2 X En lo subsiguiente, en este trabajo se asumirá que la conjunción lógica se interpreta como el operador “min”. Veamos un ejemplo. Si X x1 , x2 , x3 , x4 , x5 es un conjunto clásico, A 1 x1 , .75 x2 , .5 x3 , .25 x4 es un predicado difuso sobre X, (se escogen intencionalmente los elementos x’s en orden decreciente de A ), Almenos4 el cuantificador de la Figura 2. La Interpretación por Descomposición de Yager le da a “Almenos4 X son A” el valor: Alm enos4 x X Ax sup m in i1 X i , Axi Almenos 4 m in.25,1, m in.5,.75, m in.75,.5, sup m in1,.25, m in1,.0 0.5 Integral Difusa Liétard [38] propuso un marco general para la interpretación de sentencias cuantificadas difusas basada en integrales difusas. El concepto de integrales difusas se debe a Sugeno [47]. Las integrales difusas definen una clase de operadores de agregación que cubren el dominio entre “min” y “max”. Las integrales difusas se aplican sobre cierto tipo de funciones, llamadas Medidas Difusas. Se define una Medida Difusa sobre X (conjunto clásico discreto finito) como un función g : X 0,1 que cumple g X 1, g 0 y Y1 Y2 Y1 Y2 g Y1 g Y2 Sugeno definió una integral difusa de una función f sobre X respecto a una medida difusa g X como: S g f sup min f xi , g Yi donde x1 , , xn es un ordenamiento de X tal que f x1 f xn , 1 i n Yi x1 , , xi y f : X 0,1 . Un resultado interesante de Liétard [5][38] es el hecho de que el valor de verdad de una sentencia cuantificada difusa puede ser obtenido a través de una integral difusa. Esto se verá más adelante. Se puede probar que la Interpretación por Descomposición es una Integral Difusa de Sugeno, es decir QX , A S g f donde X 0,1 cumple g Y Y y g: Q f : X 0,1 tal que f x x . A La importancia de ver la Interpretación por Descomposición como una Integral Difusa de Sugeno es que ésta ha conducido a Bosc et. al [5][6][14][15][16][17][18] a proponer un mecanismo de evaluación de consultas cuantificadas difusas. Se hablará de este mecanismo más adelante. Postulados de Liétard Liétard [38] ha estudiado la semántica de consultas cuantificadas difusas. Él ha demostrado que, para adecuarse a las consultas sobre bases de datos, la interpretación de sentencias cuantificadas difusas debe satisfacer doce propiedades. Esto ha sido probado usando equivalencias semánticas en SQLf. Tales propiedades son enunciadas a continuación. Postulado 1: La interpretación de una sentencia cuantificada difusa de forma S1 debe dar un grado verdadero: QX , A 0,1 Postulado 2: Monotonía de la interpretación de una sentencia de forma S1 con cuantificadores monótonos. Si Q es creciente: QX , A1 QX , A2 . Si Q es decreciente: QX , A1 QX , A2 donde A1 y A2 son dos predicados difusos sobre X que satisfacen x X A x A x. 1 2 QX , A 0 , Postulado 3: Cuantificación de la forma S1 sobre un predicado falso. Si Q es creciente: QX , A 1 con A un predicado difuso sobre X tal que x X x 0 . si Q es decreciente: A Postulado 4: Interpretación del cuantificador universal en sentencias de forma S1 como el ínfimo: X , A inf A( x ) x X Postulado 5: Interpretación del cuantificador existencial en sentencias de forma S1 como el supremo: X , A sup A ( x ) x X Postulado 6: La interpretación de una sentencia cuantificada de la forma S2 debe dar un grado verdadero: Q X , A 0,1 B Postulado 7: Cuando B es Booleano, una sentencia de forma S2 es equivalente a una sentencia de forma S1: Q X B Q Y , A donde Y es el conjunto clásico Y x X Bx. ,A Postulado 8: Cuando B (tiende a) es vacío y Q es creciente una sentencia de forma S2 (tiende a) es falsa. Si x X B x 0 Q X B ,A 0y si Q X x X B x 0 B ,A 0 Postulado 9: Cuando B (tiende a) es vacío y Q es decreciente, una sentencia S2 (tiende a) es verdadero. Si x X B x 0 Q X B ,A 1 y si Q X x X B x 0 B ,A 1 . Postulado 10: Cuando Q es absoluto, una sentencia de forma S2 es equivalente a una sentencia de forma S1: Q X B , A Q X , A B Postulado 11: Interpretación del cuantificador existencial de la forma S2 como el supremo: X B sup min A ( x ), B ( x ) ,A x X Postulado 12: Interpretación del cuantificador no existencial como la negación del existencial: X , A 1 sup A( x) x X Como se ha mencionado anteriormente, hay varias interpretaciones propuestas para sentencias cuantificadas difusas. Entre éstas, Liétard ha probado en [38] que, la Interpretación de Yager, por Descomposición [55], es la única que satisface todas las restricciones de la forma S1 para que se adecuen a las consultas sobre bases de datos (Postulado 1 a Postulado 5 y Postulado 12). Liétard también ha estudiado en [38] si las diferentes interpretaciones de sentencias de forma S2 para bases de datos son adecuadas. Él ha concluido que ninguna de estas interpretaciones es adecuada para las consultas sobre bases de datos. Este argumento apoya el hecho de que el presente trabajo se restrinja a consultas basadas en sentencias cuantificadas difusas de forma S1. Tineo[48] propuso una nueva interpretación de sentencias cuantificadas difusas que es completamente adecuada para la interrogación a bases de datos, de acuerdo con los postulados de Liétard. Esta interpretación está definida tanto para sentencias de tipo S1 como sentencias de tipo S2. Para sentencias de tipo S1 esta interpretación coincide con la interpretación por descomposición de Yager. EVALUACIÓN DE CONSULTAS DIFUSAS A pesar del poder expresivo de la Lógica Difusa, en la comunidad de Bases de Datos, existe cierta resistencia para su uso en consultas[25]. Una razón para tal resistencia radica en el costo que genera la evaluación de la consulta: el costo de procesamiento para las consultas difusas parece ser mucho mayor que las clásicas[10]. El proceso de evaluación para consultas difusas es más complejo que el de consultas clásicas. Éste supone que el cálculo del grado de satisfacción de cada fila, el ordenamiento de los datos por medio de los grados calculados y finalmente la selección de los items deseados. En este proceso, las estructuras de acceso disponibles no pueden usarse directamente, ya que los criterios de selección se basan en el grado de satisfacción de las condiciones difusas, en vez de basarse directamente en los valores de los atributos. Más aún, la semántica de los términos difusos es dependiente del usuario. Esto hace, en general, que sea imposible crear estructuras de acceso especializadas[3]. Sólo en el caso de términos difusos predefinidos sería posible proveer de tales estructuras. Dichos términos predefinidos deben restringirse a términos estándar muy específicos en el universo de discurso de cada base de datos. Algunos mecanismos de evaluación de consulta propuestos para SQLf [2][3][4][9][10][12][14][19][20]. El mecanismo más importante se enfoca en una extensión de un Sistema Manejador de Base de Datos Clásico. La primera estrategia es un mecanismo de proceso simple, llamado Estrategia Ingenua [10][12][14]. El mismo consiste en calcular el grado de satisfacción sobre cada fila de la relación y después hacer una selección de las filas deseadas por el usuario. Esta estrategia no aprovecha las condiciones de selección involucradas en la consulta para mejorar el tiempo de búsqueda, el costo de procesamiento de consulta puede ser alto. De acuerdo con la Teoría de Conjuntos Difusos, existe una conexión entre los conjuntos difusos y los conjuntos clásicos, a través de los conceptos de Soporte, Núcleo y -corte de un conjunto difuso. Así, existen conexiones entre propiedades de las condiciones Booleanas y las difusas. Parece ser de utilidad entender estas condiciones; para crear mecanismos de evaluación de consultas difusas basadas en estas conexiones[10][42]. Tales mecanismos podrían valerse de esas conexiones para acceder a la base de datos basándose en las condiciones Booleanas, para, de esta manera, tratar de hacer que el procesamiento de consultas difusas llegue a ser, al menos parcialmente, un procesamiento de consultas clásicas. Así, la evaluación de consultas podría aprovechar la tecnología de recuperación existente para consultas clásicas. Se han propuesto estrategias mejoradas, basadas en las conexiones entre las condiciones difusas y Booleanas, para mantener bajo el costo extra del proceso de consultas difusas. El fundamento de estas estrategias se llama Principio de Derivación[42]. Éste establece que: dada una consulta difusa en SQLf, es posible derivar una consulta clásica en SQL que, o bien recupera las mismas filas que la consulta difusa (Derivación Fuerte) o, si no, recupera un superconjunto lo más cercano posible (Derivación Débil). Para aquellas consultas que no involucren cuantificación lingüística, se ha demostrado la aplicabilidad del Principio de Derivación. Además, se ha demostrado en estos casos que la aplicación de este principio reduce el costo extra del procesamiento de consultas difusas[1][8][42][21][31][32]. No obstante, previo a este trabajo, no estaba claro si este principio es aplicable para las consultas cuantificadas difusas, y mucho menos era evidente que para tales consultas esta estrategia también diminuya el costo extra del procesamiento de consultas difusas. En el caso de las consultas cuantificadas difusas, se ha propuesto un método heurístico para limitar el número de acceso a las filas en el cálculo del grado de satisfacción[14][18]. Este método se basa en las propiedades de las integrales y medianas difusas. Esto permite mejorar el proceso el Proceso de Consultas Difusas con respecto a la Estrategia Ingenua. Previo a este trabajo, no se habían hecho estudios acerca de esta estrategia con respecto a aquellos basados en el Principio de Derivación. CONCLUSIONES Los resultados de este trabajo podrían usarse como una base para el desarrollo de sistemas para interrogación a bases de datos con capacidades de consultas difusas que hagan uso de cuantificadores. En principio estos sistemas se implementarían como una capa lógica sobre un DBMS existente, de manera que éste se encargue de la optimización de la consulta relacional que se utiliza en el procesamiento de la consulta difusa. Asimismo, basado en los mecanismos de evaluación de consultas difusas que se propongan y en las técnicas conocidas de optimización de consultas, podría extenderse el optimizador de consultas de un DBMS para que trabaje con consultas cuantificadas difusas. Este trabajo puede abrir el camino al estudio de la evaluación de consultas difusas con estructuras más complejas que usen cuantificación, como en el caso de la División Relacional Difusa. Como se ha restringido el trabajo para consultas que involucren proposiciones cuantificadas difusas de la forma “Q X’s son A” o equivalentes, al finalizar este trabajo, permanecerá aún abierto el problema de evaluación de consultas basadas en proposiciones cuantificadas de la forma “Q B X’s son A”, donde algunas ideas se han presentado en [6]. Es posible aplicar la misma metodología de investigación utilizada aquí. BIBLIOGRAFÍA [1] Borrajo, F. & Rengifo, G., Implementación del Lenguaje de Interrogaciones Flexibles a Bases de Datos Relacionales SQLf. Informe Final de Proyecto de Grado en Ingeniería de la Computación, Universidad Simón Bolívar, Venezuela, (1999) [2] Bosc, P. & Brisson, A., On the Evaluation of Some SQLf Nested Queries, FUZZ-IEEE/IFES’95 Workshop on Fuzzy Databases Systems and Information Retrieval, Yokohama, Japan, (1995), Pp. 25-30. [3] Bosc, P. & Galibourg, M., Indexing Principles for a Fuzzy Data Base, Information Systems, Vol. 14, N° 6, (1989), Pp. 493-499. [4] Bosc, P. & Liétard, L., On the Comparison of the Sugeno and the Choquet Fuzzy Integrals for the Evaluation of Quantified Statements, Proceedings of the 3rd European Congress on Intelligent Techniques and Soft Computing EUFIT’95, Aachen, Deutchland, (1995), Pp. 709-716. [5] Bosc, P. & Liétard, L., Fuzzy Integrals and Database Flexible Querying. [6] Bosc, P., Liétard, L. & Prade, H., An Ordinal Approach to the Processing of Fuzzy Queries with Flexible Quantifiers in Applications of Uncertainty Formalisms, Hunter, A. and Parsons, S. (Eds.), Springer-Verlag, (1998). [7] Bosc, P. & Pivert, O., Fuzzy Querying in Conventional Databases, Fuzzy Logic for the Management of Uncertainty, Zadeh, L. and Kacprzyk (Eds.), John Wiley, (1991), Pp. 645-671. [8] Bosc, P. & Pivert, O., On the Efficiency of the Alpha-cut Distribution Method to Evaluate Simple Fuzzy Relational Queries, Advances in Fuzzy Systems-Applications and Theory, Vol. 4, Fuzzy Logic and Soft Computing, Bouchon-Meunier, B., Yager, R. and Zadeh, L. (Eds.), Wold Scientific, (1995), Pp. 251-260. [9] Bosc, P. & Pivert, O., On the Evaluation of Simple Fuzzy Relational Queries, Proceedings of the 4th IFSA Conference, Bruxeleles, Belgique, (1991), Pp. 9-12. [10] Bosc, P. & Pivert, O., SQLf Query Functionality on Top of a Regular Relational Database Management System, Knowledge Management in Fuzzy Databases, Pons, O., Vila, M. and J. Kacprzyk (Eds.), Physica-Verlag, (2000), Pp. 171-190. [11] Bosc, P. & Pivert, O., SQLf: A Relational Database Language for Fuzzy Querying, IEEE Transactions on Fuzzy Systems, Vol. 3, N° 1, (1995), Pp. 1-17. [12] Bosc, P., Galibourg, M. & Hamon, G., Fuzzy Querying with SQL: Extensions and Implementation Aspects, Fuzzy Sets and Systems, Vol. 28, (1988), Pp. 333-349. [13] Bosc, P., Liétard, L. & Pivert, O., Bases de Données et Flexibilite: Les Requetes Graduelles, Technique et Sciece Informatiques, Vol. 17, N° 3, (1998), Pp. 355-378. [14] Bosc, P., Liétard, L. & Pivert, O., Evaluation of Flexible Queries: The Quantified Statement Case, Proceedings of the 8th International Conference on Information Processing and Management of Uncertainty in Knowledge-Based Systems IPMU’2000, Madrid, España, (2000), Pp. 11151122. [15] Bosc, P., Liétard, L. & Pivert, O., On the Interpretation of Set-Oriented Fuzzy Quantified Queries, Lecture Notes in Artificial Intelligence, Vol. 689, (1993), Pp. 209-218. [16] Bosc, P., Liétard, L. & Pivert, O., Quantified Statements and Database Fuzzy Querying, Fuzziness in Database Management Systems, Bosc, P. & Kacprzyk, J. (Eds.), Physica-Verlag, (1995), Pp. 275-308. [17] Bosc, P., Liétard, L. & Pivert, O., Quantified Statements in a Flexible Relational Query Language, Proceedings of the 1995 ACM Symposium on Applied Computing, Nashville, USA, (1995), Pp. 488-492. [18] Bosc, P., Liétard, L., & Pivert, O., Quantified Statements and Database Fuzzy Querying, Fuzziness in Database Management Systems, Bosc, P. & J. Kacprzyk (Eds.), Physica Verlag, (1995), Pp. 275-308. [19] Bosc, P., Pivert, O. & Farquhar, K., Integrating Fuzzy Queries into an Existing Database Management System: An Example, International Journal of Intelligent Systems, Vol. 9, (1994), Pp. 475-492. [20] Bosc, P., Some approaches for processing SQLf nested queries, International Journal on Intelligent Systems, Vol. 11, N° 9, (1996), Pp. 611-616. [21] Bosc, P., Subqueries in SQLf, a Fuzzy Database Query Language, IEEE International Conference on Systems, Man & Cybernetics, Vancouver, Canada, (1995), Pp. 3636-3641. [22] Chu, F., Halpern, J., Seshardi, P., Least expected cost query optimization: an exercises, ACM Symposium on Principles of Database Systems, (1999). [23] Codd, E., A Relational Model of Data for Large Shared Data Bank, Communication of ACM, Vol. 13, (1970), Pp. 377-387. [24] Comer, D., The ubiquitous B-Tree, ACM Computing Surveys, Vol. 11(2), (1979), Pp. 121-137. [25] Cox, E., Relational Database Queries using Fuzzy Logic, Artificial Intelligent Expert, (1995), Pp. 23-29. [26] Dayal, U., Processing Queries with Quantifiers: A Horticultural Approach, Proceedings of 1983 SIGMOD Conference, (1983), Pp. 125-136. [27] Dubois, D. & Prade, H., Fuzzy Cardinality and the Modeling of Imprecise Quantification, Fuzzy Sets and Systems, Vol. 16, N° 2, (1985), Pp. 199-230. [28] Elmasri, R., Navathe, S., Fundamental of Database Systems, Edition Fourth, Pearson AddisonWesley, 2004. [29] Freytag, J., A Rule – based View of Query optimization, Proceeding of ACM SIGMOD Conference on the managemeng of Data, (1987) [30] George, R., Petry, F., Buckles, B. & Srikanth, R., Fuzzy Database Systems – Challenges and Opportunities of a New Era, International Journal of Intelligent Systems, Vol. 11, (1996), Pp. 649-659. [31] Gutiérrez, L. & Tineo, L., Desempeño de Mecanismos de Evaluación de SQLf, Acta Científica Venezolana, Vol. 51, Suplemento N°2-2000, (2000), p. 357. [32] Gutiérrez, L., Desempeño de Mecanismos de Evaluación de SQLf, Informe Final de Proyecto de Grado en Ingeniería de la Computación, Universidad Simón Bolívar, Venezuela, (2000). [33] Hájek, P. & Kohout, L., Fuzzy Implications and Generalizd Quantifiers, International Journal of Uncertainty, Fuzziness and Knowledge-Based Systems, Vol. 4, N° 3, (1996), Pp. 225-233. [34] Hwang, H. & Yu, Y., An Analytical Method for Estimating and Interpreting Query Time, Proceedings of the 13th VLDB Conference, Brighton, (1987), Pp. 347-358. [35] ISO/IEC 9075:1992, Database Language SQL, Digital Equipment Corporation, Maynard, Massachusetts, USA, (1992). [36] Kacpryzyk, J. & Zadrozny, S., Database Queries with Fuzzy Linguistic Quantifiers, IEEE Transactions on Systems, Man and Cybernetics, Vol. 16, N°3, (1986), Pp. 474-478. [37] LaCroix, M. & Pirotte, A., Domain oriented relational languages, Proceeding intl. Conference on Very Large Database (1977). [38] Liétard, L., Contribution à l’Interrogation Flexible de Bases de Données: Étude des Propositions Quantifiées Floues, Thèse de Doctoract, Université de Rennes I, France, (1995). [39] Loo, G. & Lee, K., An Interface for Flexible Query Answering: A Fuzzy Set Approach, Lecture Notes in Computer Science, Vol. 1873, Mohamed Ibrahim-Josef Küng-Norman Revell (Eds.) Springer Verlag, (2000), Pp. 654-663. [40] Mackert, L. & Lohman, G., R* Optimizer Validation and Performance Evaluation for Local Queries, Proceedings of 1986 SIGMOD Conference, Washington D. C., USA, (1986), Pp. 8495. [41] Medina, J., Bases de Datos Relacionales Difusas, Modelos y Aspectos de su Implementación, Tesis de Doctorado, Universidad de Granada, España, (1994). [42] Pivert, 0., Contribution à l’Interrogation Flexible de Bases de Données: Expression et Évaluation de Requêtes Floues, Thèse de Doctoract, Université de Rennes I, France, (1991). [43] Prade, H., A Tow-Layer Fuzzy Pattern Matching Procedure for the Evaluation of Conditions Involving Vague Quantifiers, Journal of Intelligent and Robotic Systems, Vol. 3, (1990), Pp. 93-101. [44] Ralescu, D., Cardinality, Quantifiers, and the Aggregation of Fuzzy Criteria, Fuzzy Sets and Systems, Vol. 69, (1995), Pp. 355-365. [45] Ramakrishnan, R., Gehrke J., Database Management Systems, Tercera Edición, Mc Graw Hill, 2003. [46] Selinger, P. & Adiba, M., Access path selections in distributed database management systems, Proceeding of International Conference on Databases, British Computing Society, (1980). [47] Sugeno, T., Theory of Fuzzy Integrals and its Applications, Ph.D. Thesis, Tokyo Institute of Technology, Japan, (1974). [48] Tineo, L., A Fuzzy Quantifiers'Interpretation for Database Querying, Proceedings of the First International Conference on Fuzzy Information Processing Theories and Applications". Vol. 1. pp. 423 – 428, (2003) [49] Ullman, J., Widom, J., Introducción a los Sistemas de Bases de Datos, Vol. 1, Prentice Hall, 1999. [50] Yager, R., On Ordered Weighted Averaging Aggregation Operators in Multicriteria Decision Making”, Transactions on Systems, Man and Cybernetics, N° 18, (1988), Pp. 183-190. [51] Yager, R., Aggregating Evidence Using Quantified Statements, Information Sciences, Vol. 36, (1985), Pp. 179-206. [52] Yager, R., Connectives and quantifiers in fuzzy sets, Fuzzy Sets and Systems, Vol. 40, (1991), Pp. 39-76. [53] Yager, R., Database Discovery Using Fuzzy Sets, International Journal of Intelligent Systems, Vol. 11, (1996), Pp. 691-712. [54] Yager, R., General Multiple-Objective Decision Functions and Linguistically Quantified Statements, International Journal of Man-Machine Studies, N° 21, (1984), Pp. 389-400. [55] Yager, R., Interpreting Linguistically Quantified Propositions, International Journal of Intelligent Systems, Vol. 9, (1994), Pp. 541-569. [56] Yager, R., Quantified Propositions in a Linguistic Logic, International Journal of Man-Machine Studies, Vol. 19, (1983), Pp. 195-227. [57] Yager, R., Quantifiers in the Formulation of Multiple Objective Decision Functions, Information Sciences, Vol. 31, (1983), Pp. 107-139. [58] Yager, R., Reasoning with Fuzzy Quantified Statements: Part I, Kybernetes, Vol. 14, (1985), Pp. 233-240. [59] Yager, R., Reasoning with Fuzzy Quantified Statements: Part II, Kybernetes, Vol. 15, (1986), Pp. 111-120. [60] Zadeh, L., A Computational Approach to Fuzzy Quantifiers in Natural Languages, Computer Mathematics with Applications, Vol. 9, (1983), Pp. 149-183. APÉNDICES Se anexan a este documento las publicaciones previas del autor directamente relacionadas con el tema. - A Fuzzy Quantifiers’ Interpretation for Database Querying, en Proceeding de FIP 2003 - Extending RDBMS for allowing Fuzzy Quantified Queries, en Proceeding de DEXA 2000 - About the Performance of SQLf Evaluation Mechanisms, en Proceeding de CLEI 2004 - SQLf Horizontal Fuzzy Quantified Query Processing, en Proceeding de CLEI 2005