Phd Gal In

396
 

Transcript of Phd Gal In

UNIVERSIDAD DE GRANADAE.T.S.I. INFORMATICA

Dpto. de Ciencias de la Computacion e Inteligencia Arti cial

TESIS DOCTORAL

TRATAMIENTO de la IMPRECISION en BASES de DATOS RELACIONALES:EXTENSION del MODELO y ADAPTACION de los SGBD ACTUALES

Jose Galindo Gomez1999

UNIVERSIDAD DE GRANADA

TESIS DOCTORAL

TRATAMIENTO de la IMPRECISION en BASES de DATOS RELACIONALES:EXTENSION del MODELO y ADAPTACION de los SGBD ACTUALES: Jose Galindo Gomez : Juan Miguel Medina Rodr guez : Ciencias de la Computacion e

Autor Director Departamento

Inteligencia Arti cial

Programa de Doctorado : Tratamiento de la Informacion en

Inteligencia Arti cial

Esta Tesis Doctoral fue defendida del 12 de Marzo de 1999, obteniendo la cali cacion de SOBRESALIENTE CUM LAUDE.

Indice GeneralAgradecimientos y Dedicatorias 1 Introduccion: Bases de Datos y Conjuntos Difusos1.1 Motivacion y Objetivos . . . . . . . . . . . . . . . . . . . . . . . 1.1.1 Descripcion por Cap tulos . . . . . . . . . . . . . . . . . . 1.2 Modelo Relacional de Bases de Datos . . . . . . . . . . . . . . . . 1.2.1 Estructuras de Datos: Tablas o Relaciones . . . . . . . . . 1.2.2 Integridad de los Datos . . . . . . . . . . . . . . . . . . . 1.2.3 De nicion de los datos . . . . . . . . . . . . . . . . . . . . 1.2.4 Manipulacion de los Datos: Algebra y Calculo Relacional 1.2.4.1 Algebra Relacional . . . . . . . . . . . . . . . . . 1.2.4.2 Calculo Relacional . . . . . . . . . . . . . . . . . 1.2.5 El Lenguaje SQL . . . . . . . . . . . . . . . . . . . . . . . 1.2.5.1 Comando SELECT . . . . . . . . . . . . . . . . . 1.2.5.2 Comando INSERT . . . . . . . . . . . . . . . . . 1.2.5.3 Comando DELETE . . . . . . . . . . . . . . . . . 1.2.5.4 Comando UPDATE . . . . . . . . . . . . . . . . . 1.2.5.5 Comando CREATE TABLE . . . . . . . . . . . . . 1.2.6 El SGBDR Oracle . . . . . . . . . . . . . . . . . . . . . . 1.2.6.1 Estructuras y Tipos de Datos . . . . . . . . . . . 1.2.6.2 Integridad de los Datos . . . . . . . . . . . . . . 1.3 Teor a de Conjuntos Difusos . . . . . . . . . . . . . . . . . . . . . 1.3.1 Conjuntos Difusos . . . . . . . . . . . . . . . . . . . . . . 1.3.2 Conceptos sobre Conjuntos Difusos . . . . . . . . . . . . . 1.3.3 Operaciones sobre Conjuntos Difusos . . . . . . . . . . . . 1.3.3.1 Union e Interseccion . . . . . . . . . . . . . . . . 1.3.3.2 Complemento . . . . . . . . . . . . . . . . . . . 1.3.4 Numeros Difusos . . . . . . . . . . . . . . . . . . . . . . . 1.3.4.1 El Principio de Extension . . . . . . . . . . . . . 1.3.4.2 Aritmetica Difusa . . . . . . . . . . . . . . . . . 1.3.5 Teor a de la Posibilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 5 6 8 9 10 10 11 13 16 17 19 20 20 20 22 23 25 25 25 27 28 28 29 30 31 32 33

1 3

2 Modelos de BDR Difusas: GEFRED

2.1 Imprecision Sin Utilizar Logica Difusa . . . . . . . . . . . . . . . . . . . . . . 2.1.1 Aproximacion de Codd . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.2 Esquema con Valores por Defecto . . . . . . . . . . . . . . . . . . . . . I

3536 36 37

II 2.1.3 Rangos en Valores . . . . . . . . . . . . . . . 2.1.4 Bases de Datos Estad sticas y Probabil sticas Modelos Basicos de Bases de Datos Difusas . . . . . Modelo de Buckles-Petry . . . . . . . . . . . . . . . . Modelo de Prade-Testemale . . . . . . . . . . . . . . Modelo de Umano-Fukami . . . . . . . . . . . . . . . Modelo de Zemankova-Kaendel . . . . . . . . . . . . Modelo GEFRED de Medina et al. . . . . . . . . . . Resumen de los Tipos de Modelos de BDRD . . . . Lenguajes para Consultas Flexibles . . . . . . . . . . 2.9.1 El Lenguaje SQLf de Bosc y Pivert . . . . . . 2.9.2 Cuanti cadores Difusos de la Consulta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

INDICE GENERAL2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 37 38 38 39 40 42 43 47 48 49 50

3 Division Relacional Difusa

3.1 Introduccion y Enfoque del Problema . . . . . . . . . . . . . . . . . . . . . . 3.2 Dos Nuevos Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1 Interseccion Difusa Cuali cada: \Q . . . . . . . . . . . . . . . . . . . 3.2.2 Proyeccion Difusa Generalizada con Funciones de Grupo F : P F . . . 3.2.2.1 Consideraciones Adicionales . . . . . . . . . . . . . . . . . . 3.3 Division Relacional Difusa Generalizada: . . . . . . . . . . . . . . . . . . . 3.3.1 De nicion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.2 Justi cacion de la Division Difusa Generalizada y Comparacion con la Formula Clasica de la Division Relacional . . . . . . . . . . . . . . . . 3.4 Un Ejemplo Practico de Division Relacional Difusa . . . . . . . . . . . . . . . 3.5 Problemas que se Plantean y Posibles Soluciones . . . . . . . . . . . . . . . . 3.6 Relajacion del Cuanti cador en la Division Difusa . . . . . . . . . . . . . . . 3.7 Estudio Comparativo con otras Propuestas . . . . . . . . . . . . . . . . . . . 3.7.1 La Division de Mouaddib . . . . . . . . . . . . . . . . . . . . . . . . . 3.7.1.1 Analisis de la Propuesta . . . . . . . . . . . . . . . . . . . . . 3.7.2 La Division de Umano/Fukami . . . . . . . . . . . . . . . . . . . . . . 3.7.2.1 Analisis de la Propuesta . . . . . . . . . . . . . . . . . . . . . 3.7.3 Distintos Tipos de Divisiones para Distintos Signi cados, segun Bosc et al. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.7.3.1 Analisis de la Propuesta . . . . . . . . . . . . . . . . . . . . . 3.7.4 La Division de Yager . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.7.4.1 Analisis de la Propuesta . . . . . . . . . . . . . . . . . . . . . 3.7.5 La Division de Vila et al. . . . . . . . . . . . . . . . . . . . . . . . . . 3.7.5.1 Analisis de la Propuesta . . . . . . . . . . . . . . . . . . . . . 3.8 Conclusiones y L neas Futuras sobre la Division Difusa . . . . . . . . . . . . .

5353 55 55 60 64 65 65

66 67 74 75 78 78 80 81 82 83 86 88 91 91 93 95

4 Calculo Relacional Difuso

4.1 Calculo Relacional Difuso de Dominios . . . . . . . . . . . . . . . . . . . . . . 98 4.1.1 De nicion de las Expresiones del Calculo Difuso de Dominios . . . . . 98 4.1.1.1 Atomos Difusos . . . . . . . . . . . . . . . . . . . . . . . . . 98 4.1.1.2 Formulas Bien Formadas con Atomos Difusos: WFF (Well Formed Formulas ) . . . . . . . . . . . . . . . . . . . . . . . . 101

97

INDICE GENERAL4.2 4.1.2 Restriccion del Calculo Relacional Difuso para Producir Relaciones Finitas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Capacidad Expresiva del Calculo Relacional Difuso . . . . . . . . . . . . . . . 4.2.1 Operadores Primitivos del Algebra . . . . . . . . . . . . . . . . . . . . 4.2.2 Operadores No Primitivos del Algebra . . . . . . . . . . . . . . . . . . 4.2.3 Traduccion de Algebra Relacional Difuso a Calculo Relacional Difuso de Dominios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Calculo de la Relacion Difusa Resultante . . . . . . . . . . . . . . . . . . . . . 4.3.1 Grado de una variable en una WFF con una sustitucion . . . . . . . . 4.3.2 Relacion Difusa Generalizada Resultante . . . . . . . . . . . . . . . . . Ejemplos de Consultas en Calculo Relacional Difuso . . . . . . . . . . . . . . Cuanti cadores Difusos en el Calculo Relacional Difuso . . . . . . . . . . . . Estudio Comparativo con otras Propuestas . . . . . . . . . . . . . . . . . . . Conclusiones y L neas Futuras sobre el Calculo Relacional Difuso . . . . . . .

III 103 104 104 106 108 108 109 115 116 129 131 132

4.3 4.4 4.5 4.6 4.7

5 Arquitectura de la BDRD: El Servidor FSQL

5.1 Implementacion de la BDRD: FIRST . . . . . . . . . . . . . . . . . . . . . . . 134 5.1.1 Esquema General de FIRST . . . . . . . . . . . . . . . . . . . . . . . . 134 5.1.2 Representacion del Conocimiento Impreciso . . . . . . . . . . . . . . . 136 5.1.2.1 Representacion de los Datos Difusos y/o con Tratamiento Difuso136 5.1.2.2 Comparadores Difusos Generalizados . . . . . . . . . . . . . 139 5.1.2.3 Umbral de Cumplimiento de una Condicion Difusa: Cuali cadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 5.1.2.4 Representacion de Cuanti cadores Difusos de la Consulta . . 140 5.1.3 Implementacion de FIRST en Oracle . . . . . . . . . . . . . . . . . . . 140 5.1.3.1 Representacion del Conocimiento Impreciso en la Base de Datos Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 5.1.3.2 FMB (Fuzzy Metaknowledge Base, Base de Metaconocimiento Difuso): De nicion de Tablas . . . . . . . . . . . . . . . . . . 144 5.1.3.3 Resumen del Contenido de la FMB . . . . . . . . . . . . . . 152 5.1.3.4 Vistas sobre la FMB . . . . . . . . . . . . . . . . . . . . . . . 153 5.1.4 Ejemplo de Implementacion en FIRST de la BD y la FMB . . . . . . 154 5.2 Sintaxis y Semantica del Lenguaje FSQL . . . . . . . . . . . . . . . . . . . . 160 5.2.1 El DML de FSQL: SELECT, INSERT, DELETE y UPDATE . . . . . . . . . 160 5.2.1.1 Novedades en el SELECT Difuso . . . . . . . . . . . . . . . . . 161 5.2.1.2 Otros Comandos: INSERT, DELETE y UPDATE . . . . . . . . . 167 5.2.1.3 Cuanti cadores en FSQL . . . . . . . . . . . . . . . . . . . . 167 5.2.1.4 De nicion de los Comparadores Difusos de FSQL para Atributos Difusos Tipo 1 o 2 . . . . . . . . . . . . . . . . . . . . 170 5.2.1.5 Equivalencias entre Comparadores Difusos y Excepciones a sus De niciones . . . . . . . . . . . . . . . . . . . . . . . . . 176 5.2.1.6 Restrictividad de los Comparadores Difusos . . . . . . . . . . 178 5.2.1.7 De nicion del Comparador Difuso FEQ para Atributos Difusos Tipo 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 5.2.1.8 Tipos de Condiciones Difusas Elementales, Con y Sin Expresiones Aritmeticas . . . . . . . . . . . . . . . . . . . . . . . . 179 5.2.1.9 Comparacion de Valores Crisp Usando Comparadores Difusos 183

