Sunteți pe pagina 1din 46

Implementacin de Cuantificadores Difusos

Sobre el SGBD PostgreSQL



Autor:
Gustavo Bazn
Tutora:
Ana Aguilera
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
Un objeto de
1500Kg se
aproxima a tu
cabeza a 50Km/s
CUIDADO!
Cuantificacin Lingstica:
Un hotel que satisface la mayora de los
siguientes criterios: no muy caro, cercano al
centro de convenciones, cercano a una estacin
del metro, con piscina, con buenas reas de
recreacin, cercano a un centro comercial
Los pacientes que presenten la mayora de los
sntomas: fiebre alta, tensin baja, tos grave
Los empleados tengan al menos 2 de las
siguientes caractersticas: ser buen trabajador,
mal pagado y vivir lejos

Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
Consulta Clsica

"Un hotel que no cuesta ms de Bs. 500
por da, con piscina y a no ms 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
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
Requerimientos que impliquen trminos
como la mayora 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 Clsicos de Manipulacin
de Bases de Datos no permiten expresar
requerimientos graduales.


Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
Aplicaciones a nivel de capa lgica
resuelven el problema, pero sus costos
computacionales son muy elevados.
Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
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
imprecisin del lenguaje natural.
Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
Objetivos Especficos

Estudiar el uso de los diferentes tipos de
Cuantificadores difusos, as como su
interpretacin en consultas cuantificadas.

Analizar la infraestructura del SGBDR
PostgreSQL con la finalidad de poder
determinar las diferentes reas que se deben
modificar para la implementacin de
PostgreSQLf.
Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
Objetivos Especficos

Implementar la funcionalidad de creacin y
evaluacin de Cuantificadores difusos.

Integrar la implementacin de
Cuantificadores Difusos con el resto de
PostgreSQLf.

Evaluar el desempeo de PostgreSQLf en
trminos de eficiencia y funcionalidad de
los cuantificadores difusos.
Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
Mecanismos de calidad para accesos a datos:

Mejorar la expresividad del lenguaje mediante el uso
de cuantificadores lingsticos.

Flexibilizar el acceso a la informacin.

La resistencia al uso por su costo
computacional.

Aplicabilidad en reas reales.

Desarrollo en el marco de transferencia
tecnolgica.

Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
Trabajos Relacionados:
SQLf: A Relational Database Language for Fuzzy
Querying. (Bosc, P., & Pivert, O. (1995)).

Interrogaciones Flexibles en Bases de Datos
Relacionales. (Tineo, L. (1998)).

Una Contribucin a la Interrogacin Flexible de
Bases de Datos: Evaluacin de Consultas
Cuantificadas Difusas. (Tineo, L. (2005)).

Reingeniera del Sistema de Consultas Difusas a
Bases de Datos SQLfi. (Crespo, V. (2006)).


Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
Trabajos Relacionados:
Una Contribucin a la Interrogacin Flexible de
Bases de Datos: Optimizacin y Evaluacin a
Nivel Fsico. (Cadenas, J. (2006)).

PostgreSQLf: Sistema de Consultas Flexibles
Fuertemente Acoplado con el SGBD PostgreSQL.
(Rossodivita, A.).

PostgreSQLf: Implementacin de Extensiones
Difusas de manera Fuertemente Acoplada sobre
el RDBMS PostgreSQLf. (Bracho, A.).

Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
Trabajos Relacionados:
Implementacin de Primitivas SQL para Reglas de
Asociacin en una Arquitectura Fuertemente
Acoplada.(Timarn, R.(2005)).

RT-PostgreSQL: extensin de PostgreSQL para el
manejo de datos con Frecuencias Temporales en
base a una Arquitectura Fuertemente Acoplada.
(Garca, L. (2008)).

