Implementación de Cuantificadores Difusos
                Sobre el SGBD PostgreSQL



   Autor:                    Tutora:
Gustavo Bazán              Ana Aguilera
   Introducción
   El Problema
   Objetivos
   Justificación
   Marco Teórico
   Metodología
   Resultados
   Conclusiones
Agenda
•   Introducción
•   El Problema
•   Objetivos
•   Justificación
•   Marco Teórico
•   Metodología
•   Resultados
•   Conclusiones
Agenda
•   Introducción
•   El Problema
•   Objetivos
                    Un objeto de
•   Justificación
                    1500Kg se
•   Marco Teórico
                    aproxima a tu
•   Metodología     cabeza a 50Km/s   ¡CUIDADO!
•   Resultados
•   Conclusiones
Cuantificación Lingüística:
                       “Un hotel que satisface la mayoría de los
    Agenda              siguientes criterios: no muy caro, cercano al
•   Introducción        centro de convenciones, cercano a una estación
•   El Problema         del metro, con piscina, con buenas áreas de
•   Objetivos           recreación, cercano a un centro comercial”
•   Justificación
•   Marco Teórico      “Los pacientes que presenten la mayoría de los
•   Metodología         síntomas: fiebre alta, tensión baja, tos grave”
•   Resultados         “Los empleados tengan al menos 2 de las
    Conclusiones
•
                        siguientes      características:     ser     buen
                        trabajador, mal pagado y vivir lejos”
Consulta Clásica

    Agenda              "Un hotel que no cuesta más de Bs. 500
•   Introducción
                        por día, con piscina y a no más de 5 Km de
•   El Problema         distancia del centro de convenciones, del
•   Objetivos           metro y de un centro comercial ".
•   Justificación
•   Marco Teórico
                    •   En SQL:
    Metodología
                           SELECT * FROM HOTELS
•
•   Resultados
•   Conclusiones           WHERE price < 500
                           AND distance_conference < 5
                           AND distance_sub < 5
                           AND distance_mall < 5
                           AND pool=true
   Requerimientos que impliquen términos
                        como “la mayoría” o “aproximadamente
    Agenda
                        4” no pueden ser expresados por medio
•   Introducción        de lenguajes de consultas, basados en el
•   El Problema         paradigma relacional.
•   Objetivos
•   Justificación
•   Marco Teórico      Los requerimientos del usuario deben
•   Metodología         ser expresados de forma precisa.
•   Resultados
•   Conclusiones
                       Los Sistemas Clásicos de Manipulación
                        de Bases de Datos no permiten expresar
                        requerimientos graduales.
   Aplicaciones a nivel de capa lógica
                        resuelven el problema, pero sus costos
    Agenda              computacionales son muy elevados.
•   Introducción
•   El Problema
•   Objetivos
•   Justificación
•   Marco Teórico
•   Metodología
•   Resultados
•   Conclusiones
Objetivo General
                     Desarrollar un sistema que permita hacer
    Agenda
                     consultas de tipo flexible haciendo uso de
•   Introducción
•   El Problema      cuantificadores difusos en un Sistema Gestor
•   Objetivos        de bases de Datos Relacionales (SGBDR).
•   Justificación
•   Marco Teórico
•   Metodología     Requerimientos:
    Resultados
                     Deberá acoplarse de manera fuerte con el
•
•   Conclusiones
                      SGBDR PostgreSQL
                     Debe   brindar mecanismos que puedan
                      ayudar de cierta forma a manejar la
                      imprecisión del lenguaje natural.
Objetivos Específicos
    Agenda
•   Introducción
                       Estudiar el uso de los diferentes tipos de
•   El Problema         Cuantificadores difusos, así como su
•   Objetivos           interpretación en consultas cuantificadas.
•   Justificación
•   Marco Teórico
•   Metodología        Analizar la infraestructura del SGBDR
    Resultados
•
•   Conclusiones
                        PostgreSQL con la finalidad de poder
                        determinar las diferentes áreas que se deben
                        modificar para la implementación de
                        PostgreSQLf.
Objetivos Específicos
    Agenda
•   Introducción       Implementar la funcionalidad de creación y
•   El Problema         evaluación de Cuantificadores difusos.
•   Objetivos
•   Justificación
•   Marco Teórico      Integrar     la    implementación    de
    Metodología
•
•   Resultados
                        Cuantificadores Difusos con el resto de
•   Conclusiones        PostgreSQLf.

                       Evaluar el desempeño de PostgreSQLf en
                        términos de eficiencia y funcionalidad de
                        los cuantificadores difusos.
   Mecanismos de calidad para accesos a datos:

    Agenda              ◦ Mejorar la expresividad del lenguaje mediante el uso
                          de cuantificadores lingüísticos.
•   Introducción
•   El Problema
•   Objetivos           ◦ Flexibilizar el acceso a la información.
•   Justificación
•   Marco Teórico
                       La resistencia         al   uso     por      su   costo
    Metodología
                        computacional.
•
•   Resultados
•   Conclusiones
                       Aplicabilidad en áreas reales.

                       Desarrollo en el marco de transferencia
                        tecnológica.
Trabajos Relacionados:
                       SQLf: A Relational Database Language for Fuzzy
    Agenda              Querying. (Bosc, P., & Pivert, O. (1995)).