133

IV

INDICE GENERAL5.2.1.10 Ejemplos de Consultas en FSQL . . . . . . . . . . . . . . . . 5.2.2 El DDL de FSQL: CREATE, ALTER y DROP . . . . . . . . . . . . . . . . 5.2.2.1 Comandos del DDL de FSQL . . . . . . . . . . . . . . . . . . 5.2.2.2 Ejemplo de Creacion de una BDRD con Sentencias del DDL de FSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Arquitectura del Servidor FSQL . . . . . . . . . . . . . . . . . . . . . . . . . 5.3.1 Datos: Base de Datos Tradicional y FMB . . . . . . . . . . . . . . . . 5.3.2 Servidor FSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3.3 Cliente FSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3.4 Funcionamiento del Servidor FSQL . . . . . . . . . . . . . . . . . . . . El Servidor FSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4.1 Informacion y Opciones de Con guracion del Servidor FSQL . . . . . 5.4.2 Estad sticas y Controles de Acceso del Servidor FSQL . . . . . . . . . 5.4.3 Instalacion/Desinstalacion del Servidor FSQL . . . . . . . . . . . . . . 5.4.4 Instalacion/Desinstalacion de una Base de Datos de Ejemplo . . . . . Implementacion del Servidor FSQL . . . . . . . . . . . . . . . . . . . . . . . . 5.5.1 Analizador Lexico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5.2 Analizador Sintactico . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5.3 Analizador Semantico y Conversor . . . . . . . . . . . . . . . . . . . . 5.5.3.1 Fase preliminar: Las Tablas, sus Alias y los Comodines . . . 5.5.3.2 Fase de Tratamiento de Atributos Difusos . . . . . . . . . . . 5.5.3.3 Fase de Tratamiento de la Funcion CDEG . . . . . . . . . . . . 5.5.4 Funciones de Representacion y Comparacion Difusa . . . . . . . . . . 5.5.4.1 Funciones de Representacion . . . . . . . . . . . . . . . . . . 5.5.4.2 Funciones de Comparacion Difusa . . . . . . . . . . . . . . . 5.5.5 Como Introducir Nuevos Comparadores Difusos en FSQL y su Servidor Mejoras Posibles al Sistema FSQL . . . . . . . . . . . . . . . . . . . . . . . . 5.6.1 Mejoras al Lenguaje FSQL . . . . . . . . . . . . . . . . . . . . . . . . 5.6.2 Mejoras al Servidor FSQL . . . . . . . . . . . . . . . . . . . . . . . . . 183 190 191 197 199 200 200 201 201 202 202 206 207 209 209 212 215 217 218 218 219 220 220 223 225 227 227 229

5.3

5.4

5.5

5.6

6 El Cliente FSQL

6.1 Objetivo y Funcionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Programacion de Clientes FSQL: Operaciones Basicas . . . . . . . . . . . . . 6.2.1 Ejecucion de Sentencias FSQL . . . . . . . . . . . . . . . . . . . . . . 6.2.2 Ver las Etiquetas De nidas para un Atributo Difuso . . . . . . . . . . 6.2.3 Ver el MARGEN y la Distancia MUCH . . . . . . . . . . . . . . . . . . . . 6.2.4 Ver Atributos Difusos Tipo 3 Compatibles y sus Longitudes . . . . . . 6.2.5 Ver si estan Instalados los Paquetes del Servidor FSQL . . . . . . . . 6.2.6 Ver Funciones que Aplica CDEG para los Operadores Logicos . . . . . . 6.2.7 Acceso a Informacion sobre el Servidor FSQL, Estad sticas y otras Opciones de Con guracion . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3 Programacion de FQ, un Cliente FSQL . . . . . . . . . . . . . . . . . . . . . 6.4 Cliente FSQL Visual en Java . . . . . . . . . . . . . . . . . . . . . . . . . . .

231231 233 233 234 235 236 236 236

237 237 240

INDICE GENERAL

V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7 Algunas Aplicaciones del lenguaje FSQL

7.1 Clasi cacion Difusa de Imagenes de una Base de Datos . . . . . . . . . 7.1.1 Introduccion al Problema . . . . . . . . . . . . . . . . . . . . . 7.1.2 Representacion de la Forma de un Objeto . . . . . . . . . . . . 7.1.2.1 La Curva de Curvaturas a la Escala Mas Signi cativa 7.1.3 Deteccion de Caracter sticas Propias . . . . . . . . . . . . . . . 7.1.4 Clasi cacion, segun las Caracter sticas de cada Imagen . . . . . 7.1.4.1 Clasi cacion de Figuras Geometricas . . . . . . . . . 7.1.4.2 Clasi cacion de Figuras Complejas . . . . . . . . . . . 7.2 Data Mining con FSQL en un Entorno Financiero . . . . . . . . . . . 7.2.1 Data Mining como Area Independiente . . . . . . . . . . . . . . 7.2.2 Tecnicas de Data Mining . . . . . . . . . . . . . . . . . . . . . 7.2.3 DAPHNE: Un Prototipo para Clustering Financiero . . . . . . 7.2.3.1 Funcionamiento de DAPHNE . . . . . . . . . . . . . . 7.2.4 Uso de FSQL para Clustering Difuso . . . . . . . . . . . . . . . 7.2.5 Resultados Experimentales . . . . . . . . . . . . . . . . . . . . 7.3 Gestion de una Inmobiliaria Difusa . . . . . . . . . . . . . . . . . . . . 7.3.1 Objetivos Principales . . . . . . . . . . . . . . . . . . . . . . . 7.3.2 Atributos Difusos . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3.3 Ejemplos de Consultas Flexibles . . . . . . . . . . . . . . . . .

243243 243 244 244 245 248 248 249 250 250 252 254 255 258 259 261 262 263 264

Conclusiones y L neas Futuras A Palabras Reservadas de FSQL B Gramatica de FSQLB.1 B.2 B.3 B.4 B.5

Gramatica del SELECT Difuso de FSQL . . . . . Gramatica del INSERT Difuso de FSQL . . . . . Gramatica del DELETE Difuso de FSQL . . . . . Gramatica del UPDATE Difuso de FSQL . . . . . Gramatica de las Sentencias del DDL de FSQL

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

267 271 273273 282 283 283 285

C Errores Generados por el Servidor FSQL D Funciones Utiles del Paquete FSQL PKG E Ficheros Generados con este Trabajo

E.1 Disco del Servidor FSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 E.2 Discos de FQ: El Cliente FSQL . . . . . . . . . . . . . . . . . . . . . . . . . . 315

297 311 315 319 331

F Ejemplos de Sentencias FSQL Traducidas a SQL G Manual de Usuario de FQ (Fuzzy Queries)

F.1 DML: Consultas FSQL Traducidas por el Servidor FSQL . . . . . . . . . . . 319 F.2 DDL: Sentencias CREATE, ALTER y DROP de FSQL Traducidas a SQL . . . . . 325 G.1 Instalacion de FQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 G.2 Empezando con FQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 G.3 Las Opciones de FQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334

VI G.3.1 Menu Archivo (File) . . . . . . . . . . . . G.3.2 Menu Edicion (Edit) . . . . . . . . . . . . G.3.3 Menu SGBD (DBMS) . . . . . . . . . . . G.3.4 Menu Insertar (Insert) . . . . . . . . . . . G.3.5 Menu Opciones (Options) . . . . . . . . . G.3.6 Menu Herramientas (Tools) . . . . . . . . G.3.7 Menu Ayuda (Help) . . . . . . . . . . . . G.4 La Ventana de Resultados . . . . . . . . . . . . . G.4.1 Submenu Archivo (File) . . . . . . . . . . G.4.2 Submenu Opciones (Options) . . . . . . . G.5 Sobre los Tiempos de Traduccion y Recuperacion G.6 Mejoras para Sucesivas Versiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

INDICE GENERAL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 334 335 341 343 344 344 345 346 347 350 351

H Glosario de Terminos y Siglas Referencias Bibliogra cas Marcas Registradas Indices

Indice de Tablas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 Indice de Figuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 Indice de Materias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379

353 359 371 373

Agradecimientos y DedicatoriasNo han sido pocos los que, de alguna forma, han colaborado a que pueda terminar este trabajo. A todos ellos quiero expresar mi agradecimiento mas sincero y \crisp". Aun pudiendo caer en el error de olvidar a alguien, me gustar a nombrar a algunos para agradecerles expl citamente su colaboracion y apoyo: A todos los miembros en general del grupo de trabajo en \Razonamiento Aproximado e Inteligencia Arti cial" del Departamento de Ciencias de la Computacion e Inteligencia Arti cial de la Universidad de Granada y en particular a Juan Miguel Medina y Amparo Vila; al Gobierno Espa~ol, a traves del proyecto n TIC97-0931, y a la \Caja General de Ahorros de Granada" por su colaboracion en el trabajo sobre Data Mining y FSQL (apartado 7.2); a Ramon Alberto Carrasco, Antonio Caba y Jose Andres Carreras; a la Universidad de Malaga y en particular a los miembros del Departamento de Lenguajes y Ciencias de la Computacion. Tambien quiero dedicar este trabajo y agradecer el apoyo de mis padres y hermanas, mis suegros y cu~ados, mi abuela Esperanza, mi sobrino Carlos, mi mujer M. Carmen Arann da y, por supuesto, mi hija Patricia, a quien, ademas de agradecer su incre ble capacidad comprensiva tambien quiero dedicarle este trabajo muy especialmente. En general, me gustar a dedicar este trabajo a los ni~os y ni~as del mundo, pues ellos son n n el presente y el futuro y por ellos, y no por nosotros, debemos luchar todos para conseguirles un mundo mas justo, mas limpio y lleno de vida.

1

2

AGRADECIMIENTOS Y DEDICATORIAS

Cap tulo 1

Introduccion: Bases de Datos y Teor a de Conjuntos Difusos1.1 Motivacion y ObjetivosLa evolucion de las bases de datos comenzo con el uso, de forma elemental, de cheros secuenciales. Con el tiempo, se fueron creando aplicaciones para estos cheros y fueron surgiendo diversos problemas, como son la e ciencia en la recuperacion de informacion, la redundancia, seguridad... As , nacieron los primeros Sistemas Gestores de Bases de Datos (SGBD o DBMS, DataBase Management Systems ), como programas encargados de gestionar el almacenamiento y recuperacion de la informacion, teniendo en cuenta los aspectos y problemas que esto plantea. La arquitectura ANSI/SPARC data de 1978 y en ella se propone la division de un SGBD en tres niveles: El nivel interno, el nivel conceptual y el nivel externo. El nivel interno es el mas cercano a la parte f sica del SGBD, y se encarga de como y donde son almacenados f sicamente los datos. El nivel conceptual se encarga de organizar las relaciones existentes entre los datos, describiendo las entidades, atributos, relaciones, tipos de datos, operaciones basicas y restricciones de la base de datos global. El nivel externo es el mas cercano al usuario y se encarga de describir una parte de la base de datos para un usuario o grupo de usuarios particular, escondiendo el resto de la base de datos y evitando el acceso de los usuarios a informacion privada. Estos tres niveles son muy importantes en todos los SGBD, pero quizas el mas relevante de ellos sea el nivel conceptual. Originariamente, el nivel conceptual permite la utilizacion de tipos de datos elementales a los que llamaremos \crisp" (en contraposicion a los tipos difusos que veremos mas adelante). Estos tipos de datos son, por ejemplo, datos numericos (basicamente naturales, enteros y reales con distinta precision), datos alfanumericos (cadenas de caracteres de distinta longitud) y datos binarios (como cheros de imagenes, sonido...). Ademas, un SGBD debe incorporar un conjunto de operaciones basicas sobre la base de datos para, por ejemplo, insertar, modi car, borrar o consultar informacion. De estas, las mas importantes y usuales seran aquellas destinadas a la consulta de informacion. Por ejemplo, se pueden efectuar preguntas del tipo \dame las personas que tienen mas de 17 a~os y menos n de 25". Las bases de datos tradicionales o clasicas no permiten el almacenamiento de conceptos \difusos" que los humanos manejamos de forma cotidiana y natural. Por conceptos o 3

