examen

44
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.

Transcript of examen

Page 1: examen

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

Page 2: examen

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

Page 3: examen

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).

Page 4: examen

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;

Page 5: examen

- 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.

Page 6: examen

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

Page 7: examen

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

Page 8: examen

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

Page 9: examen

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:

Conmutación de Selección:

Cascada de Proyección: RR anaaa 211 , con i,j i<j (aiaj)

Conmutación de Combinación: R S S R, con atributos identificados por nombres

Asociación de Combinación: R ( S T ) ( R S ) T

Conmutación de Selección y Proyección: con todos los atributos de c presentes en

a

Conmutación de Selección y Combinación con ningún atributo de c miembro de S

Conmutación de Proyección y Combinación: 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.

Page 10: examen

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.hidfrom 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.

Figura 2. Consulta Expresada mediante Árbol Relacional de Profundidad Izquierda

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

Page 11: examen

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.

Page 12: examen

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

Page 13: examen

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

y 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.

(a) (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

Page 14: examen

cuantificador absoluto decreciente, el cuantificador “La minoría de” es un cuantificador proporcional

decreciente.

(a) (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.

(a) (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.

(a)(b)

Figura 7. Cuantificadores Clásicos: (a) “Existe”, (b) “Para todo”

Page 15: examen

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 es un conjunto clásico, es un predicado difuso sobre 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 es

un conjunto clásico, A y son predicados difusos sobre 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.

Page 16: examen

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 es un conjunto clásico, son predicados difusos sobre ,

un variable sobre 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

, Px es el predicado difuso sobre Y “ser satisfecho por x”

.

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 ” donde es un conjunto clásico, son

predicados difusos sobre , números reales en , un variable sobre 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 ” es semánticamente

equivalente a “Q Pd Y’s son Px”, donde , Px es el predicado difuso sobre Y “ser

Page 17: examen

satisfecho por x” , Pd es el predicado difuso sobre Y “ser

importante”: .

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:

si Q es un cuantificador proporcional:

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.

Page 18: examen

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:

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 .

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”:

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

donde es un ordenamiento decreciente de

, 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

donde si Q es un cuantificador absoluto: y si Q es un cuantificador proporcional:

Page 19: examen

Y para las sentencias de tipo S2:

donde con

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 un conjunto clásico, un

predicado difuso sobre y Q un cuantificador absoluto creciente; el grado de satisfacción de es

. Donde (Y) es la proposición “Y satisface 1 (Y) y 1(Y)” cuyo grado

de satisfacción es , con una norma triangular . La proposición

“Hay Q elementos en Y” tiene el valor: . Por otro lado, la proposición “Cada

elemento de Y verifica A” tiene el valor: con una norma triangular.

Page 20: examen

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 donde

es un ordenamiento de X tal que .

En lo subsiguiente, en este trabajo se asumirá que la conjunción lógica se interpreta como el operador

“min”.

Veamos un ejemplo. Si es un conjunto clásico,

es un predicado difuso sobre X, (se escogen intencionalmente los elementos x’s en orden decreciente

de ), Almenos4 el cuantificador de la Figura 2. La Interpretación por Descomposición de Yager le

da a “Almenos4 X son A” el valor:

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 (conjunto clásico discreto finito) como un función

que cumple , y

Page 21: examen

Sugeno definió una integral difusa de una función f sobre X respecto a una medida difusa g X como:

donde es un ordenamiento de tal que ,

y .

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

donde cumple y tal que

.

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:

Postulado 2: Monotonía de la interpretación de una sentencia de forma S1 con cuantificadores

monótonos. Si Q es creciente: . Si Q es decreciente:

donde A1 y A2 son dos predicados difusos sobre X que satisfacen

.

Page 22: examen

Postulado 3: Cuantificación de la forma S1 sobre un predicado falso. Si Q es creciente:

, si Q es decreciente: con A un predicado difuso sobre X tal que

.

Postulado 4: Interpretación del cuantificador universal en sentencias de forma S1 como el ínfimo:

Postulado 5: Interpretación del cuantificador existencial en sentencias de forma S1 como el supremo:

Postulado 6: La interpretación de una sentencia cuantificada de la forma S2 debe dar un grado

verdadero:

Postulado 7: Cuando B es Booleano, una sentencia de forma S2 es equivalente a una sentencia de forma

S1: donde Y es el conjunto clásico .

Postulado 8: Cuando B (tiende a) es vacío y Q es creciente una sentencia de forma S2 (tiende a) es

falsa. Si y si

Postulado 9: Cuando B (tiende a) es vacío y Q es decreciente, una sentencia S2 (tiende a) es verdadero.

Si y si .

Postulado 10: Cuando Q es absoluto, una sentencia de forma S2 es equivalente a una sentencia de

forma S1:

Postulado 11: Interpretación del cuantificador existencial de la forma S2 como el supremo:

Page 23: examen

Postulado 12: Interpretación del cuantificador no existencial como la negación del existencial:

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.

Page 24: examen

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

Page 25: examen

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.

Page 26: examen

[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. 1115-1122.

[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.

Page 27: examen

[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 Addison-Wesley, 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).

Page 28: examen

[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. 84-95.

[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.

Page 29: examen

[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