optimización de consultas y cuantificadores difusos

Anuncio
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:  c1c2cn R    c1 c2  cn R 
Conmutación de Selección:  c1 c2 R    c2  c1R 
Cascada de Proyección:  a1R    a1 a2   an R  , con i,j i<j (aiaj)
Conmutación de Combinación: R
Asociación de Combinación: R
SS
(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:


 xX

 S1 ( X )   Q    A ( x ) 
 1
 X
 S1 ( X )   Q 

xX
,
A

( x) 

,


 xX

 S 2 ( X )   Q   min( A ( x),  B ( x))
si Q es un cuantificador proporcional:
  min( A ( x),  B ( x)) 



 A ( x)



xX


 S 2 ( X )   Q  xX
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))
1i n


Q;  c   inf max(  Q (i ),1   c (i ))
1i  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 n1  con zi  i inf  A ( x)
zj
zj
xX




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
 QX , A  sup    Y  . Donde (Y) es la proposición “Y satisface 1 (Y) y 1(Y)” cuyo grado de
YX
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
yY
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
i1 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  Ax   sup m in
i1 X

i ,  Axi 
Almenos 4
m in.25,1, m in.5,.75, m in.75,.5,
 sup 

m in1,.25, m in1,.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
 QX , 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:  QX , 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:  QX , A1    QX , A2  . Si Q es decreciente:  QX , A1    QX , A2  donde A1 y
A2 son dos predicados difusos sobre X que satisfacen x  X  A x   A x.
1
2
 QX , A  0 ,
Postulado 3: Cuantificación de la forma S1 sobre un predicado falso. Si Q es creciente:
 QX , 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 Bx.
,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
Descargar