4

CAPITULO 1. INTRODUCCION: BASES DE DATOS Y CONJUNTOS DIFUSOS

informacion \difusa" (o fuzzy ) entendemos informacion que encierra alguna imprecision o incertidumbre. Por ejemplo, el concepto de persona \joven" indica claramente que la persona no tiene 80 a~os, pero no indica expl citamente su edad exacta. En bases de datos tradicionales n se podr a almacenar la etiqueta \joven" como de forma textual (dato alfanumerico), pero esto, ademas de complicar el almacenamiento de edades numericas normales, nos imposibilita el tratamiento apropiado de esta informacion. Es decir, podemos almacenar la palabra \joven", pero no la informacion que esta expresa. De este modo, cuestiones como \dame las personas que tienen menos de 40 a~os" no se podr an resolver, pues habr a que comparar el numero 40 n con la cadena de caracteres \joven". Ademas, otro tipo de consultas son tambien imposibles de efectuar en bases de datos clasicas, como son \dame las personas que son jovenes" o \cuya edad es cercana a \joven". Las bases de datos difusas unieron la teor a de bases de datos, principalmente del modelo relacional (apartado 1.2) con la teor a de conjuntos difusos (apartado 1.3), para permitir, basicamente dos objetivos: El almacenamiento de informacion difusa (ademas de informacion no difusa o \crisp", por supuesto) y el tratamiento y consulta de esta informacion de forma difusa o exible. Ligado a esto han surgido propuestas en multitud de sentidos, incluyendo la consulta difusa en bases de datos clasicas, sin informacion difusa. Algunos ejemplos de esas propuestas seran expuestas en el Cap tulo 2 y en el apartado 3.7, destacando el Modelo GEFRED (apartado 2.7) como una s ntesis de los modelos mas relevantes publicados en la literatura. Queremos hacer hincapie en un aspecto de las bases de datos difusas, que nos parece de vital importancia en estas: Cada elemento resultante de una consulta difusa debera ser recuperado junto con un grado que indique el nivel con el que dicho elemento ha satisfecho la condicion difusa impuesta en la consulta. A este grado lo llamaremos grado de cumplimiento, de compatibilidad o nivel de satisfaccion. Este grado de cumplimiento suele ser un valor real entre 0 (condicion no satisfecha en absoluto) y 1 (condicion totalmente satisfecha). El grado de cumplimiento es fundamental, pues es una ventaja importante con respecto a las bases de datos clasicas. Es decir, la pregunta \dame las personas jovenes" en una base de datos clasica ser a traducida, por ejemplo, como \dame las personas que tienen entre 17 y 25 a~os". Con esa consulta, una base de datos clasica recupera exclusivamente las personas que n tienen una edad entre 17 y 25 a~os y no recuperara una persona que tenga 16 o 26 a~os, por n n ejemplo. Sin embargo, una persona con 16 o 26 a~os es tambien \joven" en algun nivel. Por n el contrario, a la consulta \dame las personas jovenes" una base de datos difusa respondera recuperando cada persona con un grado de cumplimiento indicando en que medida cada persona es \joven". Por ejemplo, podemos obtener como resultado de la consulta anterior la relacion de la Tabla 1.1. As pues, en bases de datos difusas podemos efectuar consultas exibles y muy expresivas estableciendo umbrales de cumplimiento para las condiciones difusas, como por ejemplo, \dame las personas jovenes con grado m nimo 0.75". Aunque a primera vista pueda no parecerlo, el uso de informacion difusa hace surgir numerosos problemas que no se plantean con informacion \crisp". En este trabajo pretendemos estudiar tales problemas y plantear soluciones para eliminarlos o para evitar, en lo posible, sus efectos. Principalmente, nos centraremos en estudiar la operacion de la division relacional en bases de datos difusas y la creacion de un lenguaje de consulta difuso basado en el calculo relacional. Tambien presentamos el Servidor FSQL, que es un prototipo multiusuario de bases de datos difusas construido sobre el SGBD Oracle (apartado 1.2.6). El Servidor FSQL permite

1.1. MOTIVACION Y OBJETIVOSNombre Fulano Mengano Pepe Juanito Benito Zutano Matusalen Grado de Edad Cumplimiento 23 1.0 Joven 1.0 28 0.8 13 0.7 Maduro 0.5 Aprox. 33 0.1 969 0.0

5

Matusalen o Matusalem fue un Patriarca b blico antediluviano (Gen. 5, 21{27) al que la Biblia le computa 969 a~os. n

Tabla 1.1: Resultado de ejemplo de la consulta difusa \dame las personas jovenes". el almacenamiento de informacion difusa y su tratamiento a traves de otro lenguaje especial para manejo y de nicion de informacion difusa, el FSQL (Fuzzy SQL), que es una extension del popular lenguaje SQL (apartado 1.2.5). Por supuesto, este lenguaje permite recuperar los grados de cumplimiento.

1.1.1 Descripcion por Cap tulos

De una forma rapida y general, podemos describir el contenido de esta memoria explicando brevemente el contenido de los cap tulos: Cap tulo 1: Se da una introduccion general y se plantean los objetivos de este trabajo. Se incluyen una introduccion a los conceptos de Bases de Datos Relacionales y de la Teor a de Conjuntos Difusos, los cuales seran utilizados a lo largo de esta memoria. Cap tulo 2: Se introducen los principales modelos publicados para dar solucion al tratamiento de informacion \imprecisa" en bases de datos relacionales, especialmente aquellos que utilizan la teor a de Conjuntos Difusos. En particular, nos centramos en el modelo GEFRED, sobre el que esta construido todo este trabajo. Se incluye una vision general de las diferentes caracter sticas que distinguen los distintos modelos de Bases de Datos Relacionales Difusas (BDRD). Cap tulo 3: Se de ne el operador Division Relacional del Algebra Relacional, pero para trabajar con Bases de Datos Relacionales Difusas (BDRD). Para ello, se de nen dos nuevos operadores con utilidad por s mismos. Al nal se incluye un analisis comparativo con otros modelos de Division Relacional Difusa. Cap tulo 4: Se de ne un Calculo Relacional de Dominios para una BDRD, as como un mecanismo para calcular para cada tupla los grados de cumplimiento de las condiciones impuestas en la formula bien formada de la expresion. Cap tulo 5: Este cap tulo trata sobre como se ha implementado el Servidor FSQL. Para ello, primero se de nen dos conceptos que seran utilizados en esta implementacion: Una arquitectura para una BDRD basada en Oracle y un lenguaje de consulta y de nicion de datos para BDRD basado en SQL, el lenguaje FSQL. Se incluye una descripcion detallada de las caracter sticas del Servidor FSQL y de su implementacion.

6

CAPITULO 1. INTRODUCCION: BASES DE DATOS Y CONJUNTOS DIFUSOSprogramas Cliente FSQL, que son utilizados como interfaz entre el usuario y el Servidor FSQL del cap tulo anterior. Ademas, se explica el funcionamiento de la comunicacion entre Cliente y Servidor FSQL y como programar un Cliente FSQL, as como una serie de operaciones utiles en estos programas. Se incluye una breve referencia a como esta implementado el programa FQ, un Cliente FSQL creado para este trabajo, y el proyecto de creacion de un cliente FSQL Visual, en Java para que pueda ser ejecutado a traves de Internet.

Cap tulo 6: En este cap tulo se explican los objetivos y caracter sticas basicas de los

Cap tulo 7: De poco o nada servir a todo este trabajo si no tuviera aplicaciones practicas. En este cap tulo exponemos algunas de las aplicaciones practicas que hemos estudiado y en algunos casos implementado. Apendices: En los apendices se incluye informacion general, adicional o de consultaque puede ser util para el entendimiento de algunos apartados espec cos:

consultas difusas (sentencia SELECT), las gramaticas para otras sentencias del DML de FSQL y la gramatica para sentencias del DDL de FSQL. C Lista con todos los posibles mensajes de error que puede detectar el Servidor FSQL, su signi cado y algunas pautas para subsanarlos. D Descripcion de las funciones que pueden utilizarse del paquete FSQL PKG, incluido con el Servidor FSQL. E Descripcion del contenido y utilidad de todos los discos y cheros generados en este trabajo. F Lista de ejemplos de sentencias de FSQL traducidas a SQL. G Manual de usuario de FQ, el Cliente FSQL creado para esta memoria y que en el Cap tulo 6 se explica como fue programado. H Glosario en el que se explican brevemente algunos terminos y siglas empleados en esta memoria y que puede resultar util consultar en cualquier momento. Esta memoria se cierra con una lista de las referencias bibliogra cas utilizadas, una lista de las marcas registradas que se mencionan en esta memoria, ndices de tablas y guras aparecidas en el texto y un ndice de materias para facilitar la localizacion (por paginas) de algunos conceptos concretos o las referencias a los autores mas relevantes (buscar por \Autores").

A Lista con las Palabras Reservadas de FSQL que utiliza el Servidor FSQL. B Se incluyen, en formato Yacc, la gramatica empleada por del Servidor FSQL de

1.2 Modelo Relacional de Bases de DatosEn esta seccion intentaremos dar una vision general de lo que son las bases de datos en general y el Modelo Relacional en particular. No pretendemos dar una explicacion exhaustiva de su de nicion ni de sus caracter sticas pues ya existen en la bibliograf a multitud de libros sobre el tema con distintos enfoques 51, 86, 132, 141].

1.2. MODELO RELACIONAL DE BASES DE DATOS

7

Entenderemos por Base de Datos un repositorio o conjunto de datos almacenados, normalmente en dispositivos electronicos de un ordenador, y que son gestionados (para lectura y/o escritura) por un programa llamado Sistema Gestor de Bases de Datos (SGBD). Los datos de una base de datos no deben tener redundancias (un mismo dato no debe estar almacenado en distintos lugares) y pueden ser compartidos por varios usuarios del SGBD. El SGBD maneja las solicitudes de acceso a la base de datos por parte de los usuarios, ocultando a estos detalles sobre el hardware donde los datos estan almacenados. Ademas, el SGBD se encarga de tareas como la privacidad de los datos y la e ciencia en su acceso. La gestion de bases de datos se empezo a hacer popular en los a~os 1970s y 1980s y hoy d a n su uso esta ampliamente extendido, usandose en multitud de peque~as y medianas empresas n y no solo en las grandes. En todas las bases de datos se almacena informacion sobre determinadas entidades u objetos y sobre las relaciones existentes entre algunas de estas entidades. Los modelos de bases de datos que mas se generalizaron fueron: 1. Modelo jerarquico: Los datos se representan por una estructura en arbol, donde los datos inferiores dependen o estan incluidos en los datos superiores. Su limitacion radica en el hecho de que solo permite representar directamente relaciones de uno a muchos. 2. Modelo en red: Los datos se pueden ver como en el modelo jerarquico, pero sin limitacion en cuanto a su organizacion, de forma que los datos inferiores pueden estar tambien relacionados con varios de los superiores. As , permite modelar mejor una correspondencia de muchos a muchos. 3. Modelo relacional: En este modelo todos los datos son vistos en forma de tabla o relacion. Es el mas extendido por su facilidad de comprension y lo veremos mas en profundidad a continuacion. El Modelo relacional de bases de datos fue propuesto por Dr. E.F. Codd de IBM en 1970 y publicado en 41], en un intento de simpli car la estructura de la base de datos, que llegaba a ser demasiado compleja en otros modelos. Pronto, el modelo relacional se popularizo, aunque muchos de los sistemas que se llamaban relacionales no lo eran realmente. Por eso, Codd publico una lista de 12 reglas que deber an cumplir todos los SGBD Relacionales 45]. De nicion 1.1 Llamaremos Base de Datos Relacional (BDR) a aquella base de datos donde todos los datos visibles al usuario estan organizados estrictamente como tablas (o relaciones) de datos y donde todas las operaciones de la base de datos trabajan sobre estas tablas y/o producen nuevas tablas. El SGBD Relacionales (SGBDR) es un SGBD que trabaja sobre este tipo de bases de datos. t u Esta de nicion, junto con las caracter sticas basicas de toda base de datos, nos lleva a tener que de nir los siguientes apartados: 1. Estructuras de datos empleadas: Las tablas o relaciones. 2. Integridad de los datos: Claves primarias, candidatas y externas. 3. De nicion de los datos: Lenguajes (DDL) basicamente para la creacion, borrado y alteracion de la estructura de las tablas y objetos de la base de datos relacional. 4. Manipulacion de los datos: Lenguajes (DML) basicamente para la consulta, modicacion e insercion de datos.