•   Introducción
•   El Problema
•   Objetivos          Interrogaciones Flexibles en Bases de Datos
•   Justificación       Relacionales. (Tineo, L. (1998)).
•   Marco Teórico
•   Metodología
•   Resultados         Una Contribución a la Interrogación Flexible de
•   Conclusiones        Bases de Datos: Evaluación de Consultas
                        Cuantificadas Difusas. (Tineo, L. (2005)).

                       Reingeniería del Sistema de Consultas Difusas a
                        Bases de Datos SQLfi. (Crespo, V. (2006)).
Trabajos Relacionados:
                       Una Contribución a la Interrogación Flexible de
    Agenda              Bases de Datos: Optimización y Evaluación a
•   Introducción
•   El Problema
                        Nivel Físico. (Cadenas, J. (2006)).
•   Objetivos
•   Justificación      PostgreSQLf: Sistema de Consultas Flexibles
•   Marco Teórico
                        Fuertemente Acoplado con el SGBD PostgreSQL.
•   Metodología
•   Resultados          (Rossodivita, A.).
•   Conclusiones

                       PostgreSQLf: Implementación de Extensiones
                        Difusas de manera Fuertemente Acoplada sobre
                        el RDBMS PostgreSQLf. (Bracho, A.).
Trabajos Relacionados:
                       Implementación de Primitivas SQL para Reglas de
    Agenda
                        Asociación en una Arquitectura Fuertemente
•   Introducción
•   El Problema
                        Acoplada.(Timarán, R.(2005)).
•   Objetivos
    Justificación
•
                       RT-PostgreSQL: extensión de PostgreSQL para el
•   Marco Teórico
•   Metodología
                        manejo de datos con Frecuencias Temporales en
•   Resultados          base a una Arquitectura Fuertemente Acoplada.
•   Conclusiones        (García, L. (2008)).


                       On Extending PostgreSQL with       the   Skyline
                        Operator. (Reinhard, P. (2009)).
Trabajo                            Elaborado por:                         Implementación


Una Contribución a la Interrogación             José T. Cadenas                 Predicados difusos por trapecio,
     Flexible de Bases de Datos:               Tesis de Maestría                        operador AND.
 Optimización y Evaluación a Nivel
 Físico, Universidad Simón Bolívar,
          Diciembre (2006).

PostgreSQLf: Sistema de Consultas              Arturo Rossodivita             Predicados difusos por Expresión y
Flexibles Fuertemente Acoplado con                                                 Extensión, operador OR,
       el SGBD PostgreSQL                                                           modificadores difusos.

 PostgreSQLf: Implementación de                 Armando Bracho                Consultas particionadas GROUP BY,
  Extensiones Difusas de manera                                                  HAVING, UPDATE vistas, y
  Fuertemente Acoplada sobre el                                                   operación de unión difusa.
      RDBMS PostgreSQL,

 PostgreSQLf: Implementación de                 Gustavo Bazán                   Consultas con Cuantificación
     Cuantificadores Difusos                                                               Difusa.
   Sobre el SGBD PostgreSQL

   Operaciones conjuntistas, sub                 Rodolfo Vegas                   Comparadores, operaciones
 consultas difusas y comparadores     Trabajo de investigación y desarrollo   conjuntistas y sub consultas difusas
    difusos para PostgreSQLf                                                             en el FROM.
   Basado en el concepto matemático
    Agenda              de relación.
•
•
    Introducción
    El Problema
                       Lenguajes de consultas para la
•   Objetivos           manipulación de los datos:
•   Justificación
•   Marco Teórico       ◦ Procedimentales como el álgebra
•   Metodología           relacional.
•   Resultados
•   Conclusiones        ◦ No procedimentales como el SQL
                          (Structured   Query     Language)  o
                          lenguaje de consulta estructurado.
   Conjuntos difusos
                       Gradualidad de membrecía
    Agenda             Función en el intervalo [0,1]
•   Introducción
•   El Problema        Representación Trapezoidal
•   Objetivos
•   Justificación
                        1
•   Marco Teórico
•   Metodología
•   Resultados
•   Conclusiones



                        0

                                  x1      x2        x3          x4
                                         x1 , x 2 , x 3 , x 4
                                   A
   Booleana: Existe (∃) y Para Todo
    Agenda              (∀).
•
•
    Introducción
    El Problema
                       Difusa: “la mayoría de”, “pocos
•   Objetivos           de”, “aproximadamente la mitad
                        de”,              “aproximadamente
•   Justificación
•   Marco Teórico
•
•
    Metodología
    Resultados
                        cinco”, “cerca de 3”.
•   Conclusiones       Se      clasifican     según    su
                        interpretación.
Por su naturaleza
                         Cuantificador Absoluto o Relativo
    Agenda
•   Introducción      Por su Comportamiento
•   El Problema          Cuantificador Creciente, Decreciente o Unimodal
•   Objetivos
•   Justificación                                 Absolutos                           Relativos
•   Marco Teórico
                                  1                                           1
•   Metodología
•   Resultados
                    Creciente
•   Conclusiones                  0                                           0
                                      0       2       4       6       8           0   0.25    0.5     0.75           1
                                  1                                           1

                    Decreciente
                                  0                                           0
                                      0       2       4       6       8           0   0.25   0.5    0.75     1
                                  1                                           1


                    Unimodales
                                  0                                           0
                                      0   1       2   3   4   5   6       7       0   0.25   0.5     0.75        1
   Consultas flexibles sobre Bases de Datos
                        Relacionales.
    Agenda
•   Introducción       Basado en la Teoría de Conjuntos
•   El Problema         Difusos.
•   Objetivos
•   Justificación      CREATE [ABSOLUTE/RELATIVE]
•   Marco Teórico       QUANTIFIER <nombre> AS <cjto
    Metodología
                        difuso>