On Extending PostgreSQL with the Skyline
Operator. (Reinhard, P. (2009)).

Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
Trabajo Elaborado por: I mplementacin
Una Contribucin a la Interrogacin
Flexible de Bases de Datos:
Optimizacin y Evaluacin a Nivel
Fsico, Universidad Simn Bolvar,
Diciembre (2006).
Jos T. Cadenas
Tesis de Maestra
Predicados difusos por trapecio,
operador AND.
PostgreSQLf: Sistema de Consultas
Flexibles Fuertemente Acoplado con
el SGBD PostgreSQL
Arturo Rossodivita Predicados difusos por Expresin y
Extensin, operador OR,
modificadores difusos.
PostgreSQLf: Implementacin de
Extensiones Difusas de manera
Fuertemente Acoplada sobre el
RDBMS PostgreSQL,
Armando Bracho Consultas particionadas GROUP BY,
HAVING, UPDATE vistas, y
operacin de unin difusa.
PostgreSQLf: Implementacin de
Cuantificadores Difusos
Sobre el SGBD PostgreSQL
Gustavo Bazn Consultas con Cuantificacin
Difusa.
Operaciones conjuntistas, sub
consultas difusas y comparadores
difusos para PostgreSQLf
Rodolfo Vegas
Trabajo de investigacin y desarrollo
Comparadores, operaciones
conjuntistas y sub consultas difusas
en el FROM.
Basado en el concepto matemtico
de relacin.
Lenguajes de consultas para la
manipulacin de los datos:
Procedimentales como el lgebra
relacional.
No procedimentales como el SQL
(Structured Query Language) o
lenguaje de consulta estructurado.
Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
( )
4 3 2 1
, , , x x x x
A
=

0
1
x1 x2 x3 x4
Conjuntos difusos
Gradualidad de membreca
Funcin en el intervalo [0,1]
Representacin Trapezoidal
Booleana: Existe () y Para Todo
().
Difusa: la mayora de, pocos de,
aproximadamente la mitad de,
aproximadamente cinco, cerca
de 3.
Se clasifican segn su
interpretacin.

Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
Por su naturaleza
Cuantificador Absoluto o Relativo
Por su Comportamiento
Cuantificador Creciente, Decreciente o Unimodal

Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
0
1
0 2 4 6 8
0
1
0 0.25 0.5 0.75 1
0
1
0 2 4 6 8
0
1
0 0.25 0.5 0.75 1
0
1
0 1 2 3 4 5 6 7
0
1
0 0.25 0.5 0.75 1
Absolutos Relativos
Creciente
Decreciente
Unimodales
Consultas flexibles sobre Bases de Datos
Relacionales.
Basado en la Teora de Conjuntos
Difusos.
CREATE [ABSOLUTE/RELATIVE]
QUANTIFIER <nombre> AS <cjto
difuso>
SELECT <atributos>
FROM <tablas>
WHERE <condicin difusa>
Cuantificacin: Q (fc
1
, fc
2
, , fc
n
)


Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
Reducir el nmero de filas consultadas
por cada operacin.
Emplea la relacin entre condiciones
difusas y booleanas.
Transformaciones lgicas.
Conseguir las mismas filas con una
consulta clsica que con una difusa.


Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
SGDB de Cdigo Abierto

Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
Backend de Postgres

Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
Cascada
Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
Fase de Anlisis

El reconocimiento del problema implic:

Estudio del sistema de consultas flexibles
SQLf.

Uso de Cuantificacin difusa para SQLf.

Estudio del diseo y estructura de PostgreSQL.
Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
Fase de Diseo
Requerimientos:
CREATE [ABSOLUTE/RELATIVE] QUANTIFIER <nombre> AS
<conj>
SELECT Att FROM R WHERE Q(fc
1
, fc
2
, , fc
n
)


Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
Fase de Implementacin
Catlogo
Almacenamiento de los cuantificadores
Tabla del sistema pg_fuzzyquan.
Manejo del catalogo.


Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
Fase de Implementacin
Parser
Nuevos Nodos
CreateFuzzyQuanStmt
A_FuzzyQuan
Nueva semntica para la creacin 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 clsico.



Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
Fase de Implementacin
Parser
rbol de consulta Difuso


Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
Select
Tablas Atributos Where
Cuantificador Difuso
Predicado difuso Predicado difuso
Fase de Implementacin
Parser
Consulta difusa


Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
SelectStmt
unionall: false
unique
whereClause
fromClause

groupClause
havingClause
targetList

sortClause
ResTarget
val
empleado
attr

Attr
relname



id_num
Value
val.str
RangeVar
name
relExpr