8

CAPITULO 1. INTRODUCCION: BASES DE DATOS Y CONJUNTOS DIFUSOS

La estructura de los datos viene caracterizada por el concepto de tabla o relacion. Para precisar dicho concepto es necesaria la de nicion previa de algunos conceptos:

1.2.1 Estructuras de Datos: Tablas o Relaciones

De nicion 1.2 Llamaremos Atributo, Campo o Columna (Attribute, Column) a cada

una de las caracter sticas importantes y variables que tiene cualquier tipo de entidad u objeto y que son almacenadas en una base de datos, para reconocer a dicha entidad u objeto. No nos importara que dicha entidad tenga otros atributos, pero solo trataremos aquellos que realmente nos interesan y que, por tanto, deseamos almacenar en nuestra base de datos. t u

De nicion 1.3 Llamaremos Dominio (Domain) al conjunto de todos los valores posiblesque puede tomar un atributo. Por tanto, todos los atributos tendran un dominio asociado.

t u

Una caracter stica inicial que se le exig a a los valores del dominio era la atomicidad, en el sentido de que no exista una descomposicion de los mismos que aporte signi cado. No obstante esta premisa se ha relajado con la evolucion del modelo, y actualmente se encuentran en la literatura muchas matizaciones de la misma. Un dominio puede llevar asociado un conjunto de operadores espec cos del mismo. Por ejemplo, el dominio de los numeros enteros tiene operadores como la suma y la resta.

De nicion 1.4 Llamaremos Tupla al conjunto de todos los valores concretos de todos los atributos de una determinada entidad u objeto. t u De nicion 1.5 Llamaremos Valor de Dominio a un valor concreto de una tupla. O sea es el valor para un atributo concreto de una entidad concreta. t uCon estos conceptos podemos de nir lo que es una relacion:

De nicion 1.6 Llamaremos Relacion o Tabla (Relation, Table) a el conjunto de dos partes, cabecera y cuerpo: La cabecera consiste en un conjunto jo de n pares atributo-dominio,

f(A1 : D1 ); (A2 : D2 ); :::; (An : Dn)gdonde cada atributo Aj se corresponde exactamente con el dominio subyacente Dj con j = 1; 2; :::; n, siendo estos dominios no necesariamente distintos. El cuerpo consta de un conjunto de tuplas, donde cada tupla consiste en un conjunto de n pares atributo-valor,

f(A1 : vi1); (A2 : vi2); :::; (An : vin)gcon i = 1; 2; :::; m, siendo m el numero de tuplas que contiene el conjunto. Para cada atributo Aj existe un par atributo-valor (Aj : vij ) donde vij es el Valor de Dominio del atributo Aj perteneciente al dominio Dj de la entidad o tupla i-esima.

1.2. MODELO RELACIONAL DE BASES DE DATOS

9

Los valores m y n se denominan cardinalidad y grado de la relacion, respectivamente. Mientras que el grado se mantiene constante en el tiempo para una relacion, la cardinalidad puede variar en una misma relacion con el tiempo. Cada relacion tiene un nombre que identi ca a todo su contenido y que sera usado para expresar las operaciones que se realicen sobre la relacion. t u

Otras de niciones utiles para expresar las restricciones de integridad son:butos que se usaran para identi car un vocamente cada tupla de una relacion. Este conjunto debe ser m nimo, es decir, que no exista un subconjunto de el que pueda usarse con el mismo proposito. Pueden existir varios de estos conjuntos para una relacion dada, pero solamente se seleccionara uno de estos como Clave Primaria, quedando los restantes como Claves Alternativas o Claves Candidatas. t u

De nicion 1.7 Llamaremos Clave o Llave Primaria (Primary Key) al conjunto de atri-

De nicion 1.8 Llamaremos Clave o Llave Externa (Foreign Key) al conjunto de atributos de una relacion que son Clave primaria o candidata en otra relacion distinta y que pueden usarse para enlazar o relacionar los datos de ambas relaciones. t uDe su de nicion se obtienen las siguientes propiedades para las relaciones: 1. No hay tuplas duplicadas1: Esto implica que siempre debera existir una clave primaria. La necesidad de que exista una clave primaria para cada relacion estriba en que es la unica forma de acceder de forma un voca a cada tupla de la misma. A veces, la clave primaria puede ser el conjunto de todos los atributos que forman la relacion. 2. Los atributos no estan ordenados. Esta propiedad proviene del hecho de que la cabecera de una relacion es un conjunto matematico. 3. Las tuplas no se encuentran ordenadas. Tambien esta propiedad se apoya en que la de nicion del cuerpo de una relacion se corresponde con un conjunto matematico. 4. Los valores de los atributos son atomicos, en el sentido en el que apuntabamos cuando introduc amos el concepto de dominio. Una relacion que cumpla esta propiedad se dice que esta NORMALIZADA. Aunque a primera vista esta propiedad pueda suponer una fuerte restriccion a la representacion de imprecision, se pueden hacer lecturas de la misma que posibiliten la representacion de este tipo de informacion sin ocasionar una perdida de validez del modelo. En el Cap tulo 2 se prestara una atencion especial al estudio del tratamiento que diferentes modelos proporcionan a esta propiedad. Una base de datos consiste en una con guracion de datos que se supone que representan una porcion del mundo real. Ningun modelo de base de datos puede garantizar que esa representacion se corresponda con la realidad en todo momento, esto supondr a, entre otras1 En algunas implementaciones particulares, se permiten que existan duplicados en la relacion resultante de una consulta. En SQL, por ejemplo, se dispone de la palabra reservada DISTINCT para especi car que no se muestren las tuplas repetidas en la relacion resultante.

1.2.2 Integridad de los Datos

10

CAPITULO 1. INTRODUCCION: BASES DE DATOS Y CONJUNTOS DIFUSOS

cosas, que la base de datos tendr a que poseer un conocimiento, no solo sobre los datos, sino tambien sobre su signi cado. Lo que s puede y debe hacer un SGBD es impedir que se introduzca informacion que no pueda ser identi cada, ni que se haga referencia en un lugar de la base de datos a informacion que no exista en la misma. Estos son los enunciados informales de las reglas de Identidad y Referencial respectivamente. En forma mas precisa pueden ser formulados como sigue: puede aceptar un valor nulo. Donde nulo signi ca que la informacion no se encuentra por alguna razon (como por ejemplo que la propiedad no sea aplicable o que el valor sea desconocido). Regla de Integridad Referencial: La base de datos no puede contener valores para la clave externa que no hallen correspondencia con los adoptados por la clave primaria de la relacion a la que hacen referencia. Los lenguajes de de nicion de datos o DDL (Data De nition Language) permiten la creacion, modi cacion y eliminacion de objetos de la base de datos relacional. Estos objetos pueden ser de diversos tipos segun el SGBD y estan desde los basicos como los son tablas, vistas o ndices, hasta los mas so sticados como son snapshots, sinonimos, procedimientos y funciones almacenadas, paquetes de funciones y procedimientos, clusters, secuencias, roles, triggers... Para esto existe un lenguaje ampliamente extendido en la actualidad: El lenguaje SQL (en su parte DDL), del que hablaremos mas adelante (apartado 1.2.5). Los lenguajes de manipulacion de datos o DML (Data Manipulation Language) permiten la consulta, modi cacion e insercion de datos. Para esto, el lenguaje SQL (en su parte DML), del que hablaremos mas adelante, es tambien muy utilizado. Las consultas forman la parte mas importante de la manipulacion de datos pues en una base de datos hay informacion almacenada en distintas tablas y su objetivo es poder consultar toda esta informacion y la relacion que exista entre ella. Para tal n puede ser util emplear varias relaciones en una misma consulta. En 42], Codd dise~o dos niveles de lenguajes formales para la Manipulacion de Datos: El n Algebra Relacional y el Calculo Relacional. Estos dos lenguajes son la base de cualquier otro lenguaje y son mencionados y explicados ampliamente en la bibliograf a. El Algebra proporciona un conjunto de operadores mediante los cuales especi car la operacion a realizar sobre las tablas, mientras que el Calculo proporciona una sintaxis con la que expresar aquello que se desea obtener de las relaciones sin tener que especi car el mecanismo para obtenerlo. O sea, en el Algebra hay que indicar como se recuperan los datos de nuestra consulta a traves de sus operadores y en el Calculo hay que indicar que datos queremos recuperar, sin especi car como hacerlo. De niciones del Algebra y del Calculo Relacional, en sus dos versiones Calculo de tuplas y Calculo de dominios, pueden encontrarse en la bibliograf a numerosas veces 17, 51, 132, 141]. En 141] Ullman expone como pasar una expresion en algebra a otra en calculo de tuplas, como pasar una expresion en calculo de tuplas a otra en calculo de dominios y como pasar

Regla de Identidad: Ningun componente de la clave primaria de una relacion base

1.2.3 De nicion de los datos

1.2.4 Manipulacion de los Datos: Algebra y Calculo Relacional

1.2. MODELO RELACIONAL DE BASES DE DATOS

11

una expresion en calculo de dominios a otra en algebra, demostrando la equivalencia total de estos lenguajes.

1.2.4.1 Algebra RelacionalEste lenguaje de consulta dispone de unos operadores que, individualmente y combinandolos, permiten expresar practicamente cualquier tipo de consulta a una base de datos clasica. Estos operadores actuan sobre relaciones existentes produciendo nuevas relaciones. Existen tres tipos de operadores:Operador de asignacion: Asigna el resultado de otras operaciones sobre relaciones a una nueva relacion. A traves de este operador es posible conservar el resultado de otras operaciones anteriores. Operadores tradicionales sobre conjuntos: Son Union, Interseccion, Diferencia y Producto Cartesiano. Salvo para el Producto Cartesiano, es necesario que las relaciones sobre las que operan sean compatibles, en el sentido de que posean el mismo grado y de que esten de nidas sobre el mismo producto cartesiano de dominios.