•
•   Resultados
•   Conclusiones       SELECT <atributos>
                        FROM <tablas>
                        WHERE <condición difusa>
                       Cuantificación: Q (fc1, fc2, …, fcn)
   Reducir el número de filas consultadas
                        por cada operación.
    Agenda
•   Introducción       Emplea la relación entre condiciones
•   El Problema         difusas y booleanas.
•   Objetivos
•   Justificación      Transformaciones lógicas.
•
•
    Marco Teórico
    Metodología
                       Conseguir las mismas filas con una
•   Resultados          consulta clásica que con una difusa.
•   Conclusiones
   SGDB de Código Abierto
    Agenda
•   Introducción
•   El Problema
•   Objetivos
•   Justificación
•   Marco Teórico
•   Metodología
•   Resultados
•   Conclusiones
   Backend de Postgres
    Agenda
•   Introducción
•   El Problema
•   Objetivos
•   Justificación
•   Marco Teórico
•   Metodología
•   Resultados
•   Conclusiones
Cascada

    Agenda
•   Introducción
•   El Problema
•   Objetivos
•   Justificación
•   Marco Teórico
•   Metodología
•   Resultados
•   Conclusiones
Fase de Análisis
    Agenda
•   Introducción
                       El reconocimiento del problema implicó:
•   El Problema
•   Objetivos
•   Justificación       ◦ Estudio del sistema de consultas flexibles
•   Marco Teórico         SQLf.
•   Metodología
•   Resultados
•   Conclusiones        ◦ Uso de Cuantificación difusa para SQLf.

                        ◦ Estudio del diseño y estructura de PostgreSQL.
Fase de Diseño
                       Requerimientos:
    Agenda
                        ◦ CREATE [ABSOLUTE/RELATIVE] QUANTIFIER <nombre> AS
•   Introducción
                          <conj>
•   El Problema
                        ◦ SELECT Att FROM R WHERE Q(fc1, fc2, …, fcn)
•   Objetivos
•   Justificación
•   Marco Teórico
•   Metodología
•   Resultados
•   Conclusiones
Fase de Implementación
    Agenda             Catálogo
•   Introducción        ◦ Almacenamiento de los cuantificadores
•   El Problema         ◦ Tabla del sistema pg_fuzzyquan.
•   Objetivos
•   Justificación
                        ◦ Manejo del catalogo.
•   Marco Teórico
•   Metodología
•   Resultados
•   Conclusiones
Fase de Implementación
    Agenda             Parser
•   Introducción        ◦ Nuevos Nodos
•   El Problema           CreateFuzzyQuanStmt
•   Objetivos
                          A_FuzzyQuan
•   Justificación
•   Marco Teórico       ◦ Nueva semántica para la creación               de
•   Metodología           cuantificadores difusos (gram.y)
    Resultados
•
                        ◦ Interceptar una consulta cuantificada
•   Conclusiones
                          Validar exista el cuantificador
                          Generar un árbol de consulta difuso
                          Derivar el árbol difuso a un árbol clásico.
Fase de Implementación
    Agenda             Parser
•   Introducción        ◦ Árbol de consulta Difuso
•   El Problema
                             Select
•   Objetivos
•   Justificación
•   Marco Teórico
•   Metodología
•   Resultados      Atributos         Tablas         Where
•   Conclusiones



                                               Cuantificador Difuso



                                      Predicado difuso       Predicado difuso
Fase de Implementación
                       Parser
    Agenda
                        ◦ Consulta difusa
•   Introducción
•   El Problema            SelectStmt                      ResTarget         Attr
                           unique                                            relname                      “empleado”
•   Objetivos              unionall: false
                                                           val
                                                                             attr
•   Justificación          targetList

    Marco Teórico
                           fromClause                                                       Value
•                                                                                           val.str
                           whereClause
•   Metodología            groupClause
                                                                  RangeVar
                                                                  name
    Resultados
                                                                                “empleado”
•                          havingClause
                                                                  relExpr
                                                                                                      “id_num”

•   Conclusiones           sortClause
                                                                                  A_FuzzyPred
                                             A_FuzzyQuan
                                             Predname:                            Predname: alto
                                             al_menos3
                                             Minfp:        1                      Begd: 0
                                             Core1:        3                      Begd: 300
                                             Core2:        0                      Minfp: 100
                                             Maxfp:        0                      Core1: 300
                                             Typefp:       3                      Core2: 0
                                             Typefq:       1
                                                                                  Maxfp: 0
                                             args
                                                                                  Typefp: 3
Fase de Implementación
                        Parser
    Agenda
                         ◦ Derivación de una consulta difusa
•   Introducción
•   El Problema           SELECT    Att FROM   R WHERE        OR            AND       DNC   fc i , , t
•   Objetivos                                             I   comb n , lb    i   I

•   Justificación                  Select
•   Marco Teórico
•   Metodología
•   Resultados      Atributos           Tablas                  Where
•   Conclusiones

                                                                   OR

                                                 AND                                 AND

                                     Condición           Condición
                                     derivada            derivada                    …
Fase de Implementación
                       Parser
    Agenda
                         ◦ Consulta derivada
•   Introducción
•   El Problema         BoolExpr       BoolExpr
                                                  OpExpr
•   Objetivos           OR             AND
                                                  Opno…               A_FuzzyPred
                                                            Var