empleado
A_FuzzyQuan
Predname:
al_menos3
Core1: 3
Minfp: 1
Core2: 0
Maxfp: 0
Typefp: 3
Typefq: 1
args

A_FuzzyPred
Predname: alto
Core1: 300
Minfp: 100
Core2: 0
Maxfp: 0
Typefp: 3
Begd: 0
Begd: 300




Fase de Implementacin
Parser
Derivacin de una consulta difusa


Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
( )
( )
|
|
.
|

\
|
>
e e
t fc DNC WHERE R FROM Att SELECT
i
I i lb n comb I
AND OR
, ,
,
Select
Tablas Atributos Where
OR
AND
AND
Condicin
derivada

Condicin
derivada
Fase de Implementacin
Parser
Consulta derivada


Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
BoolExpr
OR
args

OpExpr
Opno
args


BoolExpr
AND
args

BoolExpr
AND
args

OpExpr
Opno
args

OpExpr
Opno
args

OpExpr
Opno
args

Var

A_FuzzyPred

Var

A_FuzzyPred

Var

A_FuzzyPred

Var

A_FuzzyPred

Fase de Implementacin
Traffic Cop (Tcop)
Manejo de la expresin simple para crear cuantificadores.






Planner/Optimizer
Mantener la informacin de los valores de cada
cuantificador difuso y sus predicados.



Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
Fase de Implementacin
Executor
Calculo del grado de membreca.


Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
Fase de Integracin
Integrar con el resto de las
funcionalidades de PostgreSQLf

Fase de Pruebas
Pruebas de funcionalidad y rendimiento


Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
Pruebas Funcionales
Uso de la base de datos lab_marcha, facilitada por el
Laboratorio De Marcha Del Hospital Ortopdico
Infantil.

Creacin de Cuantificadores Difusos


Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
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 Funcionales
Validacin del catlogo


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
Seleccin de datos
Se desea conocer la edad, talla y peso de los pacientes que
cumplan con la mayora de las siguientes condiciones: ser
viejo, alto y gordo.


Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
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 de Rendimiento
Verificar si el uso de cuantificadores afecta el
tiempo de una consulta con respecto a una
clsica equivalente.
Herramienta TPC-H.
Dos volmenes de datos (1 y 5 GB).
Variacin el nmero de predicados a cuantificar
(2 o 4 predicados).
Anlisis de Varianza (ANOVA) para varios
factores.
72 pruebas variando los distintos factores.



Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
Pruebas de Rendimiento
Tabla ANOVA


Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
Factor Df Sum Sq Mean Sq F value Pr(>F)
TIPO 2 9377784 4688892 0.3361 0.7159
NUMERO 1 2377027462 2377027462 170.3782 < 2.2e-16 ***
VOLUMEN 1 5101153794 5101153794 365.6354 < 2.2e-16 ***
TIPO:NUMERO 2 244581 122291 0.0088 0.9913
TIPO:VOLUMEN 2 21411603 10705802 0.7674 0.4687
NUMERO:VOLUMEN 1 1568508521 1568508521 112.4260 2.222e-15 ***
TIPO:NUMERO:VOLUMEN 1 3316498 1658249 0.1189 0.8881
Residuals 60 837088575 13951476
Pruebas de Rendimiento



Trabajo Realizado

Implementacin de la estrategia del
programa derivado para cuantificacin
difusa sobre el kernel de PostgreSQL.

Nuevas herramientas que faciliten la
obtencin de informacin sobre
PostgreSQL.

Sencillez para realizar consultas,
lenguaje mas natural.


Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
Aportes

PostgreSQLf, una alternativa para
cuantificacin basada en lgica difusa.

Una gua de referencia para futuras
extensiones sobre PostgreSQL.

Pruebas estadsticas de la mejoras de
tiempo al implementar de manera
fuertemente acoplada.




Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
Recomendaciones

Implementacin del resto de las
caractersticas de SQLf sobre
PostgreSQLf.

Revisin de la estructura y cdigo final
de PostgreSQLf.

Fomentar desarrollos que ayuden a la
independencia tecnolgica.




Agenda
Introduccin
El Problema
Objetivos
Justificacin
Marco Terico
Metodologa
Resultados
Conclusiones
Preguntas?

S-ar putea să vă placă și