que pertenecen a la relacion R, a la relacion S o a ambas relaciones. Lo notaremos como R S . { Interseccion (Intersection ): La interseccion de dos relaciones R y S da como resultado el conjunto de aquellas tuplas que pertenecen a R y a S . Lo notaremos como R \ S . { Diferencia o Resta (Di erence ): La diferencia de dos relaciones R y S es el conjunto de tuplas que pertenecen a R y no pertenecen a S . Lo notaremos como R S. { Producto Cartesiano (Cartesian Product, Times ): El producto cartesiano de dos relaciones R y S consiste en todas las posibles combinaciones de pares de tuplas, una de cada relacion. Lo notaremos como R S .Operaciones especiales: Son Seleccion, Proyeccion, Reunion y Division.

{ Union (Union ): La union de dos relaciones R y S es el conjunto de aquellas tuplas

tuplas que cumple una condicion. Esta condicion puede ser: atomica o compuesta. Una condicion atomica o simple esta formada por una sola comparacion, mientras que en el segundo caso se trata de un conjunto de condiciones atomicas combinadas mediante el uso de operadores logicos (NOT, AND y OR). Lo notaremos como F (R), donde F es una formula o condicion que puede incluir atributos de la relacion R, constantes de cualquier dominio, comparadores aritmeticos (>, , 7 ^ u:nombre = t:nombreg

t u

1.2. MODELO RELACIONAL DE BASES DE DATOS

15

Los operadores del Algebra Relacional pueden ser tambien expresados en Calculo Relacional. Por ejemplo, los operadores primitivos del algebra ser an expresados de la siguiente forma en Calculo Relacional:

Ejemplo 1.2 La union de R y S se expresa en Calculo por la siguiente expresion: ft j R(t) _ S (t)gt u

Ejemplo 1.3 La interseccion de R y S se expresa en Calculo por la siguiente expresion: ft j R(t) ^ S (t)gt u

Ejemplo 1.4 La diferencia R S se expresa en Calculo por: ft j R(t) ^ :S (t)gt u

Ejemplo 1.5 La seleccion F (R) se expresa en Calculo por: ft j R(t) ^ F 0gdonde F 0 es la misma formula F con cada atributo i, denotando la i-esima componente, reemplazado por t i]. t u

Ejemplo 1.6 El producto cartesiano de R y S , teniendo estas relaciones grados r y s respectivamente, se expresa en Calculo por:

ft(r+s) j 9u(r); v(s) (R(u) ^ S (v) ^t 1] = u 1] ^ : : : ^ t r] = u r] ^t r + 1] = v 1] ^ : : : ^ t r + s] = v s]gObserve que igualamos los atributos de la tupla t con los de las tuplas u y v que existen en R y S respectivamente. t u

Ejemplo 1.7 La proyeccion i1 ;:::;i (R) sobre n atributos de R se expresa en Calculo por: ft(n) j 9u(R(u) ^ t 1] = u i1 ] ^ : : : ^ t n] = u in ]g t u El Calculo Relacional Orientado a Dominios utiliza variables de dominio en vez den

variables tupla y esto hace que sea mas expl cito, al manejar cada atributo independientemente. Una expresion en Calculo de dominios tiene el siguiente formato:

fx1 ; x2; : : : ; xn j (x1 ; x2 ; : : : ; xn)gLas principales diferencias con el Calculo de Tuplas son:

16

CAPITULO 1. INTRODUCCION: BASES DE DATOS Y CONJUNTOS DIFUSOS1. Usa variables de dominio, en vez de variables de tupla. Una variable de dominio es como los valores t i] usados en el Calculo de tuplas. As , en la expresion, antes de la formula hay que especi car todas las variables de dominio que deseamos recuperar (los xi ). 2. En los atomos de pertenencia hay que utilizar tantas variables de dominio como atributos tenga la relacion. 3. En los atomos de comparacion x e y son constantes o variables de dominio. 4. Tras los cuanti cadores (9 y 8), hay que indicar la variable de dominio que esta ligada. 5. El usuario percibe la base de datos como un conjunto de entidades (atributos) que estan relacionados a traves de las relaciones. En cambio, en el calculo de tuplas las entidades son las relaciones, las cuales tienen distintos atributos. Por eso el calculo de dominios esta mas cerca del lenguaje natural.

En el Cap tulo 4 veremos mas detalles sobre el Calculo Relacional, en especial el de Dominios, aplicado a BDRD y se explicara el concepto de expresiones \seguras" (\safe ") del calculo relacional. El lenguaje SEQUEL (Structured English QUEry Language) fue desarrollado por Chamberlin et al. 37, 38] en la segunda mitad de los a~os 70 para manejar el modelo relacional de Codd n 41]. Con el tiempo este lenguaje llego a conocerse como SQL (Structured Query Language). En 1979, Relational Software, Inc. (actualmente Oracle Corporation) introdujo el primer sistema comercial que usaba SQL. Hoy d a, SQL es el lenguaje aceptado como estandar para los SGBDR y la bibliograf a sobre el lenguaje SQL es muy extensa 26, 52, 86] y en todos se explican los comandos basicos de este lenguaje en sus dos vertientes:

1.2.5 El Lenguaje SQL

DML (Data Manipulation Language, Lenguaje de Manipulacion de Datos): Las sen-

tencias de este lenguaje permiten la consulta y la modi cacion de los datos almacenados en la base de datos. Ejemplos de comandos del DML SQL son: SELECT, INSERT, DELETE y UPDATE que seran brevemente explicados a continuacion. DDL (Data De nition Language, Lenguaje de De nicion de Datos): Las sentencias de este lenguaje permiten la creacion y modi cacion de las estructuras en las que se almacenaran los datos. Ejemplos de comandos del DDL SQL son: CREATE (para crear objetos de la base de datos: tablas, vistas...), DROP (para borrar objetos), ALTER (para modi car objetos), y sentencias para controles de seguridad, ndices y control del almacenamiento f sico de los datos. Los objetos pueden ser, por ejemplo, tablas (objeto TABLE), vistas (objeto VIEW) ndices (objeto INDEX), usuarios (objeto USER), sinonimos (objeto SYNONYM)... Al nal de este apartado resumiremos el comando CREATE TABLE.

A continuacion vamos a resumir la sintaxis de los comandos mas importantes del DML y del DDL de SQL2.ha utilizado el SQL de Oracle, que puede tener algunas diferencias con respecto al SQL estandar dependiente de la ANSI/ISO.2 Se

1.2. MODELO RELACIONAL DE BASES DE DATOS

17

1.2.5.1 Comando SELECTEl comando mas importante es, quizas, el de consulta, ya que nos debe permitir expresar una gran cantidad de tipos de consultas, que pueden involucrar multitud de expresiones y objetos diferentes (tablas, vistas, comparadores, subconsultas, modos de ordenacion y agrupamiento...). El comando SELECT de SQL tiene el siguiente formato basico3 :SELECT FROM WHERE ] ]

donde

es una lista de expresiones, separadas por comas, que incluyen todo lo que deseamos que aparezca en la relacion resultante de nuestra consulta. Como expresiones pueden emplearse los nombres de atributos de alguna tabla, constantes, operaciones aritmeticas, funciones...

es una lista con todas las tablas, separadas por comas, que intervienen en la consulta. Aqu deben aparecer las tablas de los atributos que sean usados en el resto de la sentencia. es una condicion que puede incluir atributos de una relacion, constantes de cualquier dominio, comparadores aritmeticos (>, , 10000;

19

Ejemplo 1.9 Seleccionar aquellos Clientes y su Salario que tiene una letra 'X' en el nombrey que tienen un salario mayor que la media, ordenando la salida por el salario:SELECT FROM WHERE AND Nombre, Salario Empleados Nombre LIKE '%X%' Salario > (SELECT AVG(Salario) FROM Empleados) ORDER BY Salario;

t u

Observe la subconsulta y los caracteres comod n (%) de la condicion LIKE. t u Ejemplo 1.10 Seleccionar los Clientes, su Salario y su Departamento, que tienen un salario mayor que la media de su Departamento, ordenando la salida por el Departamento:SELECT Nombre, Salario, Dpto FROM Empleados E WHERE Salario > (SELECT AVG(Salario) FROM Empleados WHERE E.Dpto = Dpto) ORDER BY 3;

Observe el alias E, que es utilizado en la subconsulta para hacer referencia al Dpto del SELECT mas externo. El 3 hace referencia a que se ordene (ascendentemente) por el tercer argumento de la lista de seleccion, esto es, por Dpto. t u

1.2.5.2 Comando INSERTEl comando INSERT sirve para introducir nuevos datos en la base de datos y tiene el siguiente formato general:INSERT INTO () ] VALUES ()

Es la tabla (vista o subconsulta) donde se desea insertar una tupla. () es una lista de atributos entre parentesis y separados por comas que indican el orden de las expresiones siguientes. Esta lista es opcional y si no aparece se toma la lista de atributos de en el orden en el que se usaron en su creacion. () es una lista de expresiones entre parentesis y separados por comas que expresan los valores que deseamos insertar en los correspondientes atributos. Esta lista y la palabra VALUES pueden sustituirse por una subconsulta que contendra los datos que seran insertados. Usando una subconsulta pueden insertarse varias tuplas a la vez.

donde

20

CAPITULO 1. INTRODUCCION: BASES DE DATOS Y CONJUNTOS DIFUSOS

1.2.5.3 Comando DELETEEl comando DELETE sirve para borrar datos (tuplas) en la base de datos y tiene el siguiente formato general:DELETE WHERE

que borra las tuplas de que cumplen la condicion que se indica.

1.2.5.4 Comando UPDATEEl comando UPDATE sirve para actualizar valores de datos antiguos en la base de datos y tiene el siguiente formato general:UPDATE SET WHERE ]

donde Es la tabla (vista o subconsulta) donde se desean actualizar datos. es una asignacion con los siguientes dos formatos posibles para actualizacion de un unico atributo o varios de ellos respectivamente: = que expresa que se actualiza el atributo a la expresion que se indican. ( = que expresa que se actualizan todos los atributos de la lista con los datos de la subconsulta (que debe ser con igual numero y tipo de atributos). WHERE es una clausula opcional que indica la condicion que deben cumplir las tuplas de para ser actualizadas con los datos indicados.

1.2.5.5 Comando CREATE

TABLE

El comando CREATE TABLE sirve para crear tablas en la base de datos especi cando el nombre de la tabla, los atributos, sus dominios, restricciones... Es similar a la sentencia ALTER TABLE y tiene el siguiente formato general:CREATE TABLE ( )] ]

donde

Es el nombre que tendra la tabla que se desea crear. Es una lista separada por comas de de niciones de columnas y/o restricciones de tabla, que se explicaran a continuacion.

1.2. MODELO RELACIONAL DE BASES DE DATOS

21

permite especi car algunas caracter sticas de la tabla, como el maximo numero de transacciones concurrentes que pueden actualizar el bloque de datos de la tabla, el lugar f sico de almacenamiento, cluster al que pertenece, el grado de paralelismo al crear la tabla, si habilita o no la restriccion de integridad, inserta los valores iniciales de una subconsulta tras la creacion de la tabla...

La de nicion de columnas y restricciones pueden ir mezcladas con las restricciones de tabla. Dentro de la de nicion de columnas se pueden incluir las restricciones de columna. La De nicion de una columna se hace simplemente indicando el nombre de la columna y el tipo de datos que almacenan (su dominio). En el apartado 1.2.6.1 daremos un resumen de los tipos de datos de Oracle. Tras esto se pueden a~adir, opcionalmente, dos clausulas. Si n se a~aden ambas, debe hacerse en este orden: nDEFAULT

para establecer un valor por defecto para la columna actual. Ese valor sera el que se asigne a ese atributo si en una sentencia INSERT se omite el valor para dicha columna. que indica un requisito que deben cumplir todos los valores insertados en este atributo.