•   Justificación       args           args
                                                  args                …
                                                            …
•   Marco Teórico
•   Metodología                                   OpExpr
                                                               Var       A_FuzzyPred
•   Resultados                                    Opno…
                                                                         …
                                                               …
•   Conclusiones                       BoolExpr
                                                  args

                                       AND                 Var       A_FuzzyPred
                                                  OpExpr
                                       args                …
                                                  Opno…              …

                                                  args


                                                  OpExpr   Var       A_FuzzyPred

                                                  Opno…
                                   …




                                                           …         …
                                                  args
Fase de Implementación
                       Traffic Cop (Tcop)
    Agenda
                        ◦ Manejo de la expresión simple para crear cuantificadores.
•   Introducción
•   El Problema
•   Objetivos
•   Justificación
•   Marco Teórico
•   Metodología
•   Resultados
•   Conclusiones
                       Planner/Optimizer
                        ◦ Mantener la información de los           valores   de   cada
                          cuantificador difuso y sus predicados.
Fase de Implementación
                       Executor
    Agenda
                        ◦ Calculo del grado de membrecía.
•   Introducción
•   El Problema
•   Objetivos
•   Justificación
•   Marco Teórico
•   Metodología
•   Resultados
•   Conclusiones
Fase de Integración
    Agenda             Integrar   con    el   resto   de   las
•   Introducción        funcionalidades de PostgreSQLf
•   El Problema
•   Objetivos
•
•
    Justificación
    Marco Teórico
                    Fase de Pruebas
•   Metodología        Pruebas de funcionalidad y rendimiento
•   Resultados
•   Conclusiones
Pruebas Funcionales
                       Uso de la base de datos lab_marcha, facilitada por el
    Agenda              Laboratorio De Marcha Del Hospital Ortopédico
•   Introducción
                        Infantil.
•   El Problema
•   Objetivos
•   Justificación      Creación de Cuantificadores Difusos
•   Marco Teórico
•   Metodología         lab_marcha=# CREATE ABSOLUTE QUANTIFIER al_menos3
                                          AS (1.0, 3.0, infinite, infinite);
•   Resultados          CREATE FUZZY QUANTIFIER
•   Conclusiones        lab_marcha=#


                        lab_marcha=# CREATE RELATIVE QUANTIFIER aprox_la_mitad
                            AS (0.25, 0.5, 0.5, 0.75);
                        CREATE FUZZY QUANTIFIER
                        lab_marcha=#
Pruebas Funcionales
      Validación del catálogo
lab_marcha=# SELECT * FROM pg_fuzzyquan;
    quanname    | quanminfp | quancore1 | quancore2 | quanmaxfp | quantypefp | quantypefq
----------------+-----------+-----------+-----------+-----------+------------+------------
 al_menos3      | 1.0       | 3.0       | 0.0       | 0.0       |          3 |          1
 a_lo_sumo_2    | 0.0       | 0.0       | 2.0       | 3.0       |          2 |          1
 aprox_5        | 3.0       | 4.0       | 6.0       | 7.0       |          1 |          1
 la_mayoria     | 0.5       | 0.75      | 1.0       | 1.0       |          3 |          2
 la_minoria     | 0.0       | 0.0       | 0.25      | 0.5       |          2 |          2
 aprox_la_mitad | 0.25      | 0.5       | 0.5       | 0.75      |          1 |          2
(6 rows)
lab_marcha=#
Pruebas Funcionales
                       Selección de datos
    Agenda
                          Se desea conocer la edad, talla y peso de los pacientes que
•   Introducción
                          cumplan con la mayoría de las siguientes condiciones: ser
•   El Problema           viejo, alto y gordo.
•   Objetivos
                             lab_marcha=# SELECT edad, talla, peso
•   Justificación             FROM estudio
•   Marco Teórico             WHERE la_mayoria(edad=viejo, talla=alto, peso=gordo);
•   Metodología              edad | talla | peso | Gr.Memb.
                             ------+-------+-------+----------
•   Resultados                  52 | 1.66 | 85.6 |       0.56
•   Conclusiones                57 | 195.5 | 110.7 |     0.85
                                57 | 195.5 | 110.2 |     0.85
                                57 | 195.5 | 109.8 |     0.85
                                57 | 195.5 | 109.8 |     0.85
                                57 | 195.5 | 109.6 |     0.85
                                57 | 195.5 |   110 |     0.85
                                57 | 195.5 | 110.3 |     0.85
                                57 | 195.5 | 110.3 |     0.85
                                57 | 195.5 | 110.1 |     0.85
                                57 | 195.5 | 110.1 |     0.85
                                51 | 1.81 |     94 |     0.55
                             (12 rows)
                             lab_marcha=#
Pruebas de Rendimiento
                       Verificar si el uso de cuantificadores afecta el
    Agenda
•   Introducción
                        tiempo de una consulta con respecto a una
•   El Problema         clásica equivalente.
•   Objetivos          Herramienta TPC-H.
•   Justificación
•   Marco Teórico
                       Dos volúmenes de datos (1 y 5 GB).
•   Metodología        Variación el número de predicados a cuantificar
•   Resultados          (2 o 4 predicados).
•   Conclusiones
                       Análisis de Varianza (ANOVA) para varios
                        factores.
                       72 pruebas variando los distintos factores.
Pruebas de Rendimiento
                    Tabla ANOVA
    Agenda
•   Introducción    Factor                Df   Sum Sq       Mean Sq      F value    Pr(>F)
•   El Problema     TIPO                  2    9377784      4688892      0.3361     0.7159

