E.T.S.I. Informtica
J. Galindo Gmez
Bsicamente, el problema tiene dos vertientes: Consultas Flexibles a Bases de Datos Difusas (con imprecisin). Consultas Flexibles a Bases de Datos Clsicas (sin imprecisin).
Un sistema de Consultas flexibles debera considerar esta segunda opcin, ya que en la actualidad la inmensa mayora de BD existentes son Clsicas (crisp) y puede ser til implantar un sistema de consulta difusa, sin necesidad de convertir la BD a Difusa. 2
Funciones de Grupo o de Agregacin (Dubois, Prade, 1990): Tanto sobre un resultado difuso como sobre atributos difusos.
SQLf slo considera el comando SELECT de SQL. Formato: SELECT [ N | T | N,T ] <lista_se_seleccin> FROM <lista_de_tablas> WHERE <condicin_difusa> La relacin resultante se obtiene de aplicar la <condicin_difusa> al producto cartesiano de todas las tablas de la <lista_de_tablas>. Puede indicarse que se desean recuperar:
Slo las N tuplas que cumplan la condicin con mayor grado (las N mejores tuplas). Aquellas en las que su grado de cumplimiento es mayor que el umbral T (threshold). Pueden especificarse N y T a la vez.
Permite el uso de cuantificadores difusos de manera similar a como veremos que lo hace FSQL.
$[a,b,c,d]
sobre los que podremos efectuar consultas difusas. Permiten la utilizacin en las consultas de: 0 Comparadores difusos (14 tipos de a comparadores que veremos ms adelante). Constantes Difusas: 1
UNKNOWN, UNDEFINED y NULL, en el sentido de Umano-Fukami. $[a,b,c,d]: Distrib. de posibilidad Trapezoidal. $label: Etiqueta lingstica definida como un trapecio en la FMB. [n,m]: Intervalo Entre a y b (a=b=n y c=d=m). #n: Aproximadamente n (b=c=n y na=dn=margen definido en la FMB).
c
[n,m]
0 1
n
#n
FMB: Almacena las etiquetas (con su definicin asociada a cada una), el margen y la distancia mnima para considerar dos valores como muy separados (usada en los comparadores del tipo mucho mayor y mucho menor).
n margen
n n + margen 7
DISTRIBUCIN de POSIBILIDAD: Sobre las etiquetas definidas, con un mximo de n parejas posibilidad/etiqueta. FMB: Almacena las etiquetas, relacin de proximidad y el valor n.
Tipo de Valor UNKNOWN UNDEFINED NULL Simple Distr. Posibilidad FT 0 1 2 3 4 FP1 NULL NULL NULL p p1 F1 NULL NULL NULL label label1 FP2 NULL NULL NULL NULL p2 F2 NULL NULL NULL NULL label2 ... ... ... ... ... ... FPn NULL NULL NULL NULL Pn Fn NULL NULL NULL NULL labeln
Tablas de la FMB
La FMB almacena informacin sobre los datos difusos en forma relacional.
OBJ#, COL#: Son dos atributos que almacenan sendos nmeros que identifican una columna concreta dentro de una tabla concreta. Todas las tablas de la FMB tienen esos dos atributos como llave primaria (o como parte de ella). Oracle identifica cada tabla del sistema con un nmero OBJ#, que se puede obtener consultando la tabla USER_OBJECTS. Dentro de una tabla se identifica cada columna con un nmero COL# que puede consultarse en USER_TAB_COLUMNS .
10
Tablas de la FMB
FUZZY_OBJECT_LIST: Descripcin de los objetos difusos definidos para cada atributo (OBJ #,COL#): FUZZY_ID: Identificador del objeto difuso (llave externa a FLD y FND). FUZZY_NAME: Nombre del objeto (sin espacios). FUZZY_TYPE: Tipo del objeto: etiquetas trapezoidales (0), etiquetas
de tipo 3 (1), cualificadores (2), cuantificadores relativos y absolutos (3,4).
FUZZY_LABEL_DEF: Definicin de etiquetas trapezoidales. FUZZY_ID: Identificador del objeto difuso. ALFA, BETA, GAMMA, DELTA: Los cuatro valores del trapecio. FUZZY_APPROX_MUCH: Valores para el margen (MARGEN) y el valor mnimo o distancia mnima para considerar dos valores muy separados (MUCH) para atributos difusos Tipo 1 2. FUZZY_NEARNESS_DEF: Medidas de proximidad, semejanza o similitud (DEGREE) entre cada dos etiquetas de un atributo difuso Tipo 3 (FUZZY_ID1, FUZZY_ID2). FUZZY_COMPATIBLE_COL: Indica las parejas de atributos difusos Tipo 3 que son compatibles entre s: Con el mismo dominio. Esto no slo evita tener que redefinir las etiquetas y la relacin de similitud sino que adems permite comparar dos atributos difusos compatibles, ya que el sistema sabe que tienen el mismo dominio.
11
SQL
DML de SQL
FROM <Table_list>
Tablas necesarias para la consulta (incluyen tablas de reuni n, subconsultas...).
[ GROUP BY <atributos_para_agrupar> ]
Atributos por los que agrupar el resultado (cada grupo tendr los mismos valores en estos atributos). Las funciones de grupo o de agregacin se aplicarn sobre cada uno de estos grupos. Se aplicarn sobre todas las tuplas si no existe esta clusula.
[ HAVING <condicin_de_grupo> ]
Condicin sobre los grupos (no sobre las tuplas).
[ ORDER BY <atributos_para_ordenar> ]
Atributos por los que ordenar. El orden de estos atributos influye. Puede ponerse el nombre de los atributos por los que se quiere ordenar o un nmero indicando la posicin del atributo en la <Select_list>. 14
[ WHERE <cond> ] ;
<actualizaciones> puede ser : 1. Una lista de asignaciones separadas por coma del tipo: <atrib> = <expr>. 2. Una lista de atributos entre parntesis a los que se le asigna una subconsulta: (<A1>, ..., <Am>) = (<subconsulta>) La clusula WHERE selecciona las tuplas a modificar. Ejemplo: UPDATE Pieza SET Cantidad=Cantidad+100 WHERE P# IN (SELECT P# FROM Suministros WHERE S# IN (3,7)); 15
FSQL
Permiten comparar dos atributos o un atributo con una constante. Para atributos difusos Tipo 3 slo puede usarse FEQ. Para usar el comparador de distinto poner delante de la comparacin la negacin NOT. Conectivos Lgicos: Pueden usarse NOT, AND y OR, para enlazar condiciones difusas simples. 16
0 1
X
FGT B
0 1
X
FGEQ B
0 1
X
FLT B
MLT B
MGT B
0 1
X
FLEQ B
c+ d+
20
Los comparadores de Necesidad son ms restrictivos que sus correspondientes de Posibilidad. Los comparadores del tipo mayor (menor) estricto son ms restrictivos que los del tipo mayor o igual que (menor o igual que).
21
Ejemplo: Son equivalentes AtribT1 FEQ 6 AtribT1 FEQ #6 Con los comparadores difusos MGT/NMGT y MLT/NMLT se difumina tambin el valor crisp del atributo de la izquierda.
Esto consigue una comparacin ms gradual, lo cual parece lgico debido a que estos comparadores son difusos per se (no tienen su correspondiente comparador clsico).
22
max
Observaciones: Si los valores SIMPLES no estan normalizados sern comparados como distribuciones de posibilidad de longitud 1. Si uno de los valores es SIMPLE y otro es una distribucin de posibilidad, la obtencin del grado de similitud se simplifica considerablemente.
23
INSERT:
Pueden insertarse expresiones difusas o subconsultas difusas.
DELETE:
Puede establecerse una condicin difusa en la clusula WHERE para borrar aquellas tuplas que la cumplan. Puede ser peligroso: Usar Rollback.
UPDATE:
Los nuevos valores pueden ser expresiones difusas o subconsultas difusas. Puede establecerse una condicin difusa en la clusula WHERE para actualizar slo aquellas tuplas que la cumplan.
24
En FSQL estas sentencias se han modificado para incluir las caractersiticas de los datos difusos. As, afectan a 4 objetos:
TABLE: Se ampla el comando de SQL para expresar las necesidades de una BDRD. VIEW: Bsicamente, con FSQL una vista puede ser tambin una subconsulta difusa LABEL: Objeto exclusivo de FSQL que referencia etiquetas para atributos difusos Tipo 1 y 2 que estn asociadas a trapecios. NEARNESS: Objeto exclusivo de FSQL que obliga tanto a la definicin de las etiquetas de un atributo difuso Tipo 3 como de la relacin de similitud o proximidad existente entre ellas. A continuacin veremos slo el comando CREATE, por ser el que ms novedades incluye y el ms importante.
25
FTYPE2 o POSSIBILISTIC (m,) <tipo_base>: Para atributos difusos Tipo 2, similar a los de Tipo 1. FTYPE3 o SCALAR (L) : Para atributos difusos Tipo 1.
Entre parntesis se indica el mximo nmero de elementos de sus distribuciones de posibilidad (atributo LEN de FUZZY_COL_LIST). Puede aadirse la palabra DOMAIN seguida de un atributo ya existente: Esto hace que el atributo que se est definiendo sea compatible con el que ya existe, tomando ambos el mismo dominio (etiquetas y relacin ).
Subconsultas, constantes, condiciones y expresiones: Donde el comando CREATE TABLE de SQL permite utilizarlos, FSQL permite utilizarlos en su versin difusa. Por ejemplo, la clusula DEFAULT permite poner una constante difusa como valor por defecto. Restricciones de Columna: Adems de las clsicas, se pueden aadir otras como NOT UNDEFINED, NOT UNKNOWN, NOT LABEL, NOT TRAPEZOID, NOT INTERVAL, NOT APPROX, CHECK (condicin_difusa)... 26
Ej. Tupla: (2, 34, C/ Gandhi, 90, #10, {1/Centro, 0.8/Norte, 0.2/Este})
27
29
Arquitectura de la BDRD
La Arquitectura de la BDRD con el Servidor FSQL es una arquitectura Cliente/Servidor, en la que destacan los siguientes Elementos:
1. Base de datos: Tradicional: Relaciones con los datos (con el formato especial estudiado para los atributos difusos). FMB: Informacin (en formato relacional) sobre la BDRD: Etiquetas lingsticas, Relaciones de semejanza, margen de valores aproximados y valor mnimo para considerar dos valores como muy separados. 2. Servidor FSQL: Hace posible el uso del lenguaje FSQL en el SGBD tradicional. Est programado en lenguaje PL/SQL, un lenguaje inmerso del SGBD Oracle que permite programar aplicaciones eficientes. 3. Cliente FSQL: Es un programa independiente que sirve de interfaz entre el usuario y el Servidor FSQL . Actualmente existe un cliente llamado FQ (Fuzzy Queries) para Windows. 30
Arquitectura de la BDRD
Funcionamiento del Servidor FSQL: Cinco Pasos a nivel interno:
1. El Cliente FSQL enva la sentencia FSQL al Servidor FSQL. 2. El Servidor FSQL analiza la sentencia y si es correcta genera una sentencia en SQL que resuelve dicha sentencia.
Este paso utiliza la informacin de la FMB. Si no es correcta se genera el error pertinente. Cliente FSQL
3. El Cliente FSQL lee 1. Sentencia la sentencia SQL o FSQL 4. Sentencia SQL los errores existentes. 4. El Cliente FSQL enva la sentencia SQL a 3. Sentencia cualquier BD coherente SQL con la FMB.
Servidor FSQL 2. Traduccin usando FMB
5. Resultados
FMB
Base de Datos
31
FSQL_STATS: Tabla con informacin sobre el uso del Servidor FSQL (Accesos producidos, Accesos sin errores, nmero de errores global, tiempo total empleado, tiempo total empleado en los accesos sin errores...).
32
33
34
Con esos CENTROIDES, pueden calcularse los elementos de ese grupo (G) y el grado de pertenencia de cada uno: SELECT tabla.*, CDEG(*) Ej.: SELECT cliente#, CDEG(*) FROM tabla FROM clientes WHERE A 1 FEQ C1 THOLD WHERE Nomina=N AND A2 FEQ C2 THOLD AND UsoTarjeta FEQ $Medio 0.7 AND Saldo FEQ #30533 0.7 AND An FEQ Cn THOLD ; ORDER BY 2 DESC; 35
Averiguar las probabilidades de que cada paciente tenga cada enfermedad segn su edad: CorreRiesgo(Paciente,Enfermedad,Probabilidad) Historial (Paciente, Edad1) Riesgos(Edad2,Enfermedad,Probabilidad) Edad1 FEQ Edad2 THOLD umbral
36
Bibliografa
M.C. Aranda, J. Galindo, Clasificacin de Imgenes de una Base de Datos utilizando informacin de su forma. IV Jornadas Internacionales de Informtica, pp 565-574, Las Palmas de Gran Canaria (Spain ), July 1998. I.J. Blanco, Deduccin en Bases de Datos Relacionales Difusas. Ph. Doctoral Thesis, University of Granada ( Spain ), July 2001. P. Bosc, M. Galibourg, G. Hamon, Fuzzy Querying with SQL: Extensions and Implementation Aspects. Fuzzy Sets and Systems, 28, pp. 333-349, 1988. P. Bosc, O. Pivert, SQLf : A Relational Database Language for Fuzzy Querying. IEEE Transactions on Fuzzy Systems, 3, pp. 1-17, 1995. R.A. Carrasco, ``Data Mining: Un prototipo para Clustering Financiero''. Trabajo de Investigacin del programa de doctorado Tratamiento de la Informacin en Inteligencia Artificial, Dpto. Ciencias de la Computacin e I.A., Universidad de Granada (Spain), Septiembre 1998. R.A. Carrasco, J. Galindo, M.A. Vila , J.M. Medina, Clustering and Fuzzy Classification in a FinancialData Mining Environment. 3rd International ICSC Symposium on Soft Computing, SOCO'99, pp. 713-720. Genova (Italy ), June 1999. R. Carrasco, J. Galindo, A. Vila , Using Artificial Neural Network to Define Fuzzy Comparators in FSQL with the Criterion of some Decision-Maker . In Bio-inspired applications of connectionism.2001, eds. J. Mira and A. Prieto, Lecture Notes in Computer Science (LNCS) 2085, part II, pp. 587594. Ed. Springer, 2001. D. Dubois , H. Prade, Weighted Minimum and Maximum Operations in Fuzzy Set Theory. Information Sciences, 39, pp. 205-210, 1986. D. Dubois , H. Prade, Measuring Properties of Fuzzy Sets : A General Technique and its use in Fuzzy Query Evaluation. Fuzzy Sets and Systems, 38, pp. 137-152, 1990. 37
Bibliografa
D. Dubois , H. Prade, A Review of Fuzzy Set Aggregation Connectives. Information Sciences, 36, pp. 85-121, 1995. J. Galindo, J.M. Medina, O. Pons , J.C. Cubero, A Server for Fuzzy SQL Queries, in Flexible Query Answering Systems, eds . T. Andreasen, H. Christiansen and H.L. Larsen, Lecture Notes in ArtificialIntelligence (LNAI) 1495, pp. 164-174. Ed. Springer, 1998a. J. Galindo, J.M. Medina, A. Vila , O. Pons, Fuzzy Comparators for Flexible Queries to Databases. Iberoamerican Conf. on ArtificialIntelligence, IBERAMIA'98, Lisbon (Portugal), pp. 29-41, 1998b. J. Galindo, Tratamiento de la Imprecisin en Bases de Datos Relacionales: Extensin del Modelo y Adaptacin de los SGBD Actuales. Ph. Doctoral Thesis, University of Granada (Spain ), March 1999 (www.lcc.uma.es). J. Galindo, J.M. Medina, J.C. Cubero, O. Pons, Management of an Estate Agency Allowing Fuzzy Data and Flexible Queries. EUSFLAT-ESTYLF Joint Conference, pp. 485-488, Palma de Mallorca (Spain ), September 1999a. J. Galindo, M.C. Aranda, Gestin de una Agencia de Viajes usando Bases de Datos Difusas y FSQL. Turismo y tecnologas de la informacin y las comunicaciones: Nuevas tecnologas y calidad. TuriTec99, pp. 65-77, Mlaga (Spain), September 1999b. J. Galindo, J.M. Medina, J.C. Cubero, M.T. Garca, Fuzzy Quantifiers in Fuzzy Domain Calculus . 8th Int. Conference on Information Processing and Management of Uncertainty in KnowledgeBased Systems, IPMU'2000, pp. 1697-1704. Madrid (Spain), Julio 2000a (www.lcc.uma.es). J. Galindo, J.M. Medina, J.M. Rodrguez, Comparadores para Bases de Datos Difusas: Definiciones, Clases y Relaciones. X Congreso Espaol sobre Tecnologas y Lgica Fuzzy (ESTYLF'2000),pp. 187-192. Sevilla (Spain ), September 2000b (www.lcc.uma.es). 38
Bibliografa
D. Li, D. Liu, A Fuzzy Prolog Database System. Research Studies Press LTD. John Wiley & Sons Inc., 1990. J.M. Medina, Bases de Datos Relacionales Difusas. Modelo Terico y Aspectos de su Implementacin. PhD. Thesis , Univ. of Granada (Spain), 1994 (www.decsai.ugr.es). J.M. Medina, O. Pons, M.A. Vila , FIRST. A Fuzzy Interface for Relational SysTems. VI International Fuzzy Systems Association World Congress (IFSA1995). Sao Paulo (Brasil), 1995. H. Nakajima, T. Sogoh, M. Arao, Fuzzy Database Language and Library - Fuzzy Extension to SQL. Second International Conference on Fuzzy Systems , FUZZ-IEEE'93, pp. 477-482, 1993. E. Sanchez, Importance in Knowledge Systems. Information Systems, 14, pp. 455-464, 1989. V. Tahani, A Conceptual Framework for Fuzzy Query Processing--A Step toward Very Intelligent Database Systems. Information Processing and Management, 13, pp. 289-303, 1977. M.A. Vila , J.C. Cubero, J.M. Medina, O. Pons , The Generalized Selection: An Alternative Way for the Quotient Operations in Fuzzy Relational Databases. In Fuzzy Logic and Soft Computing. Eds. B. Bouchon-Meunier, R.R. Yager, L.A. Zadeh, pp. 241-250. World Scientific , Singapore, 1995. M. Wong, K Leung, A Fuzzy Database-Query Language. Inform. Systems, 15, pp. 583-590, 1990. R.R. Yager, Quantified Propositions of a Linguistic Logic . International Journal of Man-Machine Studies, 19, pp. 195-227, 1983. R.R. Yager, Connectives and Quantifiers in Fuzzy Sets. Fuzzy Sets and Syst., 40, pp. 39-76, 1991. L.A. Zadeh, A Computational Approach to Fuzzy Quantifiers in Natural Languages. Computer Mathematics with Applications, 9, pp. 149-183, 1983. 39