La imposicion de restricciones se efectua poniendo el tipo de restriccion, de entre los siguientes: Impone que una columna no contenga valores NULL. Esta restriccion, como hemos apuntado anteriormente, supone el soporte para la Regla de Identidad. Esta restriccion no puede ser de tabla.NULL: NOT NULL:

Indica que una columna puede contener valores NULL. Impone que una columna o grupo de ellas sean unicas dentro de la tabla.

UNIQUE:

PRIMARY KEY: Identi ca a una o varias columnas como Clave Primaria. Si es restriccion de tabla, hay que especi car despues, entre parentesis, la lista de columnas que forman la Clave primaria. FOREIGN KEY: Identi ca a una o varias columnas como Clave Externa y fuerza a que existan en alguna tabla las columnas o grupos de ellas que constituyan dicha clave, forzando el cumplimiento de la Regla de Integridad Referencial. Con la clausula REFERENCES se puede indicar la clave candidata que es referenciada por una clave externa y con la opcion ON DELETE CASCADE especi ca que se mantenga la regla de integridad referencial, borrando las tuplas con las llaves externas si se borra su correspondiente llave candidata en la otra relacion. CHECK ():

Esto habilita la posibilidad de imponer una determinada condicion sobre uno o varios atributos. Esto permite, por ejemplo, restringir los valores de dominio que pueden ser adoptados por una columna o grupo de ellas. Con esta restriccion se pretende especi car, en forma precisa, el dominio que subyace a un atributo o columna.

22

CAPITULO 1. INTRODUCCION: BASES DE DATOS Y CONJUNTOS DIFUSOS

Todas las restricciones pueden ser etiquetadas con un nombre utilizando la clausula CONSTRAINT seguida del nombre que se le quiere dar. As , cuando esta restriccion se vulnere, el nombre de la restriccion gurara en el mensaje de error que genere el SGBD, facilitando al usuario la comprension del mensaje y la solucion del problema.

Ejemplo 1.11 Observe la siguiente sentencia de creacion de una tabla:CREATE TABLE PISOS ( PISO# NUMBER(9) NOT NULL PRIMARY KEY, DUENNO# NUMBER(9) NOT NULL CONSTRAINT DUENNO#_NO_VALIDO REFERENCES CLIENTES(CLIENTE#), DIRECCION VARCHAR2(60), SUPERFICIE NUMBER(9,1) CONSTRAINT NULL_INVALIDO_SUPERFICIE NOT NULL, PRECIO NUMBER(6) CONSTRAINT NULL_INVALIDO_PRECIO NOT NULL, ZONA VARCHAR2(9) DEFAULT 'CENTRO' CONSTRAINT ZONA_NO_VALIDA CHECK (ZONA IN ('CENTRO','NORTE','SUR','ESTE','OESTE')));

En ella se crea una tabla con 6 atributos, cuya clave primaria es PISO#. El atributo DUENNO# es clave externa, por lo que antes de crear esta tabla debe existir la tabla CLIENTES con el atributo CLIENTE# como clave primaria y que estos atributos sean de tipos compatibles.

t u

Como ejemplo de SGBDR comercial vamos a comentar algunos aspectos del gestor de bases de datos ORACLE de Oracle Corporation 117], que fue el primer fabricante en introducir un producto relacional en el mercado, adelantandose a la propia IBM en casi 2 a~os, y fue n tambien el primero en sacar un producto que usase SQL. Actualmente es el mayor vendedor de SGBDR independiente. Oracle esta implementado en cerca de 100 plataformas distintas incluyendo MS-DOS, Windows, OS/2, Macintosh, Sun, MIPS y muchas otras basadas en sistemas Unix, como Linux. Oracle siempre ha sido el SGBDR con mejores tiempos de ejecucion, siendo, por meritos propios, el l der en ejecucion OLTP. Como DML y DDL, Oracle utiliza SQL 26, 52, 86]. Pero ademas, Oracle incorpora un lenguaje procedural, el PL/SQL 82, 118, 146], que es una extension de SQL y que permite crear procedimientos y funciones almacenadas en el SGBD. Los paquetes PL/SQL son conjuntos de funciones y/o procedimientos. Oracle dispone de acceso a traves de ODBC y multitud de aplicaciones para los mas diversos nes SQL*Net, SQL*Plus, Developer 2000... Aqu resumiremos algunos aspectos relacionados con Oracle, ya que es el SGBD empleado para la implementacion que se explica en el Cap tulo 5. Aunque Oracle ha sacado recientemente su version 8 2, 4], la implementacion ha sido programada en la version 7.3 17, 82, 99, 116], sin que se usen elementos que puedan no funcionar en versiones posteriores. Las novedades mas relevantes de Oracle 8 son que se presenta como una base de datos objeto-relacional, el particionamiento de tablas (pudiendo bloquear exclusivamente una parte

1.2.6 El SGBDR Oracle

1.2. MODELO RELACIONAL DE BASES DE DATOS

23

de una tabla), aumento de rendimiento en aplicaciones de Data Warehouse, mejora de procesos internos como el paralelismo o el procesamiento de transacciones on-line, nuevas herramientas de administracion (Enterprise Manager) y asistentes para diversas operaciones utiles, como la creacion automatica de una base de datos casi sin intervencion del usuario y la posibilidad de importar bases de datos de otras aplicaciones (como de Microsoft Access) o de versiones anteriores de Oracle. Ademas la inminente aparicion de la version Oracle 8i abre aun mas las posibilidades incorporando la tecnolog a iFS (Internet File System) para ver la informacion de la base de datos como si fueran archivos y directorios contenidos en un disco, accesible de igual modo con clientes HTTP, FTP, IMAP, POP o SMTP o con el mismo que accedamos a los cheros convencionales. Ademas, Oracle 8i incorpora una maquina virtual Java y permite la programacion tanto en PL/SQL como en Java de cualquier objeto, incluyendo triggers (disparadores). Tambien incluye la sintaxis SQLJ para incluir codigo SQL en el codigo Java. Junto a todo lo ya apuntado, la posibilidad de extender las capacidades del servidor Oracle a traves de los llamados cartuchos de datos, Data Cartridges, hacen que el SGBD Oracle este en primera la en cuanto a potencia, exibilidad, e ciencia y adaptacion a las nuevas tecnolog as (Internet, WWW...).

1.2.6.1 Estructuras y Tipos de DatosComo en cualquier base de datos relacional, los datos se organizan a traves de tablas y en general de acuerdo con el modelo relacional. Las cabeceras de atributo, que en Oracle se denominan columnas (columns ), no presentan un orden de acuerdo con el modelo relacional y respondiendo a la nocion de conjunto que subyace a estas. Las columnas pueden estar de nidas sobre los tipos de dominio o tipos de datos que a continuacion se relacionan: longitud maxima de la cadena de caracteres que podra contener. La longitud maxima para una columna de nida sobre este dominio dependera del tipo de la columna, oscilando entre los 255 caracteres de maximo para el tipo CHAR, los 2000 para el tipo VARCHAR2 y los 231 1 bytes del tipo LONG.

Caracter: Una columna de nida sobre un dominio de este tipo, debera especi car la

Numerico: Los diferentes dominios numericos soportados por Oracle son subconjuntos de los enteros y los reales. Todos ellos pueden ser representados a traves del tipo NUMBER(p,s), donde los parametros p (precision) y s (escala) indican, respectivamente, el numero maximo de d gitos (de 1 a 38) y el numero de cifras decimales (de {84 a 127) que puede contener el atributo. Si no se especi ca el valor de s, se supone que es cero. Existen otras expresiones sintacticas de tipo aceptadas pero todas ellas pueden encontrar una expresion equivalente mediante el tipo NUMBER, como son: INTEGER y FLOAT, entre otros.comprendido entre el 1 de Enero del a~o 4712 A.C. y el 31 de Diciembre del 4712 D.C. n El tipo que opera sobre este dominio es el tipo DATE y cada valor de este tipo almacena: El siglo, a~o, mes, d a, hora, minuto y segundo. La funcion TO_CHAR permite convertir n este tipo de dato a cadena de caracteres en diversos formatos.

Fecha y Hora: Oracle permite representar fechas en diferentes formatos para un rango

Binario: A traves de los datos de nidos sobre este dominio se pueden representar cualquier tipo de informacion mediante una representacion binaria, como una coleccion de

24

CAPITULO 1. INTRODUCCION: BASES DE DATOS Y CONJUNTOS DIFUSOSbytes, sin que Oracle les atribuya signi cado alguno. As , pueden almacenarse gra cos, sonidos, documentos y su interpretacion no depende de Oracle. Los tipos que sustentan este dominio son el RAW para un tama~o maximo de 255 bytes y el LONG RAW para una n longitud superior a los 2 GigaBytes. Identi cador de la: Oracle identi ca mediante un codigo cada uno de los registros de la base de datos. El tipo ROWID se re ere a un dominio que contiene todos los valores que puede adoptar esta codi cacion.

Es posible la creacion de vistas como representacion logica de una tabla o un conjunto de tablas. O sea, una vista es una consulta particular sobre la base de datos, la cual tiene un nombre propio. Sin embargo, las vistas, aunque no presentan problemas en consulta, pueden plantearlos en la actualizacion de las mismas, al resultar imposible en algunas ocasiones reconstruir la informacion a actualizar en las tablas base sobre las que se construyen. Para todos los dominios existe un valor denominado NULL que signi ca que, o no se conoce el valor o no es aplicable4. Oracle proporciona un tratamiento espec co para este tipo de valores, utilizando una logica tri-valuada, pues cualquier comparacion con valores NULL no es resuelta ni como verdadera ni como falsa. En el apartado 2.1.1 se explica esta logica tri-valuada. Todas las columnas pueden contener el valor NULL en alguna tupla, excepto aquellas en las que en se establecio la restriccion NOT NULL (NULL no permitido) o PRIMARY KEY (Clave primaria). Cuando se emplea el valor NULL en una condicion simple, esta se evalua como UNKNOWN (desconocido), que es similar a FALSE (falso). La diferencia esta en que si operamos con UNKNOWN siempre obtenemos UNKNOWN. As , por ejemplo, NOT UNKNOWN vale UNKNOWN, mientras que NOT FALSE vale TRUE (verdad). Como se explico en el apartado 1.2.5.1 pueden emplearse condiciones especiales con LIKE, IN, IS y BETWEEN. Otros elementos estructurales proporcionados por Oracle son: una tabla y pueden forzar la unicidad de las mismas. Agrupaciones (clusters): Pueden ayudar al sistema a almacenar f sicamente juntas estructuras de datos a las que se accede conjuntamente con frecuencia, aunque pertenezcan a tablas distintas. Al igual que los ndices, su empleo es transparente al usuario y es el optimizador el que se encarga de usarlos para mejorar la e ciencia del sistema. Procedimientos almacenados: Son fragmentos de codigo en lenguaje PL/SQL y pueden ser de 4 tipos: 1. Funciones (FUNCTION): Fragmento de codigo cuya llamada devuelve un valor. Pueden tener argumentos. 2. Procedimientos (PROCEDURE): Fragmento de codigo cuya llamada no devuelve un valor. Pueden tener argumentos y pueden devolver valores usando paso de parametros por variable (OUT).primer intento de representar informacion inexacta fue precisamente la introduccion del concepto de valor nulo, NULL, y fue publicado por Codd en 43] (ver apartado 2.1.1).4 El

Indices: Facilitan, de forma transparente al usuario, un rapido acceso a las tuplas de

1.3. TEORIA DE CONJUNTOS DIFUSOS

25