•   Objetivos       NUMERO                1    2377027462   2377027462   170.3782   < 2.2e-16 ***
•   Justificación   VOLUMEN               1    5101153794   5101153794   365.6354   < 2.2e-16 ***
•   Marco Teórico   TIPO:NUMERO           2    244581       122291       0.0088     0.9913
•   Metodología     TIPO:VOLUMEN          2    21411603     10705802     0.7674     0.4687
•   Resultados      NUMERO:VOLUMEN        1    1568508521   1568508521   112.4260   2.222e-15 ***
•   Conclusiones    TIPO:NUMERO:VOLUMEN   1    3316498      1658249      0.1189     0.8881
                    Residuals             60   837088575    13951476
Pruebas de Rendimiento
Trabajo Realizado
    Agenda
•   Introducción       Implementación de la estrategia del
•   El Problema
                        programa derivado para cuantificación
•   Objetivos
•   Justificación       difusa sobre el kernel de PostgreSQL.
•   Marco Teórico
•   Metodología
•   Resultados         Nuevas herramientas que faciliten la
•   Conclusiones
                        obtención   de   información   sobre
                        PostgreSQL.

                       Sencillez          para          realizar
                        consultas, lenguaje mas natural.
Aportes
    Agenda
•   Introducción
                       PostgreSQLf,    una    alternativa   para
•   El Problema
•   Objetivos           cuantificación basada en lógica difusa.
•   Justificación
•   Marco Teórico
•   Metodología        Una guía de referencia para futuras
•
•
    Resultados
    Conclusiones
                        extensiones sobre PostgreSQL.

                       Pruebas estadísticas de la mejoras de
                        tiempo al implementar de manera
                        fuertemente acoplada.
Recomendaciones
    Agenda
•   Introducción
                       Implementación    del   resto   de     las
•   El Problema
•   Objetivos           características   de     SQLf        sobre
•   Justificación       PostgreSQLf.
•   Marco Teórico
•   Metodología
•
•
    Resultados
    Conclusiones
                       Revisión de la estructura y código final
                        de PostgreSQLf.

                       Fomentar desarrollos que ayuden a la
                        independencia tecnológica.
¿Preguntas?

