460 likes | 680 Views
PostgreSQLf. Implementación de Cuantificadores Difusos Sobre el SGBD PostgreSQL. Autor : Gustavo Bazán. Tutora : Ana Aguilera. Agenda. Introducción El Problema Objetivos Justificación Marco Teórico Metodología Resultados Conclusiones. Introducción. Agenda Introducción
E N D
PostgreSQLf Implementación de Cuantificadores Difusos Sobre el SGBD PostgreSQL Autor: Gustavo Bazán Tutora: Ana Aguilera
Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
Introducción • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
Datos Precisos Contra Datos Imprecisos • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones Un objeto de 1500Kg se aproxima a tu cabeza a 50Km/s ¡CUIDADO!
El Problema Cuantificación Lingüística: • “Un hotel que satisface la mayoría de los siguientes criterios: no muy caro, cercano al centro de convenciones, cercano a una estación del metro, con piscina, con buenas áreas de recreación, cercano a un centro comercial” • “Los pacientes que presenten la mayoría de los síntomas: fiebre alta, tensión baja, tos grave” • “Los empleados tengan al menos 2 de las siguientes características: ser buen trabajador, mal pagado y vivir lejos” • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
El Problema Consulta Clásica "Un hotel que no cuesta más de Bs. 500 por día, con piscina y a no más de 5 Km de distancia del centro de convenciones, del metro y de un centro comercial ". • En SQL: SELECT * FROM HOTELS WHERE price < 500 AND distance_conference< 5 AND distance_sub< 5 AND distance_mall< 5 AND pool=true • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
El Problema • Requerimientos que impliquen términos como “la mayoría” o “aproximadamente 4” no pueden ser expresados por medio de lenguajes de consultas, basados en el paradigma relacional. • Los requerimientos del usuario deben ser expresados de forma precisa. • Los Sistemas Clásicos de Manipulación de Bases de Datos no permiten expresar requerimientos graduales. • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
El Problema • Aplicaciones a nivel de capa lógica resuelven el problema, pero sus costos computacionales son muy elevados. • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
Objetivos de la Investigación Objetivo General Desarrollar un sistema que permita hacer consultas de tipo flexible haciendo uso de cuantificadores difusos en un Sistema Gestor de bases de Datos Relacionales (SGBDR). Requerimientos: • Deberá acoplarse de manera fuerte con el SGBDR PostgreSQL • Debe brindar mecanismos que puedan ayudar de cierta forma a manejar la imprecisión del lenguaje natural. • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
Objetivos de la Investigación Objetivos Específicos • Estudiar el uso de los diferentes tipos de Cuantificadores difusos, así como su interpretación en consultas cuantificadas. • Analizar la infraestructura del SGBDR PostgreSQL con la finalidad de poder determinar las diferentes áreas que se deben modificar para la implementación de PostgreSQLf. • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
Objetivos de la Investigación Objetivos Específicos • Implementar la funcionalidad de creación y evaluación de Cuantificadores difusos. • Integrar la implementación de Cuantificadores Difusos con el resto de PostgreSQLf. • Evaluar el desempeño de PostgreSQLf en términos de eficiencia y funcionalidad de los cuantificadores difusos. • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
Justificación e Importancia • Mecanismos de calidad para accesos a datos: • Mejorar la expresividad del lenguaje mediante el uso de cuantificadores lingüísticos. • Flexibilizar el acceso a la información. • La resistencia al uso por su costo computacional. • Aplicabilidad en áreas reales. • Desarrollo en el marco de transferencia tecnológica. • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
Antecedentes TrabajosRelacionados: • SQLf: A Relational Database Language for Fuzzy Querying. (Bosc, P., & Pivert, O. (1995)). • Interrogaciones Flexibles en Bases de Datos Relacionales. (Tineo, L. (1998)). • Una Contribución a la Interrogación Flexible de 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)). • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
Antecedentes TrabajosRelacionados: • Una Contribución a la Interrogación Flexible de Bases de Datos: Optimización y Evaluación a Nivel Físico. (Cadenas, J. (2006)). • PostgreSQLf: Sistema de Consultas Flexibles Fuertemente Acoplado con el SGBD PostgreSQL. (Rossodivita, A.). • PostgreSQLf: Implementación de Extensiones Difusas de manera Fuertemente Acoplada sobre el RDBMS PostgreSQLf. (Bracho, A.). • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
Antecedentes TrabajosRelacionados: • Implementación de Primitivas SQL para Reglas de Asociación en una Arquitectura Fuertemente Acoplada.(Timarán, R.(2005)). • RT-PostgreSQL: extensión de PostgreSQL para el manejo de datos con Frecuencias Temporales en base a una Arquitectura Fuertemente Acoplada. (García, L. (2008)). • On Extending PostgreSQL with the Skyline Operator. (Reinhard, P. (2009)). • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
Modelo Relacional • Basado en el concepto matemático de relación. • Lenguajes de consultas para la manipulación de los datos: • Procedimentales como el álgebra relacional. • No procedimentales como el SQL (StructuredQueryLanguage) o lenguaje de consulta estructurado. • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
Teoría Difusa • Conjuntos difusos • Gradualidad de membrecía • Función en el intervalo [0,1] • Representación Trapezoidal • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
Cuantificación Difusa • Booleana: Existe (∃) y Para Todo (∀). • Difusa: “la mayoría de”, “pocos de”, “aproximadamente la mitad de”, “aproximadamente cinco”, “cerca de 3”. • Se clasifican según su interpretación. • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
Cuantificación Difusa Por su naturaleza • Cuantificador Absoluto o Relativo Por su Comportamiento • Cuantificador Creciente, Decreciente o Unimodal • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones Absolutos Relativos Creciente Decreciente Unimodales
SQLf • Consultas flexibles sobre Bases de Datos Relacionales. • Basado en la Teoría de Conjuntos Difusos. • CREATE [ABSOLUTE/RELATIVE] QUANTIFIER <nombre> AS <cjto difuso> • SELECT <atributos> FROM <tablas> WHERE <condicióndifusa> • Cuantificación: Q (fc1, fc2, …, fcn) • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
El Principio de Derivación • Reducir el número de filas consultadas por cada operación. • Emplea la relación entre condiciones difusas y booleanas. • Transformaciones lógicas. • Conseguir las mismas filas con una consulta clásica que con una difusa. • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
PostgreSQL • SGDB de Código Abierto • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
PostgreSQL • Backend de Postgres • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
Metodología Cascada • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
PostgreSQLf Fase de Análisis • El reconocimiento del problema implicó: • Estudio del sistema de consultas flexibles SQLf. • Uso de Cuantificación difusa para SQLf. • Estudio del diseño y estructura de PostgreSQL. • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
PostgreSQLf Fase de Diseño • Requerimientos: • CREATE [ABSOLUTE/RELATIVE] QUANTIFIER <nombre> AS <conj> • SELECT Att FROM R WHERE Q(fc1, fc2, …, fcn) • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
PostgreSQLf Fase de Implementación • Catálogo • Almacenamiento de los cuantificadores • Tabla del sistema pg_fuzzyquan. • Manejo del catalogo. • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
PostgreSQLf Fase de Implementación • Parser • Nuevos Nodos • CreateFuzzyQuanStmt • A_FuzzyQuan • Nueva semántica para la creación de cuantificadores difusos (gram.y) • Interceptar una consulta cuantificada • Validar exista el cuantificador • Generar un árbol de consulta difuso • Derivar el árbol difuso a un árbol clásico. • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
PostgreSQLf Fase de Implementación • Parser • Árbol de consulta Difuso • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones Select Tablas Where Atributos Cuantificador Difuso Predicado difuso Predicado difuso
RangeVar Value Attr ResTarget unique whereClause fromClause targetList groupClause havingClause args sortClause val attr relname val.str name relExpr SelectStmt unionall: false A_FuzzyQuan Predname: al_menos3 Minfp:1 A_FuzzyPred Core1: 3 Predname: alto Core2: 0 Begd: 0 Maxfp: 0 Begd: 300 Typefp: 3 Minfp: 100 Typefq: 1 Core1: 300 Core2: 0 Maxfp: 0 Typefp: 3 PostgreSQLf Fase de Implementación • Parser • Consulta difusa • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones “empleado” “empleado” “id_num”
PostgreSQLf Fase de Implementación • Parser • Derivación de una consulta difusa • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones Select Where Atributos Tablas OR AND AND Condición derivada Condición derivada …
args args args args args args args BoolExpr BoolExpr BoolExpr OpExpr OpExpr OpExpr OpExpr AND AND OR Opno… Opno… Opno… Opno… A_FuzzyPred Var … … A_FuzzyPred Var … … A_FuzzyPred Var … … Var … … A_FuzzyPred … PostgreSQLf Fase de Implementación • Parser • Consulta derivada • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
PostgreSQLf Fase de Implementación • TrafficCop (Tcop) • Manejo de la expresión simple para crear cuantificadores. • Planner/Optimizer • Mantener la información de los valores de cada cuantificador difuso y sus predicados. • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
PostgreSQLf Fase de Implementación • Executor • Calculo del grado de membrecía. • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
PostgreSQLf Fase de Integración • Integrar con el resto de las funcionalidades de PostgreSQLf Fase de Pruebas • Pruebas de funcionalidad y rendimiento • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
Pruebas y Resultados Pruebas Funcionales • Uso de la base de datos lab_marcha, facilitada por el Laboratorio De Marcha Del Hospital Ortopédico Infantil. • Creación de Cuantificadores Difusos • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones lab_marcha=# CREATE ABSOLUTE QUANTIFIER al_menos3 AS (1.0, 3.0, infinite, infinite); CREATE FUZZY QUANTIFIER 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 y Resultados 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 y Resultados Pruebas Funcionales • Selección de datos Se desea conocer la edad, talla y peso de los pacientes que cumplan con la mayoría de las siguientes condiciones: ser viejo, alto y gordo. • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones lab_marcha=# SELECT edad, talla, peso FROM estudio WHERE la_mayoria(edad=viejo, talla=alto, peso=gordo); edad | talla | peso | Gr.Memb. ------+-------+-------+---------- 52 | 1.66 | 85.6 | 0.56 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 y Resultados Pruebas de Rendimiento • Verificar si el uso de cuantificadores afecta el tiempo de una consulta con respecto a una clásica equivalente. • Herramienta TPC-H. • Dos volúmenes de datos (1 y 5 GB). • Variación el número de predicados a cuantificar (2 o 4 predicados). • Análisis de Varianza (ANOVA) para varios factores. • 72 pruebas variando los distintos factores. • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
Pruebas y Resultados Pruebas de Rendimiento Tabla ANOVA • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
Pruebas y Resultados Pruebas de Rendimiento
Conclusiones Trabajo Realizado • Implementación de la estrategia del programa derivado para cuantificación difusa sobre el kernel de PostgreSQL. • Nuevas herramientas que faciliten la obtención de información sobre PostgreSQL. • Sencillez para realizar consultas, lenguaje mas natural. • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
Conclusiones Aportes • PostgreSQLf, una alternativa para cuantificación basada en lógica difusa. • Una guía de referencia para futuras extensiones sobre PostgreSQL. • Pruebas estadísticas de la mejoras de tiempo al implementar de manera fuertemente acoplada. • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
Conclusiones Recomendaciones • Implementación del resto de las características de SQLf sobre PostgreSQLf. • Revisión de la estructura y código final de PostgreSQLf. • Fomentar desarrollos que ayuden a la independencia tecnológica. • Agenda • Introducción • El Problema • Objetivos • Justificación • Marco Teórico • Metodología • Resultados • Conclusiones
Gracias por su Atención ¿Preguntas?