3. Paquetes : Son conjuntos de funciones y procedimientos que pueden ser exportados para poder usarse desde fuera o internos para que solo puedan ser utilizados desde dentro del paquete. Cada paquete tiene dos partes: La especi cacion (PACKAGE), con las declaraciones publicas visibles desde fuera del paquete, y el cuerpo (PACKAGE BODY), con las declaraciones privadas que solo son visibles desde dentro del paquete. 4. Disparadores (TRIGGER): Un trigger es un fragmento de codigo asociado a una tabla que se ejecuta cuando se efectua alguna determinada accion sobre dicha tabla, como insertar datos, borrar datos, actualizar datos... Los disparadores son muy importantes para mantener la integridad de los datos, ya que pueden evitar insertar datos inconsistentes, erroneos o que no cumplen determinadas condiciones.

1.2.6.2 Integridad de los DatosOracle fuerza la Regla de Identidad mediante el uso de la restriccion NOT NULL en la creacion y modi cacion de las tablas. (sentencias CREATE TABLE y ALTER TABLE respectivamente). Como hemos dicho, la Regla de Integridad Referencial esta soportada por Oracle a traves de la restriccion FOREIGN KEY en la creacion y modi cacion de las tablas. Ademas, dispone de un conjunto de restricciones para mantener la integridad de la base de datos que se pueden aplicar a las sentencias de creacion y modi cacion de tablas. Dichas restricciones se pueden imponer a una columna (restriccion de columna) o a un grupo de ellas (restriccion de tabla) y determinan, que las operaciones que se realicen sobre las mismas, satisfagan algunas condiciones. Estas restricciones fueron de nidas en el apartado 1.2.5.5.

1.3 Teor a de Conjuntos DifusosVamos a dedicar este apartado a introducir algunas nociones elementales sobre la teor a de conjuntos difusos (fuzzy sets ), as como la notacion utilizada al respecto a lo largo de esta memoria. En este resumen nos detendremos en los aspectos semanticos y de representacion relacionados con esta potente herramienta teorica. En la literatura podemos encontrar una gran cantidad de trabajos sobre esta teor a, que fue introducida por primera vez por L.A. Zadeh5 en 1965, en su trabajo 165]. En 159] podemos encontrar una recopilacion de algunos de los art culos mas interesantes publicados sobre el tema por L.A. Zadeh. En 57], 61] y 172] es posible encontrar recopilados los aspectos mas importantes que constituyen la teor a de conjuntos difusos as como la teor a de la posibilidad. Una mas moderna s ntesis de los conjuntos difusos y sus aplicaciones puede verse en 93, 101, 111] y sobre todo en 123].

1.3.1 Conjuntos DifusosLa interpretacion original de conjunto difuso proviene de una generalizacion del concepto clasico de subconjunto ampliado a la descripcion de nociones \vagas" e \imprecisas". Esta generalizacion se realiza como sigue:Zadeh fue nombrado doctor honoris aportacion en este campo de la ciencia.5 L.A.causa

por la Universidad de Granada en 1996, por su valiosa

26

CAPITULO 1. INTRODUCCION: BASES DE DATOS Y CONJUNTOS DIFUSOS

1. La pertenencia de un elemento a un conjunto pasa a ser un concepto \difuso" o \borroso". Para algunos elementos puede no estar clara su pertenencia o no al conjunto. 2. Dicha pertenencia puede ser cuanti cada por un grado. Dicho grado se denomina habitualmente como \grado de pertenencia" de dicho elemento al conjunto y toma un valor en el intervalo 0; 1] por convenio. Mediante esta herramienta podemos representar de forma adecuada conceptos \imprecisos". Es necesario hacer notar que muchos de estos conceptos con naturaleza \imprecisa", si no todos, responden a criterios subjetivos. Esto es, la de nicion de esa imprecision depende en mayor o menor medida de la persona que la expresa. De forma mas precisa podemos introducir la de nicion de conjunto difuso como sigue:

e De nicion 1.9 Un Conjunto Difuso A sobre un universo de discurso es un conjuntode pares

e donde A (x) se denomina grado de pertenencia del elemento x al conjunto difuso A. Este grado oscila entre los extremos 0 y 1: e A (x) =0 indica que x no pertenece en absoluto al conjunto difuso A. e A (x) =1 indica que x pertenece totalmente al conjunto difuso A. A veces, en vez de dar una lista exhaustiva de todos los pares que forman el conjunto, se da una de nicion para la funcion A (x), llamada funcion caracter stica o funcion de pertenencia. t uSi la funcion de pertenencia solo produce valores del conjunto f0,1g, entonces, el conjunto que genera no es difuso, sino \crisp".

e A = f A (x)=x : x 2 ;

A (x) 2

0; 1]g

(1.5)

Ejemplo 1.12 Si consideramos que la \edad" (en a~os enteros) es el universo de discurso de n\joven", el conjunto difuso que representa dicho concepto podr a expresarse en la forma: joven = f1=20; 1=25; 0:9=26; 0:8=27; 0:7=28; 0:6=29; 0:5=30; : : : ; 0:1=34g El identi cador \joven" con la connotacion de que lleva asociado un conjunto difuso recibe la denominacion de \etiqueta lingu stica". t u

De nicion 1.10 Llamaremos Etiqueta Lingu stica a aquella palabra, en lenguaje natural, que exprese un conjunto difuso, que puede estar formalmente de nido o no. t uCon esta de nicion, podemos asegurar que en nuestra vida cotidiana utilizamos multitud de etiquetas lingu sticas: \joven", \viejo", \fr o", \caliente", \templado", \barato", \caro", \bajo", \alto", \grande", \peque~o"... n Ademas, la de nicion intuitiva de esas etiquetas, no solo puede variar de un individuo a otro y del momento particular, sino que tambien var a del contexto en el que se aplique. Por ejemplo, seguramente no mediran la misma altura una persona \alta" y un edi cio \alto". La representacion de conjuntos difusos puede ser variada y depende, fundamentalmente de la naturaleza del universo de discurso sobre el que de namos el conjunto difuso.

1.3. TEORIA DE CONJUNTOS DIFUSOSDado un universo de discurso nito = fx1 ; x2 ; : : : ; xn g

27

e un conjunto difuso A se puede representar como

tualmente los elementos con grado cero no se listan. Aqu la suma no hace el papel de la suma aritmetica sino que tiene el sentido de agregacion. e Dado un universo de discurso in nito , un conjunto difuso A sobre se puede representar como

e A = 1 =x1 + 2 =x2 + : : : + n=xn (1.6) donde i representa el grado de pertenencia del elemento xi , con i = 1; 2; : : : ; n. Habi-

e A=

Z

e A (x)=x;

(1.7)

donde A(x) es el grado de pertenencia de x. e Sobre conjuntos difusos se de nen una serie de conceptos que nos permiten tratar y comparar conjuntos difusos:Igualdad de conjuntos difusos:

1.3.2 Conceptos sobre Conjuntos Difusos

e e De nicion 1.11 Dos conjuntos difusos A y B sobre se dicen iguales si cumplen: e e A = B () 8x 2 ; A (x) = B (x) (1.8) e e t u e incluido en B si cumplen: e e e De nicion 1.12 Dados dos conjuntos difusos A y B sobre , decimos que A esta e e A B () 8x 2 ;e A (x) e B (x)

Inclusion de un conjunto difuso en otro:

(1.9)

t u

Soporte de un conjunto difuso:

subconjunto de dicho universo que satisface:

e De nicion 1.13 El soporte (support) de un conjunto difuso A de nido sobre es un e supp(A) = fx 2 ; A (x) > 0g e(1.10)

t u

-corte de un conjunto difuso:

28

CAPITULO 1. INTRODUCCION: BASES DE DATOS Y CONJUNTOS DIFUSOSun valor mayor o igual que algun valor concreto : de dicho universo que satisface: donde 2 0; 1].

e A , es un subconjunto no difuso de elementos de , cuya funcion de pertenencia toma e A = fx : x 2 ; A (x) eg(1.11)

e De nicion 1.14 Un -corte de un conjunto difuso A de nido sobre , denotado por

t u

Nucleo de un conjunto difuso:

e De nicion 1.15 El nucleo (kernel) de un conjunto difuso A de nido sobre es unsubconjunto de dicho universo que satisface:

e kern(A) = fx 2 ; A(x) = 1g e

(1.12)

t u

Altura de un conjunto difuso: como:

e De nicion 1.16 La Altura (height) de un conjunto difuso A de nido sobre se de ne e hgt(A) = sup A (x) ex2

(1.13)

t u

e De nicion 1.17 Un conjunto difuso A de nido sobre se dice normalizado si y solosi

Conjunto difuso normalizado:

9x 2 ;

e A (x) = hgt(A) = 1

e

(1.14)

t u

1.3.3 Operaciones sobre Conjuntos Difusos

Las operaciones que inmediatamente se sugieren de la de nicion de conjunto difuso son la union, la interseccion y el complemento. En 125] podemos encontrar estas y otras operaciones, como la concentracion (elevar al cuadrado la funcion de pertenencia), la dilatacion (efectuar la ra z cuadrada de la funcion de pertenencia) y la intensi cacion, que pueden utilizarse cuando se usan modi cadores lingu sticos (linguistic hedges ) como \muy" o \poco".

1.3.3.1 Union e Interseccion e e De nicion 1.18 Si A y B son dos conjuntos difusos sobre un universo de discurso , la e e funcion de pertenencia de la union de ambos conjuntos, A B , viene dada por (1.15) e e e e A B (x) = f ( A (x); B (x)); x 2 donde f es una T-conorma 134]. t u

1.3. TEORIA DE CONJUNTOS DIFUSOS

29

e e De nicion 1.19 Si A y B son dos conjuntos difusos sobre un universo de discurso , la e e funcion de pertenencia de la interseccion de ambos conjuntos, A \ B , viene dada por (1.16) e e e e A\B (x) = g( A (x); B (x)); x 2 donde g es una T-norma 134]. t uLas de niciones anteriores no son unicas ya que existen varios operadores que satisfacen el concepto de T-norma y de T-conorma, como las presentadas en 57, 156]. Los mas importantes son: Operadores idempotentes: El maximo y el m nimo para la union y la interseccion respectivamente. Satisfacen, ademas de la idempotencia, la propiedad distributiva aplicada sobre ambos y son estrictamente crecientes. Estos operadores son los mas utilizados porque conservan gran cantidad de las propiedades de los operadores booleanos. En 14] puede encontrarse una justi cacion a la eleccion de los operadores max y min para de nir los anteriores conceptos. Operadores arquimedianos: Emplean la suma probabil stica, (x + y x y), y el producto, (x y), para la union y la interseccion, respectivamente. Estos operadores no satisfacen la propiedad distributiva ni son idempotentes. Operadores acotados (bounded ): Los operadores dados por, min(1; x + y) y max(0; x + y 1), representan la union y la interseccion respectivamente. Estos operadores no satisfacen la idempotencia, la propiedad distributiva ni la propiedad de absorcion. Por contra, satisfacen las propiedades conmutativa, asociativa y de identidad.

1.3.3.2 ComplementoLa nocion de complemento se puede construir a partir del concepto de negacion fuerte de E. Trillas 140]: De nicion 1.20 Una funcion C de 0,1] en 0,1] es una negacion fuerte si satisface las siguientes condiciones: 1. C(0)=1 2. C(C(a))=a (involucion) 3. C es estrictamente decreciente 4. C es continua. Aunque existen varios tipos de operadores que satisfacen tales propiedades o versiones relajadas de las mismas, nosotros, para el complemento, emplearemos principalmente la version proporcionada por Zadeh en 165], en la cual: C (x) = 1 x (1.17)

t u