Cuantificadores Difusos-PostgreSQLf

  • 1.
    Implementación de CuantificadoresDifusos Sobre el SGBD PostgreSQL Autor: Tutora: Gustavo Bazán Ana Aguilera
  • 2.
    Introducción  El Problema  Objetivos  Justificación  Marco Teórico  Metodología  Resultados  Conclusiones
  • 3.
    Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
  • 4.
    Agenda • Introducción • El Problema • Objetivos Un objeto de • Justificación 1500Kg se • Marco Teórico aproxima a tu • Metodología cabeza a 50Km/s ¡CUIDADO! • Resultados • Conclusiones
  • 5.
    Cuantificación Lingüística:  “Un hotel que satisface la mayoría de los Agenda siguientes criterios: no muy caro, cercano al • Introducción centro de convenciones, cercano a una estación • El Problema del metro, con piscina, con buenas áreas de • Objetivos recreación, cercano a un centro comercial” • Justificación • Marco Teórico  “Los pacientes que presenten la mayoría de los • Metodología síntomas: fiebre alta, tensión baja, tos grave” • Resultados  “Los empleados tengan al menos 2 de las Conclusiones • siguientes características: ser buen trabajador, mal pagado y vivir lejos”
  • 6.
    Consulta Clásica Agenda "Un hotel que no cuesta más de Bs. 500 • Introducción por día, con piscina y a no más de 5 Km de • El Problema distancia del centro de convenciones, del • Objetivos metro y de un centro comercial ". • Justificación • Marco Teórico • En SQL: Metodología SELECT * FROM HOTELS • • Resultados • Conclusiones WHERE price < 500 AND distance_conference < 5 AND distance_sub < 5 AND distance_mall < 5 AND pool=true
  • 7.
    Requerimientos que impliquen términos como “la mayoría” o “aproximadamente Agenda 4” no pueden ser expresados por medio • Introducción de lenguajes de consultas, basados en el • El Problema paradigma relacional. • Objetivos • Justificación • Marco Teórico  Los requerimientos del usuario deben • Metodología ser expresados de forma precisa. • Resultados • Conclusiones  Los Sistemas Clásicos de Manipulación de Bases de Datos no permiten expresar requerimientos graduales.
  • 8.
    Aplicaciones a nivel de capa lógica resuelven el problema, pero sus costos Agenda computacionales son muy elevados. • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
  • 9.
    Objetivo General Desarrollar un sistema que permita hacer Agenda consultas de tipo flexible haciendo uso de • Introducción • El Problema cuantificadores difusos en un Sistema Gestor • Objetivos de bases de Datos Relacionales (SGBDR). • Justificación • Marco Teórico • Metodología Requerimientos: Resultados  Deberá acoplarse de manera fuerte con el • • Conclusiones SGBDR PostgreSQL  Debe brindar mecanismos que puedan ayudar de cierta forma a manejar la imprecisión del lenguaje natural.
  • 10.
    Objetivos Específicos Agenda • Introducción  Estudiar el uso de los diferentes tipos de • El Problema Cuantificadores difusos, así como su • Objetivos interpretación en consultas cuantificadas. • Justificación • Marco Teórico • Metodología  Analizar la infraestructura del SGBDR Resultados • • Conclusiones PostgreSQL con la finalidad de poder determinar las diferentes áreas que se deben modificar para la implementación de PostgreSQLf.
  • 11.
    Objetivos Específicos Agenda • Introducción  Implementar la funcionalidad de creación y • El Problema evaluación de Cuantificadores difusos. • Objetivos • Justificación • Marco Teórico  Integrar la implementación de Metodología • • Resultados Cuantificadores Difusos con el resto de • Conclusiones PostgreSQLf.  Evaluar el desempeño de PostgreSQLf en términos de eficiencia y funcionalidad de los cuantificadores difusos.
  • 12.
    Mecanismos de calidad para accesos a datos: Agenda ◦ Mejorar la expresividad del lenguaje mediante el uso de cuantificadores lingüísticos. • Introducción • El Problema • Objetivos ◦ Flexibilizar el acceso a la información. • Justificación • Marco Teórico  La resistencia al uso por su costo Metodología computacional. • • Resultados • Conclusiones  Aplicabilidad en áreas reales.  Desarrollo en el marco de transferencia tecnológica.
  • 13.
    Trabajos Relacionados:  SQLf: A Relational Database Language for Fuzzy Agenda Querying. (Bosc, P., & Pivert, O. (1995)). • Introducción • El Problema • Objetivos  Interrogaciones Flexibles en Bases de Datos • Justificación Relacionales. (Tineo, L. (1998)). • Marco Teórico • Metodología • Resultados  Una Contribución a la Interrogación Flexible de • Conclusiones Bases de Datos: Evaluación de Consultas Cuantificadas Difusas. (Tineo, L. (2005)).  Reingeniería del Sistema de Consultas Difusas a Bases de Datos SQLfi. (Crespo, V. (2006)).
  • 14.
    Trabajos Relacionados:  Una Contribución a la Interrogación Flexible de Agenda Bases de Datos: Optimización y Evaluación a • Introducción • El Problema Nivel Físico. (Cadenas, J. (2006)). • Objetivos • Justificación  PostgreSQLf: Sistema de Consultas Flexibles • Marco Teórico Fuertemente Acoplado con el SGBD PostgreSQL. • Metodología • Resultados (Rossodivita, A.). • Conclusiones  PostgreSQLf: Implementación de Extensiones Difusas de manera Fuertemente Acoplada sobre el RDBMS PostgreSQLf. (Bracho, A.).
  • 15.
    Trabajos Relacionados:  Implementación de Primitivas SQL para Reglas de Agenda Asociación en una Arquitectura Fuertemente • Introducción • El Problema Acoplada.(Timarán, R.(2005)). • Objetivos Justificación •  RT-PostgreSQL: extensión de PostgreSQL para el • Marco Teórico • Metodología manejo de datos con Frecuencias Temporales en • Resultados base a una Arquitectura Fuertemente Acoplada. • Conclusiones (García, L. (2008)).  On Extending PostgreSQL with the Skyline Operator. (Reinhard, P. (2009)).
  • 16.
    Trabajo Elaborado por: Implementación Una Contribución a la Interrogación José T. Cadenas Predicados difusos por trapecio, Flexible de Bases de Datos: Tesis de Maestría operador AND. Optimización y Evaluación a Nivel Físico, Universidad Simón Bolívar, Diciembre (2006). PostgreSQLf: Sistema de Consultas Arturo Rossodivita Predicados difusos por Expresión y Flexibles Fuertemente Acoplado con Extensión, operador OR, el SGBD PostgreSQL modificadores difusos. PostgreSQLf: Implementación de Armando Bracho Consultas particionadas GROUP BY, Extensiones Difusas de manera HAVING, UPDATE vistas, y Fuertemente Acoplada sobre el operación de unión difusa. RDBMS PostgreSQL, PostgreSQLf: Implementación de Gustavo Bazán Consultas con Cuantificación Cuantificadores Difusos Difusa. Sobre el SGBD PostgreSQL Operaciones conjuntistas, sub Rodolfo Vegas Comparadores, operaciones consultas difusas y comparadores Trabajo de investigación y desarrollo conjuntistas y sub consultas difusas difusos para PostgreSQLf en el FROM.
  • 17.
    Basado en el concepto matemático Agenda de relación. • • Introducción El Problema  Lenguajes de consultas para la • Objetivos manipulación de los datos: • Justificación • Marco Teórico ◦ Procedimentales como el álgebra • Metodología relacional. • Resultados • Conclusiones ◦ No procedimentales como el SQL (Structured Query Language) o lenguaje de consulta estructurado.
  • 18.
    Conjuntos difusos  Gradualidad de membrecía Agenda  Función en el intervalo [0,1] • Introducción • El Problema  Representación Trapezoidal • Objetivos • Justificación 1 • Marco Teórico • Metodología • Resultados • Conclusiones 0 x1 x2 x3 x4 x1 , x 2 , x 3 , x 4 A
  • 19.
    Booleana: Existe (∃) y Para Todo Agenda (∀). • • Introducción El Problema  Difusa: “la mayoría de”, “pocos • Objetivos de”, “aproximadamente la mitad de”, “aproximadamente • Justificación • Marco Teórico • • Metodología Resultados cinco”, “cerca de 3”. • Conclusiones  Se clasifican según su interpretación.
  • 20.
    Por su naturaleza  Cuantificador Absoluto o Relativo Agenda • Introducción Por su Comportamiento • El Problema  Cuantificador Creciente, Decreciente o Unimodal • Objetivos • Justificación Absolutos Relativos • Marco Teórico 1 1 • Metodología • Resultados Creciente • Conclusiones 0 0 0 2 4 6 8 0 0.25 0.5 0.75 1 1 1 Decreciente 0 0 0 2 4 6 8 0 0.25 0.5 0.75 1 1 1 Unimodales 0 0 0 1 2 3 4 5 6 7 0 0.25 0.5 0.75 1
  • 21.
    Consultas flexibles sobre Bases de Datos Relacionales. Agenda • Introducción  Basado en la Teoría de Conjuntos • El Problema Difusos. • Objetivos • Justificación  CREATE [ABSOLUTE/RELATIVE] • Marco Teórico QUANTIFIER <nombre> AS <cjto Metodología difuso> • • Resultados • Conclusiones  SELECT <atributos> FROM <tablas> WHERE <condición difusa>  Cuantificación: Q (fc1, fc2, …, fcn)
  • 22.
    Reducir el número de filas consultadas por cada operación. Agenda • Introducción  Emplea la relación entre condiciones • El Problema difusas y booleanas. • Objetivos • Justificación  Transformaciones lógicas. • • Marco Teórico Metodología  Conseguir las mismas filas con una • Resultados consulta clásica que con una difusa. • Conclusiones
  • 23.
    SGDB de Código Abierto Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
  • 24.
    Backend de Postgres Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
  • 25.
    Cascada Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
  • 26.
    Fase de Análisis Agenda • Introducción  El reconocimiento del problema implicó: • El Problema • Objetivos • Justificación ◦ Estudio del sistema de consultas flexibles • Marco Teórico SQLf. • Metodología • Resultados • Conclusiones ◦ Uso de Cuantificación difusa para SQLf. ◦ Estudio del diseño y estructura de PostgreSQL.
  • 27.
    Fase de Diseño  Requerimientos: Agenda ◦ CREATE [ABSOLUTE/RELATIVE] QUANTIFIER <nombre> AS • Introducción <conj> • El Problema ◦ SELECT Att FROM R WHERE Q(fc1, fc2, …, fcn) • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
  • 28.
    Fase de Implementación Agenda  Catálogo • Introducción ◦ Almacenamiento de los cuantificadores • El Problema ◦ Tabla del sistema pg_fuzzyquan. • Objetivos • Justificación ◦ Manejo del catalogo. • Marco Teórico • Metodología • Resultados • Conclusiones
  • 29.
    Fase de Implementación Agenda  Parser • Introducción ◦ Nuevos Nodos • El Problema  CreateFuzzyQuanStmt • Objetivos  A_FuzzyQuan • Justificación • Marco Teórico ◦ Nueva semántica para la creación de • Metodología cuantificadores difusos (gram.y) Resultados • ◦ Interceptar una consulta cuantificada • Conclusiones  Validar exista el cuantificador  Generar un árbol de consulta difuso  Derivar el árbol difuso a un árbol clásico.
  • 30.
    Fase de Implementación Agenda  Parser • Introducción ◦ Árbol de consulta Difuso • El Problema Select • Objetivos • Justificación • Marco Teórico • Metodología • Resultados Atributos Tablas Where • Conclusiones Cuantificador Difuso Predicado difuso Predicado difuso
  • 31.
    Fase de Implementación  Parser Agenda ◦ Consulta difusa • Introducción • El Problema SelectStmt ResTarget Attr unique relname “empleado” • Objetivos unionall: false val attr • Justificación targetList Marco Teórico fromClause Value • val.str whereClause • Metodología groupClause RangeVar name Resultados “empleado” • havingClause relExpr “id_num” • Conclusiones sortClause A_FuzzyPred A_FuzzyQuan Predname: Predname: alto al_menos3 Minfp: 1 Begd: 0 Core1: 3 Begd: 300 Core2: 0 Minfp: 100 Maxfp: 0 Core1: 300 Typefp: 3 Core2: 0 Typefq: 1 Maxfp: 0 args Typefp: 3
  • 32.
    Fase de Implementación  Parser Agenda ◦ Derivación de una consulta difusa • Introducción • El Problema SELECT Att FROM R WHERE OR AND DNC fc i , , t • Objetivos I comb n , lb i I • Justificación Select • Marco Teórico • Metodología • Resultados Atributos Tablas Where • Conclusiones OR AND AND Condición Condición derivada derivada …
  • 33.
    Fase de Implementación  Parser Agenda ◦ Consulta derivada • Introducción • El Problema BoolExpr BoolExpr OpExpr • Objetivos OR AND Opno… A_FuzzyPred Var • Justificación args args args … … • Marco Teórico • Metodología OpExpr Var A_FuzzyPred • Resultados Opno… … … • Conclusiones BoolExpr args AND Var A_FuzzyPred OpExpr args … Opno… … args OpExpr Var A_FuzzyPred Opno… … … … args
  • 34.
    Fase de Implementación  Traffic Cop (Tcop) Agenda ◦ Manejo de la expresión simple para crear cuantificadores. • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones  Planner/Optimizer ◦ Mantener la información de los valores de cada cuantificador difuso y sus predicados.
  • 35.
    Fase de Implementación  Executor Agenda ◦ Calculo del grado de membrecía. • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
  • 36.
    Fase de Integración Agenda  Integrar con el resto de las • Introducción funcionalidades de PostgreSQLf • El Problema • Objetivos • • Justificación Marco Teórico Fase de Pruebas • Metodología  Pruebas de funcionalidad y rendimiento • Resultados • Conclusiones
  • 37.
    Pruebas Funcionales  Uso de la base de datos lab_marcha, facilitada por el Agenda Laboratorio De Marcha Del Hospital Ortopédico • Introducción Infantil. • El Problema • Objetivos • Justificación  Creación de Cuantificadores Difusos • Marco Teórico • Metodología lab_marcha=# CREATE ABSOLUTE QUANTIFIER al_menos3 AS (1.0, 3.0, infinite, infinite); • Resultados CREATE FUZZY QUANTIFIER • Conclusiones lab_marcha=# lab_marcha=# CREATE RELATIVE QUANTIFIER aprox_la_mitad AS (0.25, 0.5, 0.5, 0.75); CREATE FUZZY QUANTIFIER lab_marcha=#
  • 38.
    Pruebas Funcionales  Validación del catálogo lab_marcha=# SELECT * FROM pg_fuzzyquan; quanname | quanminfp | quancore1 | quancore2 | quanmaxfp | quantypefp | quantypefq ----------------+-----------+-----------+-----------+-----------+------------+------------ al_menos3 | 1.0 | 3.0 | 0.0 | 0.0 | 3 | 1 a_lo_sumo_2 | 0.0 | 0.0 | 2.0 | 3.0 | 2 | 1 aprox_5 | 3.0 | 4.0 | 6.0 | 7.0 | 1 | 1 la_mayoria | 0.5 | 0.75 | 1.0 | 1.0 | 3 | 2 la_minoria | 0.0 | 0.0 | 0.25 | 0.5 | 2 | 2 aprox_la_mitad | 0.25 | 0.5 | 0.5 | 0.75 | 1 | 2 (6 rows) lab_marcha=#
  • 39.
    Pruebas Funcionales  Selección de datos Agenda Se desea conocer la edad, talla y peso de los pacientes que • Introducción cumplan con la mayoría de las siguientes condiciones: ser • El Problema viejo, alto y gordo. • Objetivos lab_marcha=# SELECT edad, talla, peso • Justificación FROM estudio • Marco Teórico WHERE la_mayoria(edad=viejo, talla=alto, peso=gordo); • Metodología edad | talla | peso | Gr.Memb. ------+-------+-------+---------- • Resultados 52 | 1.66 | 85.6 | 0.56 • Conclusiones 57 | 195.5 | 110.7 | 0.85 57 | 195.5 | 110.2 | 0.85 57 | 195.5 | 109.8 | 0.85 57 | 195.5 | 109.8 | 0.85 57 | 195.5 | 109.6 | 0.85 57 | 195.5 | 110 | 0.85 57 | 195.5 | 110.3 | 0.85 57 | 195.5 | 110.3 | 0.85 57 | 195.5 | 110.1 | 0.85 57 | 195.5 | 110.1 | 0.85 51 | 1.81 | 94 | 0.55 (12 rows) lab_marcha=#
  • 40.
    Pruebas de Rendimiento  Verificar si el uso de cuantificadores afecta el Agenda • Introducción tiempo de una consulta con respecto a una • El Problema clásica equivalente. • Objetivos  Herramienta TPC-H. • Justificación • Marco Teórico  Dos volúmenes de datos (1 y 5 GB). • Metodología  Variación el número de predicados a cuantificar • Resultados (2 o 4 predicados). • Conclusiones  Análisis de Varianza (ANOVA) para varios factores.  72 pruebas variando los distintos factores.
  • 41.
    Pruebas de Rendimiento Tabla ANOVA Agenda • Introducción Factor Df Sum Sq Mean Sq F value Pr(>F) • El Problema TIPO 2 9377784 4688892 0.3361 0.7159 • Objetivos NUMERO 1 2377027462 2377027462 170.3782 < 2.2e-16 *** • Justificación VOLUMEN 1 5101153794 5101153794 365.6354 < 2.2e-16 *** • Marco Teórico TIPO:NUMERO 2 244581 122291 0.0088 0.9913 • Metodología TIPO:VOLUMEN 2 21411603 10705802 0.7674 0.4687 • Resultados NUMERO:VOLUMEN 1 1568508521 1568508521 112.4260 2.222e-15 *** • Conclusiones TIPO:NUMERO:VOLUMEN 1 3316498 1658249 0.1189 0.8881 Residuals 60 837088575 13951476
  • 42.
  • 43.
    Trabajo Realizado Agenda • Introducción  Implementación de la estrategia del • El Problema programa derivado para cuantificación • Objetivos • Justificación difusa sobre el kernel de PostgreSQL. • Marco Teórico • Metodología • Resultados  Nuevas herramientas que faciliten la • Conclusiones obtención de información sobre PostgreSQL.  Sencillez para realizar consultas, lenguaje mas natural.
  • 44.
    Aportes Agenda • Introducción  PostgreSQLf, una alternativa para • El Problema • Objetivos cuantificación basada en lógica difusa. • Justificación • Marco Teórico • Metodología  Una guía de referencia para futuras • • Resultados Conclusiones extensiones sobre PostgreSQL.  Pruebas estadísticas de la mejoras de tiempo al implementar de manera fuertemente acoplada.
  • 45.
    Recomendaciones Agenda • Introducción  Implementación del resto de las • El Problema • Objetivos características de SQLf sobre • Justificación PostgreSQLf. • Marco Teórico • Metodología • • Resultados Conclusiones  Revisión de la estructura y código final de PostgreSQLf.  Fomentar desarrollos que ayuden a la independencia tecnológica.
  • 46.