e Por tanto, para un conjunto difuso A sobre un universo de discurso , la funcion de e, :A, viene dada por: e pertenencia del complemento de A (1.18) e e A (x); x 2 :A(x) = 1

30

CAPITULO 1. INTRODUCCION: BASES DE DATOS Y CONJUNTOS DIFUSOSh

0

Figura 1.1: Numero difuso general: Entre y .

1.3.4 Numeros Difusos

El concepto de numero difuso fue introducido por primera vez en 167] con el proposito de analizar y manipular valores numericos aproximados. El concepto ha sido re nado sucesivamente y en esta memoria entenderemos por numero difuso lo siguiente 59]:pliendo:

De nicion 1.21 Sea A un subconjunto difuso de y

A su funcion de pertenencia cum-

1. 8x; y 2 ; 8 A (t) minf A (x); A (y)g, es decir que es convexo. 2. A es semicontinua superiormente. 3. El soporte de A es un conjunto acotado. entonces diremos que A es un numero difuso.

t u

Algunos autores incluyen en la de nicion la necesidad de que el subconjunto difuso este normalizado (De nicion 1.17). La forma general de la funcion de pertenencia de un numero difuso A, es la siguiente:

8 r (x) > A s (x) : 0A

si x 2 ; ) si x 2 ; ] si x 2 ( ; ] en otro caso

(1.19)

donde rA ; sA : ! 0; 1], rM no decreciente, sM no creciente y

rA( ) = h = sA ( )con h 2 (0; 1] y ; ; ; 2 . Al numero h se le denomina altura del numero difuso, al intervalo ; ] intervalo modal y a los numeros y holguras izquierda y derecha respectivamente. El numero difuso de la Figura 1.1 es una representacion de \aproximadamente entre y ".

1.3. TEORIA DE CONJUNTOS DIFUSOS1

31

0

Figura 1.2: Numero difuso trapezoidal normalizado. A lo largo de esta memoria utilizaremos a menudo un caso particular de numeros difusos que se obtienen cuando consideramos a las funciones rA y sA como funciones lineales. En este caso la funcion de pertenencia adopta la forma:

8 (x > h+ >h < A(x) = > (x >h :0

)h )h

si x 2 ; ) si x 2 ; ] si x 2 ( ; ] en otro caso

(1.20)

A un numero difuso de este tipo lo llamaremos triangular o trapezoidal . Usualmente trabajaremos con numeros difusos normalizados por lo que h = 1, en este caso podremos caracterizar un numero difuso trapezoidal normalizado A, mediante el empleo de los 4 parametros que son realmente imprescindibles:

A ( ; ; ; )La Figura 1.2 muestra una representacion gra ca de dicho numero.

1.3.4.1 El Principio de ExtensionEste principio, propuesto en 167], proporciona un metodo general que permite extender conceptos matematicos no difusos para el tratamiento de cantidades difusas. Se de ne como sigue:

ff f A1 ; A2 ; : : : ; An , n conjuntos difusos de

De nicion 1.22 Sea

un producto cartesiano de universos = 1 2 ::: n, y ; 2 ; : : : ; n respectivamente, f una funcion desde 1 e al universo 0 , entonces un conjunto difuso B de 0 viene de nido por:

e B=donde y = f (x1 ; x2 ; : : : ; xn ) (y 2 0), y

Z

e (y )=y 0 B

32

CAPITULO 1. INTRODUCCION: BASES DE DATOS Y CONJUNTOS DIFUSOSe B (y) =

max min(x1 ;x2 ;::: ;xn)2f 1 (y) f A1 (x1 ); : : : ; An (xn )g; f 1(y) 6= 0 f f 0; en otro caso

t u

1.3.4.2 Aritmetica DifusaGracias al Principio de Extension es facil extender las operaciones aritmeticas clasicas al tratamiento de numeros difusos. De esta forma las cuatro operaciones principales quedan extendidas como sigue: Suma Extendida: Dadas dos cantidades difusas A1 y A2 , la funcion de pertenencia de la suma viene dada por la expresion: (1.21) A1 A2 (y) = supfmin( A1 (y x); A2 (x))=x 2 g nencia de la suma viene dada por la expresion: (1.22) A1 A2 (y) = supfmin( A1 (y + x); A2 (x))=x 2 g De estas de niciones se puede obtener facilmente que el si A1 tiene n terminos y A2 tiene m terminos, el numero de terminos de A1 + A2 y de A1 A2 es (n 1) + (m 1) + 1, o lo que es lo mismo: n + m 1. Ejemplo 1.13 Sean A1 y A2 dos cantidades difusas de nidas (con el formato de la De nicion 1.9 y la ecuacion 1.6) como: A1 = 1=1 + 0:9=2 + 0:5=3 A2 = 1=2 + 0:8=3 + 0:3=4 entonces, aplicando el Principio de Extension obtenemos que: A1 + A2 = 1=3 + 0:9=4 + 0:8=5 + 0:5=6 + 0:3=4 A1 A2 = 0:3= 3 + 0:8= 2 + 1= 1 + 0:9=0 + 0:5=1 Observe que se cumple que el numero de terminos de las operaciones es 3 + 3 1 = 5. u t Producto Extendido: El producto de dos cantidades difusas A1 A2 se obtiene: supfmin( A1 (z=y); A2 (y))=y 2 f0gg si z 6= 0 (1.23) max( A1 (0); A2 (0)) si z = 0 Division Extendida: La division de dos cantidades difusas se de ne mediante:A1 A2 (z ) = A1 A2 (z ) = supfmin( A1 (y:z ); A2 (y))=y 2

Diferencia Extendida: Dadas dos cantidades difusas A1 y A2, la funcion de perte-

g

(1.24)

Basandose en una expresion particular del principio de incertidumbre adaptada al empleo de cortes y en un tipo de numero difuso similar al descrito anteriormente, denominado numero L R, en 57] se describen formulas de calculo rapido para las anteriores operaciones aritmeticas.

1.3. TEORIA DE CONJUNTOS DIFUSOS

33

Esta teor a se basa en la idea de variables lingu sticas y como estas estan relacionadas con los conjuntos difusos 168]. As , se puede evaluar la posibilidad de que una determinada e variable X sea o pertenezca a un determinado conjunto A, como el grado de pertenencia de e los elementos de X en A.

1.3.5 Teor a de la Posibilidad

e es A" de

(que desconocemos su valor). Entonces, la proposicion \X ne una Distribucion de Posibilidad, de forma que se dice que la \posibilidad" de que X = u vale A(u), para todo valor u 2 . t u e

e De nicion 1.23 Sea un conjunto difuso A de nido sobre con su funcion de pertenenciae A (x) y una variable

X sobre

Como veremos, dos distribuciones de posibilidad pueden ser comparadas con distintos comparadores. Los mas t picos son la medida de posibilidad, \posiblemente igual", y la medida de necesidad, \necesariamente igual" (ecuaciones 5.6 y 5.8 respectivamente).

34

CAPITULO 1. INTRODUCCION: BASES DE DATOS Y CONJUNTOS DIFUSOS

Cap tulo 2

Modelos de Bases de Datos Relacionales Difusas: GEFREDEl problema de la representacion y el tratamiento de informacion \imprecisa" ha sido ampliamente estudiado y pueden encontrarse muchas referencias al respecto en la bibliograf a. Sin embargo, todos los modelos publicados para dar solucion a este problema tienen sus ventajas, desventajas y sus limitaciones. Ademas, el termino \imprecision" engloba varios signi cados que puede ser interesante distinguir: Que la informacion que tenemos es incompleta, que no sabemos si es o no cierta (incertidumbre), que desconocemos totalmente esa informacion (unknown) o que dicha informacion no es aplicable a determinada entidad (unde ned). A veces estos signi cados no son disyuntivos, sino que pueden unirse en una determinada informacion. En este cap tulo se exponen los principales modelos publicados para dar solucion al problema de la representacion y el tratamiento de informacion imprecisa en bases de datos relacionales. El problema no es trivial, ya que hay que modi car la estructura de las relaciones y, con esto, las operaciones sobre estas. Para permitir almacenar informacion imprecisa y consultar de forma imprecisa esta informacion se requiere el estudio de multitud de casos particulares que no ocurren en el modelo clasico, sin imprecision. Entre los modelos que se exponen estan: distintas aproximaciones sin utilizar la logica difusa (como la aproximacion \clasica" de Codd 43, 44, 46, 47]), el modelo de Prade-Testemale 127, 128, 129, 130], el modelo de Umano-Fukami 70, 142, 143, 144, 145], el modelo de BucklesPetry 28, 29, 30, 32], el modelo de Zemankova-Kaendel 170, 171] y el modelo GEFRED de Medina-Pons-Vila 102, 103, 72, 79]. Existen otros modelos para el tratamiento de la incertidumbre en bases de datos, pero que no han tenido demasiada aceptacion, como los basados en los conjuntos rough (rugosos), introducidos por Pawlak en 1982 121, 122]. Principalmente nos centraremos en el modelo GEFRED, en el cual nos hemos basado para desarrollar este trabajo. El modelo GEFRED constituye una s ntesis eclectica de los diferentes modelos publicados para tratar el problema de representacion y tratamiento de informacion difusa mediante bases de datos relacionales. Una de las principales ventajas de este modelo es que consiste en una abstraccion general que permite tratar diferentes enfoques, incluso aunque estos puedan parecer muy dispares. Un estudio mas detallado de todos estos modelos puede verse en las respectivas referencias de cada uno y todos juntos en 103, 125]. En 103] puede verse, ademas, un estudio 35

36

CAPITULO 2. MODELOS DE BDR DIFUSAS: GEFREDNOT AND T m F OR T m F T F T T m F T T T T m m m m m F m T m m F T F F F F F T m F Tabla 2.1: Tablas de verdad para la logica tri-valuada. NOT AND T A I F OR T A I T F T T A I F T T T T A A A A A I F A T A A I I I T A I I I I I F F T F F F F F F T A F Tabla 2.2: Tablas de verdad para la logica tetra-valuada. F T A F F

comparativo de GEFRED con todos los demas modelos.

2.1 Imprecision Sin Utilizar Logica DifusaEn este apartado vamos a resumir algunas ideas que posibilitan, de algun modo, el tratamiento de informacion imprecisa, pero sin utilizar la teor a de conjuntos difusos ni, por tanto, distribuciones de posibilidad. En la bibliograf a a veces se engloban estos modelos en el apartado de imprecision en bases de datos convencionales, aunque, algunas de las ideas que aqu se exponen no han sido implementadas en ningun modelo.

2.1.1 Aproximacion de CoddEl primer intento de representar datos imprecisos en una base de datos fue la introduccion de valores nulos, NULL, por parte de Codd, en 1979 en 43] y ampliado en 44, 46, 47]. Este modelo no utilizaba la teor a de conjuntos difusos. Un valor NULL en un atributo indica que dicho valor era cualquiera de entre todos los que estuvieran incluidos en el dominio de dicho atributo. Cualquier comparacion con un valor NULL, origina un resultado que no es ni Verdad (T, True) ni Falso (F, False), llamado \quizas" (m, Maybe) (o desconocido, unknown, en el SQL de Oracle). Las tablas de verdad de los comparadores clasicos NOT, AND y OR pueden verse en la Tabla 2.1. Despues, se a~adio un matiz mas, diferenciando el valor NULL en dos marcas: \A-marca" n que representa un valor ausente o desconocido, pero aplicable y el valor \I-marca" que representa que el valor esta ausente porque no es aplicable. Una I-marca puede ser situada, por ejemplo, en el atributo matr cula del coche, de alguien que no tiene coche. Esto da lugar a una logica tetra-valuada donde el