Departamento de Lenguajes y Sistemas Informticos Memoria de Tesis Doctoral para optar al grado de Doctora en Informtica por la Universidad de Sevilla
presentado por
Mara Teresa Gmez Lpez Primera Edicin, Septiembre 2007 Grupo de investigacin Quivir Departamento de Lenguajes y Sistemas Informticos ETSI Informtica Universidad de Sevilla Avd. de la Reina Mercedes, s/n Sevilla, 41012. Espaa Copyright c MMVII Grupo Quivir http://www.lsi.us.es/mayte
mayte@lsi.us.es
Don Rafael Martnez Gasca y Don Carmelo Del Valle Sevillano, Profesores Titulares de Universidad del rea de Lenguajes y Sistemas Informticos de la Universidad de Sevilla,
HACEN CONSTAR
que Doa Mara Teresa Gmez Lpez, Ingeniera en Informtica por la Universidad de Sevilla, ha realizado bajo su supervisin el trabajo de investigacin titulado
Una vez revisado, autorizo el comienzo de los trmites para su presentacin como Tesis Doctoral al tribunal que ha de juzgarlo.
Ser la autora del trabajo que se presenta en la memoria de esta tesis doctoral que tiene por ttulo:
A mis padres que me ensearon a luchar todos los das para conseguir lo que quera, y a Jess que con su cario diario me da fuerzas para poderlo hacer
ndice general
1. Introduccin
1.1. Ejemplos Motivadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2. Contexto del Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
3 7
1.3. Justicacin del Trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.4. Objetivos de la Tesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.5. Marco de la Tesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.6. Estructura de la Tesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
17
2.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.2. Dominio de Aplicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.2.1. CAD - Computer-Aided Design y CAM - Computer-Aided Manufacturing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.2.2. CIM - Computer Integrated Manufacturing y PDM - Product Data Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.2.3. CASE - Computer-Aided Software Engineering . . . . . . . . . . . 22
2.2.4. GIS - Geographic Information System y Bases de Datos EspacioTemporales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.3. Naturaleza de la informacin . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.3.1. Bases de Datos Deductivas . . . . . . . . . . . . . . . . . . . . . . . 26
2.3.2. Bases de Datos de Restricciones . . . . . . . . . . . . . . . . . . . . 28 2.3.3. Bases de Datos Deductivas de Restricciones . . . . . . . . . . . . . 29 2.4. Modelo lgico de almacenamiento de Bases de Datos . . . . . . . . . . . . 30 2.4.1. Bases de Datos Relacionales . . . . . . . . . . . . . . . . . . . . . . 30 2.4.2. Bases de Datos Orientadas a Objetos . . . . . . . . . . . . . . . . . 33 2.4.3. Bases de Datos Objeto-Relacionales . . . . . . . . . . . . . . . . . . 38 2.4.4. Comparacin entre las propuestas . . . . . . . . . . . . . . . . . . . 40 2.5. Posicin de la propuesta dentro del organigrama general . . . . . . . . . . 41 2.6. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
47
3.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.2. Origen de las Bases de Datos de Restricciones . . . . . . . . . . . . . . . . 48 3.3. Formalizaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 3.3.1. Lgica y Modelo de Primer Orden . . . . . . . . . . . . . . . . . . . 50 3.3.2. Formalizacin de las Bases de Datos de Restricciones . . . . . . . . 52 3.3.3. Ejemplo de Modelado con Relaciones Restrictivas . . . . . . . . . . 55 3.4. Consultas a Bases de Datos de Restricciones . . . . . . . . . . . . . . . . . 56 3.4.1. Eliminacin de cuanticadores . . . . . . . . . . . . . . . . . . . . . 56 3.4.2. Consultas sobre restricciones . . . . . . . . . . . . . . . . . . . . . . 57 3.4.3. Algebra Relacional para Restricciones . . . . . . . . . . . . . . . . . 60 3.4.4. Evaluacin de consultas en BDdR . . . . . . . . . . . . . . . . . . . 63 3.5. Prototipos de Bases de Datos de Restricciones . . . . . . . . . . . . . . . . 63 3.5.1. DISCO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 3.5.2. MLPQ/PReSTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 3.5.3. DEDALE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 3.5.4. CCUBE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.5.5. CQA/CDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 3.5.6. DeCoR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 3.6. Comparativas entre las Propuestas . . . . . . . . . . . . . . . . . . . . . . 80 3.7. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
85
4.2.2. Bases de Datos de Restricciones . . . . . . . . . . . . . . . . . . . . 90 4.2.3. Nueva Denicin del Modelo de Bases de Datos de Restricciones . . 90 4.2.4. Atributos en las Bases de Datos de Restricciones . . . . . . . . . . . 93 4.3. Consultas a Bases de Datos de Restricciones . . . . . . . . . . . . . . . . . 94 4.4. Resolucin de Problemas con Restricciones . . . . . . . . . . . . . . . . . . 98 4.4.1. Problemas de Satisfaccin de Restricciones . . . . . . . . . . . . . . 99 4.4.2. Problemas de Optimizacin con Restricciones . . . . . . . . . . . . 100 4.4.3. Bases de Grbner . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 4.4.4. Descomposicin Algebraica Cilndrica . . . . . . . . . . . . . . . . . 101 4.5. Operador Seleccin para BDdR . . . . . . . . . . . . . . . . . . . . . . . . 103 4.5.1. Operador de Seleccin para Atributos de tipo Restriccin . . . . . . 103 4.5.2. Operador de Seleccin para Atributos de tipo Variable de Restriccin111 4.6. Operador Proyeccin para BDdR . . . . . . . . . . . . . . . . . . . . . . . 113 4.6.1. Operador de Proyeccin para Atributos Variables de Restriccin . . 113 4.7. Operador de Unin de Conjuntos para BDdR . . . . . . . . . . . . . . . . 117 4.8. Operador Diferencia de Conjuntos para BDdR . . . . . . . . . . . . . . . . 119 4.9. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
123
5.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 5.2. Las Bases de Datos Objeto-Relacionales y las Restricciones . . . . . . . . . 125 5.2.1. Representacin de las Restricciones como Objetos usando UML . . 126 5.3. Arquitectura del Sistema Gestor de BDdR . . . . . . . . . . . . . . . . . . 131 5.3.1. Consulta sobre la base de datos . . . . . . . . . . . . . . . . . . . . 135 5.4. CORQL: Ampliacin de SQL para BDdR . . . . . . . . . . . . . . . . . . . 137 5.4.1. Creacin de una LORCDB . . . . . . . . . . . . . . . . . . . . . . . 137 5.4.2. Creacin de tablas en una LORCDB . . . . . . . . . . . . . . . . . 137 5.4.3. Insercin de tuplas en la tabla . . . . . . . . . . . . . . . . . . . . . 138 5.4.4. Consulta a una LORCDB . . . . . . . . . . . . . . . . . . . . . . . 140 5.4.5. Modicacin de la estructura de una tabla . . . . . . . . . . . . . . 143 5.4.6. Modicacin del contenido de una tabla . . . . . . . . . . . . . . . 144 5.5. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
147
6.1. Ejemplo de caso de estudio . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 6.2. Implementacin de la Seleccin . . . . . . . . . . . . . . . . . . . . . . . . 149 6.3. Implementacin del Producto Cartesiano . . . . . . . . . . . . . . . . . . . 162 6.4. Implementacin de la Proyeccin . . . . . . . . . . . . . . . . . . . . . . . 163 6.4.1. Deteccin de grupos de restricciones relacionadas para la Proyeccin Numrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 6.4.2. Deteccin de grupos de restricciones relacionadas para la Proyeccin Simblica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 6.4.3. Seleccin de la tcnica para evaluar la proyeccin . . . . . . . . . . 171 6.5. Implementacin de la Operacin de Unin . . . . . . . . . . . . . . . . . . 177 6.6. Implementacin de la Operacin de Diferencia . . . . . . . . . . . . . . . . 178 6.7. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
181
7.1. Conceptos sobre Diagnosis de Fallos . . . . . . . . . . . . . . . . . . . . . . 182 7.2. Deniciones y Notacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 7.3. La Diagnosis de Fallos y las BDdR . . . . . . . . . . . . . . . . . . . . . . 188 7.3.1. Insercin de Componentes en la BDdR . . . . . . . . . . . . . . . . 188 7.3.2. Obtencin de la Red de Contextos . . . . . . . . . . . . . . . . . . . 189 7.3.3. Obtencin de las CARCs y los PCCM . . . . . . . . . . . . . . . . 190 7.3.4. Obtencin de los CCM para un Modelo Observable . . . . . . . . . 192 7.3.5. Obtencin de los Hitting Sets Mnimos . . . . . . . . . . . . . . . . 193 7.4. Ms ejemplos de Consultas . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 7.5. Ejemplos de Consultas en la Diagnosis Basada en Modelos . . . . . . . . . 196 7.5.1. Ejemplos de Seleccin 7.5.2. Ejemplos de Proyeccin . . . . . . . . . . . . . . . . . . . . . . . . . 198 . . . . . . . . . . . . . . . . . . . . . . . . 199
207
8.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 8.2. Pruebas para el Operador de Proyeccin . . . . . . . . . . . . . . . . . . . 210 8.2.1. Ejemplo de Diagnosis Basada en Modelos . . . . . . . . . . . . . . . 211 8.2.2. Mejoras en la Evaluacin de la Proyeccin Simblica . . . . . . . . 212 8.2.3. Ejemplos de Pruebas usando Proyeccin Simblica . . . . . . . . . . 212 8.2.4. Conclusiones para el operador de Proyeccin Simblica . . . . . . . 215 8.2.5. Mejoras en la Evaluacin de la Proyeccin Numrica . . . . . . . . 216
8.2.6. Ejemplos de Pruebas usando la Proyeccin Numrica . . . . . . . . 218 8.2.7. Conclusiones para el operador de Proyeccin Numrica . . . . . . . 219 8.2.8. Mejoras en la Evaluacin de la Proyeccin Numrica con Optimizacin de Variable . . . . . . . . . . . . . . . . . . . . . . . . . . 219
8.2.9. Ejemplos de Pruebas usando la Proyeccin Numrica con Optimizacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 8.2.10. Conclusiones para el operador de Proyeccin Maximizando valores de Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 8.3. Los Sistemas de Informacin Geogrca y LORCDB . . . . . . . . . . . . . 223 8.3.1. Informacin almacenada en la LORCDB . . . . . . . . . . . . . . . 224 8.4. Pruebas para el Operador de Seleccin . . . . . . . . . . . . . . . . . . . . 225 8.4.1. Ejemplos de Pruebas usando Seleccin . . . . . . . . . . . . . . . . 227 8.4.2. Conclusiones para el operador de Seleccin . . . . . . . . . . . . . . 230 8.5. Pruebas para el Operador de Unin . . . . . . . . . . . . . . . . . . . . . . 232 8.5.1. Ejemplos de Pruebas usando la Unin . . . . . . . . . . . . . . . . . 233 8.5.2. Conclusiones para el operador de Unin . . . . . . . . . . . . . . . 237
8.6. Pruebas para el Operador de Diferencia . . . . . . . . . . . . . . . . . . . . 238 8.6.1. Ejemplos de Pruebas usando la Diferencia . . . . . . . . . . . . . . 239 8.6.2. Conclusiones para el operador de Diferencia . . . . . . . . . . . . . 242 8.7. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
245
9.1. Anlisis de la Consecucin de los Objetivos . . . . . . . . . . . . . . . . . . 245 9.2. Principales Aportaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 9.2.1. Redenicin del modelo de Bases de Datos de Restricciones . . . . . 247 9.2.2. Creacin de un nuevo Gestor de Bases de Datos de Restricciones . . 248 9.2.3. Implementacin eciente del lenguaje CORQL . . . . . . . . . . . . 248 9.2.4. Gestor vlido para aplicaciones de naturaleza diferente . . . . . . . 248 9.3. Publicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 9.4. Lneas Futuras de Investigacin . . . . . . . . . . . . . . . . . . . . . . . . 254 9.4.1. Incluir la Programacin Lgica . . . . . . . . . . . . . . . . . . . . 254
9.4.2. Restricciones de Integridad . . . . . . . . . . . . . . . . . . . . . . . 255 9.4.3. Ampliar el tipo Restriccin . . . . . . . . . . . . . . . . . . . . . . . 255 9.4.4. Bases de Datos Distribuidas . . . . . . . . . . . . . . . . . . . . . . 255 9.4.5. Analizar ms casos de estudio . . . . . . . . . . . . . . . . . . . . . 255
257
A.1. Algoritmo para la Obtencin de los CRRV . . . . . . . . . . . . . . . . . . 257 A.2. Estructuras de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 A.3. Descripcin del Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 A.4. Ejemplo de Traza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 A.5. Propiedades del Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 A.5.1. Transicin entre estados de la Estructura-CRRV . . . . . . . . . . . 267 A.5.2. Complejidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 A.5.3. Completitud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 A.5.4. Correccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
273
B.1. Ejemplo para la diagnosis basada en modelos . . . . . . . . . . . . . . . . . 273 B.2. Aplicacin para la captura de restricciones sobre SIG . . . . . . . . . . . . 273 B.2.1. Pasos para la obtencin de restricciones . . . . . . . . . . . . . . . . 275 B.3. Contenido de las tablas de Sistemas de Informacin Geogrca . . . . . . . 276
ndice de tablas
2.1. Una comparacin entre Sistemas Gestores de Bases de Datos (I) . . . . . . 41 2.2. Una comparacin entre Sistemas Gestores de Bases de Datos (II) . . . . . 42
3.1. Relacin entre la Terminologa Deductiva y la Relacional . . . . . . . . . . 78 3.2. Caractersticas de los prototipos de Bases de Datos de Restricciones . . . . 83 4.1. Eliminacin de Cuanticadores en funcin del tipo de restriccin y dominio 115 4.2. Resumen de las Operaciones y Tcnicas para evaluar consultas . . . . . . . 121 5.1. Ventajas e Inconvenientes de Restricciones y BD Relacionales . . . . . . . 124
7.1. Modelo del Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 7.2. Obtencin de CARC para el ejemplo introductorio . . . . . . . . . . . . . . 190 7.3. Obtencin de los CCM (I) . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 7.4. Obtencin de los CCM (II) . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 7.5. Obtencin de los Hitting Sets Mnimos . . . . . . . . . . . . . . . . . . . . 194 7.6. Obtencin de los Hitting Sets Mnimos (II) . . . . . . . . . . . . . . . . . . 194 7.7. Posibles combinaciones de atributos y operaciones y . . . . . . . . . . 196
7.8. Salida consulta con seleccin (I) . . . . . . . . . . . . . . . . . . . . . . . . 198 7.9. Salida consulta con seleccin (II) . . . . . . . . . . . . . . . . . . . . . . . 198 7.10. Salida consulta con seleccin (III) . . . . . . . . . . . . . . . . . . . . . . . 199 7.11. Salida consulta con Proyeccin (I) . . . . . . . . . . . . . . . . . . . . . . . 200
7.12. Salida consulta con Proyeccin (II) . . . . . . . . . . . . . . . . . . . . . . 200 7.13. Salida consulta con Proyeccin (III) . . . . . . . . . . . . . . . . . . . . . . 201 7.14. Salida consulta con Proyeccin Numrica Vertical (IV) . . . . . . . . . . . 202 8.1. Comparacin para la evaluacin de Proyecciones Simblicas utilizando las Bases de Grbner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 8.2. Comparacin para la evaluacin de Proyecciones Simblicas utilizando Descomposicin Algebraica Cilndrica . . . . . . . . . . . . . . . . . . . . . . 216 8.3. Comparacin para la evaluacin de Proyecciones Numricas . . . . . . . . . 219 8.4. Comparacin para la Evaluacin de Proyecciones Numrica con Optimizacin222 8.5. Comparacin para la Evaluacin de la Seleccin . . . . . . . . . . . . . . . 231 8.6. Comparacin para la evaluacin de la Unin . . . . . . . . . . . . . . . . . 237 8.7. Comparacin para la evaluacin de la Diferencia . . . . . . . . . . . . . . . 243
ndice de guras
1.1. Ejemplos de restricciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2. Ejemplo Motivador I. Sistema de Informacin Geogrca . . . . . . . . . . 1.3. Ejemplo Motivador II. Sistema Econmico . . . . . . . . . . . . . . . . . . 1.4. Ejemplo Motivador III. Sistema para la Diagnosis Basada en Modelos . . 2 4 5 7 9 9
1.5. Ejemplo de representacin de un conjunto de tuplas como una restriccin 1.6. Modelos de datos relacional y con restricciones 2.1. Caractersticas de las bases de datos . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . 19
2.2. El mundo de las bases de datos segn Stonebraker [1996] . . . . . . . . . . 39 2.3. Divisin detallada de una base de datos por caractersticas . . . . . . . . . 42 2.4. Ejemplos de propuestas combinando caractersticas de las Bases de Datos 3.1. Ejemplo de representacin de un conjunto de tuplas como una restriccin 3.2. Ejemplo de representacin de una restriccin en una base de datos relacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 3.3. Comparacin entre las Bases de Datos Extensivas y las BDdR . . . . . . . 54 3.4. Figura representada por la frmula t . . . . . . . . . . . . . . . . . . . . 56 43 49
3.5. Consistencia en las consultas a restricciones . . . . . . . . . . . . . . . . . 58 3.6. Evaluacin de Consultas a Restricciones . . . . . . . . . . . . . . . . . . . 64 3.7. Ejemplo de instancia de un escritorio (desk) con un cajn (drawer) en una habitacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.1. Equivalencia entre una relacin extendida, una relacin restrictiva y una relacin con atributos clsicos y restricciones . . . . . . . . . . . . . . . . 86 4.2. Representacin de k-tuplas restriccin y relaciones restrictivas . . . . . . . 91 4.3. Ejemplo de representacin de k-tuplas restriccin y relaciones restrictivas . 92 4.4. Representacin extendida de la relacin de la gura 4.3 . . . . . . . . . . . 95 4.5. Ejemplo de Descomposicin Algebraica Cilndrica . . . . . . . . . . . . . . 102 4.6. Ejemplo donde Cx < Cy . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 4.7. Ejemplo de reescritura de la negacin 4.8. Ejemplo de proyeccin sobre variables . . . . . . . . . . . . . . . . . . . . 108 . . . . . . . . . . . . . . . . . . . . 109
4.9. Ejemplo de Cx Cy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 4.10. Ejemplo de seleccin con condicin de atributos variable de restriccin 4.11. Tipos de Proyeccin en funcin de la salida 4.12. Tipos de Unin entre restricciones . . 113
. . . . . . . . . . . . . . . . . 117
. . . . . . . . . . . . . . . . . . . . . . 118
4.13. Tipos de Diferencias entre restricciones . . . . . . . . . . . . . . . . . . . . 119 5.1. Representacin del objeto-restriccin con UML . . . . . . . . . . . . . . . 126
5.2. Ejemplo de rbol sintctico de una restriccin (objeto-restriccin) . . . . . 127 5.3. Indexacin entre variables y restricciones . . . . . . . . . . . . . . . . . . . 129 5.4. Tabla de almacenamiento de restricciones para la serializacin de los objetos 130 5.5. Ejemplo de Serializacin de Objetos-Restriccin . . . . . . . . . . . . . . . 131 5.6. Arquitectura de la Base de Datos de Restricciones . . . . . . . . . . . . . . 132 5.7. Modicacin del contenido de una Bases de Datos de Restricciones . . . . 134
5.8. Consulta sobre la Bases de Datos de Restricciones . . . . . . . . . . . . . . 136 5.9. Ejemplo de tablas rellenas . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 6.1. Diagrama de Tablas del ejemplo . . . . . . . . . . . . . . . . . . . . . . . 148
6.2. Ejemplo de tabla Provincias . . . . . . . . . . . . . . . . . . . . . . . . . . 148 6.3. Ejemplo de tablas que almacenan Restricciones . . . . . . . . . . . . . . . 149
6.4. Ejemplo de Cx
Cy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
. . . . . . . . . . . . . . . . . . . . . . 152
6.6. Relaciones tras la eliminacin por atributos univaluados (Paso I) . . . . . . 154 6.7. Relaciones tras la eliminacin por atributos variables de restriccin (Paso II)155 6.8. Tipos de relaciones entre los rangos de las variables de dos restricciones 6.9. Ejemplo de relacin entre restricciones en funcin de sus envolventes 6.10. Ejemplo de comparacin entre restricciones . 155
. . . 158
. . . . . . . . . . . . . . . . . 159
6.11. Ejemplo de restricciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 6.12. Representacin de restricciones . . . . . . . . . . . . . . . . . . . . . . . . 162 6.13. Relaciones tras la eliminacin por construccin de CSP (Paso III y IV) . . 162 6.14. Salida del ejemplo tras el Producto Cartesiano . . . . . . . . . . . . . . . 163
6.15. Tipos de Proyeccin: Horizontal y Vertical . . . . . . . . . . . . . . . . . . 164 6.16. Ejemplo de conjunto de restricciones . . . . . . . . . . . . . . . . . . . . . 166 6.17. Grafo de Restricciones de la Relacin para Proyeccin Horizontal 6.18. Ejemplo para realizar proyeccin Vertical . . . . . 169
. . . . . . . . . . . . . . . . . . 169
6.19. Grafo del Ejemplo para la proyeccin Vertical . . . . . . . . . . . . . . . . 170 6.20. rbol de decisin para construir el modelo y decidir qu tcnica lo resolver 172 6.21. Tipos de unin entre restricciones . . . . . . . . . . . . . . . . . . . . . . 178
6.22. Tipos de diferencias entre restricciones . . . . . . . . . . . . . . . . . . . . 179 7.1. Ejemplo introductorio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 7.2. Red de Contextos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
7.3. Producto Cartesiano entre Componentes . . . . . . . . . . . . . . . . . . . 189 7.4. Tablas de las CARCs y los PCCM para el ejemplo introductorio . . . . . . 191 7.5. Ejemplo de Diagnosis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
7.6. Salida consulta con Proyeccin (V) . . . . . . . . . . . . . . . . . . . . . . 203 7.7. Salida consulta con Proyeccin (VI) . . . . . . . . . . . . . . . . . . . . . 204
7.8. Salida consulta con Proyeccin (VII) . . . . . . . . . . . . . . . . . . . . . 205 7.9. Salida consulta con Proyeccin (VIII) 8.1. Ejemplo de Diagnosis . . . . . . . . . . . . . . . . . . . . 206
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
8.2. Tiempos de Evaluacin para Proyeccin Simblica para Ecuaciones Polinmicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 8.3. Tiempos de Evaluacin para Proyeccin Simblica para Inecuaciones Polinmicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 8.4. Tiempos de Evaluacin para Proyeccin Numrica . . . . . . . . . . . . . 220 . . . 222
8.5. Tiempos de Evaluacin para Proyeccin Numrica con Optimizacin 8.6. Vista del Mapa Hbrida
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
8.9. Tiempos de Evaluacin para la Seleccin . . . . . . . . . . . . . . . . . . . 232 8.10. Nmero de CSP creados para la Seleccin . . . . . . . . . . . . . . . . . . 232 8.11. Obras de la zona . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 8.12. Tiempos de evaluacin para la Unin . . . . . . . . . . . . . . . . . . . . . 238 8.13. Nmero de CSP creados para la Unin . . . . . . . . . . . . . . . . . . . . 238 8.14. Tiempos de evaluacin de la Diferencia . . . . . . . . . . . . . . . . . . . . 244 8.15. Nmero de CSP creados para la Diferencia . . . . . . . . . . . . . . . . . 244
A.1. Tipos de Proyeccin: Horizontal y Vertical . . . . . . . . . . . . . . . . . . 258 A.2. Ejemplo transformacin grafo Nodo-Restricciones . . . . . . . . . . . . . . 260 A.3. Ejemplo de CRRV no mnimo . . . . . . . . . . . . . . . . . . . . . . . . . 262 A.4. Ejemplo de bsqueda de restricciones relacionadas por variables . . . . . . 267 B.1. Contenido de la tabla Componentes para el subsistema 1 . . . . . . . . . . 274 B.2. Contenido de la tabla Componentes para el subsistema 2 . . . . . . . . . . 274
B.3. Contenido de la tabla Componentes para el subsistema 3 . . . . . . . . . . 275 B.4. Contenido de la tabla Componentes para el subsistema 4 . . . . . . . . . . 275 B.5. Aplicacin para el almacenamiento de Restricciones . . . . . . . . . . . . . 276 B.6. Contenido de la tabla Calles . . . . . . . . . . . . . . . . . . . . . . . . . . 277 B.7. Contenido de la tabla Residenciales . . . . . . . . . . . . . . . . . . . . . . 278 B.8. Envolventes de las variables de Residenciales B.9. Contenido de la tabla de Censos . . . . . . . . . . . . . . . . 279
. . . . . . . . . . . . . . . . . . . . . . . 279
Agradecimientos
Slo quien ha hecho una tesis sabe lo graticante que es escribir los agradecimientos, intentar devolver un poco de lo mucho que se ha recibido. No me gustara que el agradecimiento a mis directores, los Doctores Rafael Martnez Gasca y Carmelo del Valle, quedara como una mencin normal. Ellos han sido excepcionales, su ayuda, comprensin y disposicin absoluta, han hecho que todos estos aos de investigacin hayan sido un placer. Sin ellos nada de esto habra sido posible. Importante tambin ha sido la participacin de el Dr. Miguel Toro, por sus grandes ideas y seguimiento durante todo este tiempo. Durante estos aos, el departamento se ha convertido tambin en mi casa, y mis compaeros me han ofrecido siempre ayuda y cario, especialmente Fernando de la Rosa, Pablo Fernndez, Roberto, Sergio, Joaqun, David, Diana, Irene, Vctor Daz, Carlos G. Vallejo y Juan Antonio lvarez. Pero han sido esenciales los que se han convertido en amigos del alma, Rafael Ceballos, Toi Reina, Octavio Martn, Antonio Talln y Beatriz Bernrdez, que han aguantado todos estos aos con incondicional amistad y comprensin. Todos mis amigos, los de toda la vida, han participado en esta tesis dndome innitos buenos momentos, recordndome que aunque la investigacin es todo, no todo es investigar. Muchos de ellos han seguido cada publicacin y captulo de esta tesis, como si fuera suya. Tantas llamadas de preocupacin le tengo que agradecer a Mnica, Eva, Sara, Migue, Josena, Isabel y Raquel. Tantas charlas y buenos momentos con Guillermina, Sandra y Nlida. Algunos, como Antonio, Loren y Jorge, han soportado mis nervios desde la carrera, compartido mis primeras penas y alegras en la Escuela de Informtica. Pero sin duda, lo ms importante en todo esto ha sido mi familia, mis sobrinos, que siempre sacan de m una sonrisa y me han dado fuerzas para continuar. Y mis hermanas, que siempre han estado ah, y s que siempre lo estarn. Las que me han enseado con el ejemplo que querer es poder.
No puede quedar fuera de este agradecimiento Carmen, no slo por dejar que le robe a Rafael innumerables veces, sino por su disposicin incondicional a prestarnos su ayuda y cario.
Resumen
Esta tesis doctoral aborda el problema de almacenar y tratar en una base de datos informacin compleja, como los datos econmicos, geogrcos o de ingeniera. Para ello se realiza un anlisis de los diferentes modelos lgicos, tipos de gestores de bases de datos y aplicaciones en las que intervienen dichos datos complejos. Debido a que los datos pueden ser de naturalezas diferentes, en la actualidad es necesario disear soluciones a medida para cada tipo de problema cuando sus datos son heterogneos. De entre todas las propuestas existentes, las Bases de Datos de Restricciones son el centro de esta tesis, ya que dicha informacin se puede representar mediante el uso de restricciones, lo que signica un conjunto de variables denidas sobre un dominio relacionadas entre s. Si se extendiera el modelo de datos para soportar datos complejos utilizando las Bases de Datos de Restricciones, toda aquella informacin que pudiera ser representada mediante restricciones no necesitara adaptarse al gestor de bases de datos. La propuesta en la que se centra esta tesis, es un gestor de bases de datos que da una solucin genrica para las aplicaciones que utilizan datos complejos representados mediante restricciones. En esta memoria de tesis se realiza un anlisis de las propuestas existentes para las Bases de Datos de Restricciones, detectando aquellos aspectos que pueden ser mejorados. Estas mejoras implicarn la redenicin del modelo de datos de las Bases de Datos de Restricciones, proponiendo tres tipos de atributos: atributo clsico, atributo restriccin y atributo variable de restriccin. Derivado de este nuevo modelo y estos nuevos atributos, ser necesario redenir las cinco operaciones primitivas del lgebra relacional para el uso de restricciones, ampliando el lenguaje de consulta SQL. Esto signicar modicar y ampliar dichas operaciones, y los operadores que pueden verse involucrados para los diferentes tipos de atributos. Una vez ampliada la semntica y la sintaxis de SQL, se propone una arquitectura que permite que la evaluacin de las diferentes consultas sea eciente, diseando diferentes
estrategias en funcin de los datos y el tipo de consulta. Junto a esto, se ha denido un conjunto de algoritmos para cada una de las operaciones mejorando la eciente computacional de la evaluacin de consultas. Finalmente, se realiza un anlisis experimental mediante casos de prueba para comprobar la efectividad y eciencia de un conjunto de consultas. La cobertura de los casos de prueba se ha hecho considerando los casos ms desfavorables, mostrando los tiempos medios de evaluacin para cada una de las operaciones del lgebra relacional extendida para restricciones.
Captulo 1 Introduccin
Desde la denicin de las bases de datos relacionales, stas han avanzado para dar soluciones cada vez ms ecientes y exibles al tratamiento de datos, dando soporte a estructuras cada vez ms complejas. Sin embargo, la investigacin en el rea de las bases de datos no ha crecido tan rpido como la complejidad de los datos que tienen que almacenar. Ante dicha problemtica, aplicaciones que trabajan con datos 'no tradicionales', como mdicos, multimedia, cientcos, de ingeniera o geogrcos, tienen que disear estructuras a medida de sus necesidades. En general, como datos 'no tradicionales' se conocen a aquellos que no toman valores nicos, sino que dependen de parmetros, variables o vienen denidos por relaciones entre variables mediante ecuaciones o inecuaciones matemticas. Esta creciente complejidad de las aplicaciones y los datos que tratan, orient a la comunidad de bases de datos a marcar en su investigacin nuevos retos, lo que en los aos
90 dio origen a las llamadas Constraint Databases (CDB). Las Constraint Databases extendieron el modelo de las bases de datos relacionales clsicas para dar cabida a datos de tipo Restriccin, donde una restriccin es un conjunto de variables denidas sobre un dominio y relacionadas entre s. Dicha relacin entre variables se puede describir de una manera compacta mediante una combinacin con operadores lgicos de ecuaciones e inecuaciones. La traduccin al espaol del trmino Constraint Database no es fcil, ya que debe dar a entender que es una base de datos donde es posible almacenar y tratar restricciones numricas como un tipo tradicional, al igual que los tipos numricos, cadenas o fechas. El trmino en espaol que se ha elegido en esta tesis para designar las Con-
Captulo 1. Introduccin
restricciones de integridad o acceso ya existentes en las bases de datos. La razn por la cual los datos 'no tradicionales' se representan como restricciones es porque permite una forma genrica de representar cualquier dato que pueda ser descrito mediante una relacin entre variables. Esta idea permitir denir una manera nica de representar todos los datos que puedan ser descritos mediante restricciones, independientemente del nmero de variables, su semntica o de la aplicacin de los utilice. Esto signica que aplicaciones de caractersticas diferentes, como econmicas, estadsticas, geogrcas, mdicas o de ingeniera, utilizarn la misma funcionalidad para almacenar y tratar sus datos, facilitando el desarrollo e implementacin de dichas aplicaciones. El origen en el desarrollo de las Bases de Datos de Restricciones fue la representacin de datos que puedan tomar un nmero de valores muy grande o incluso innito de manera nita, ya que permiten mayor expresividad y compresin de la informacin. Un ejemplo sencillo para entender esta idea es la representacin mediante restricciones del rea rectangular mostrada en la gura 1.1.a.
Y
1 y 5 2 x 4 x, y
(a)
x2 + y2 4 x * y 1 x, y
(b)
Figura 1.1: Ejemplos de restricciones Si se utiliza una base de datos relacional para almacenar estas restricciones, una alternativa sera almacenar la restriccin mediante los puntos que la acotan:
(2, 1), (2, 5), (4, 1), (4, 5). De esta manera, se obtiene una manera vlida de representar
puntos, segmentos, lneas, rectngulos o caminos. Sin embargo, esta solucin no es la ms conveniente principalmente por dos razones: no todos los tipos de restricciones pueden ser representadas de esta forma, como el ejemplo de la gura 1.1.b; y por la evidente prdida de expresividad, ya que no se almacena la informacin en si, sino un conjunto de valores que la representan. Cmo se almacenara la informacin de la gura 1.1.b, teniendo en cuenta que los valores de x e y son innitos, en una base de datos relacional clsica? Ni que
Ejemplos Motivadores
decir tiene, que la discretizacin de los datos producira prdida de informacin, lo que implica prdida de precisin, junto a la creacin de bases de datos mucho ms grandes. El crecimiento de las bases de datos tambin inuir en las operaciones de consulta y modicacin, ya que tendran que ser analizados y modicados muchos ms registros que si la informacin estuviera almacenada con slo una restriccin. Sin embargo, si se tuviera la capacidad de almacenar la restriccin en s, la informacin sera completa y el espacio necesario para almacenarla muy pequeo, derivado de la compresin de la informacin. Adems no sera necesario tener distintos tipos de informacin ni formas de almacenarlas en funcin de la morfologa de la restriccin, tanto la gura 1.1.a como la 1.1.b, seran de tipo Restriccin. De esta forma, las Bases de Datos de Restricciones extienden el modelo de las bases relacionales clsicas, permitiendo tratar gran cantidad de datos o incluso innitos representados de forma nita. Esto se hace utilizando restricciones numricas, como una combinacin lgica (booleana) de ecuaciones e inecuaciones matemticas. Al utilizar datos ms complejos, las Bases de Datos de Restricciones necesitan tener denido un lenguaje de consulta donde estn contempladas las caractersticas de los nuevos datos, disear cmo se almacenarn las restricciones y cmo se evaluarn las consultas de una manera eciente. No es slo importante saber cmo se almacenar la informacin, igual de importante es conocer cmo se inferir conocimiento cuando la informacin se almacena de manera intensiva, mediante restricciones, en lugar de extensiva.
1.1.
Ejemplos Motivadores
Para entender mejor qu tipos de problemas solucionan las Bases de Datos de Restricciones, se muestran tres ejemplos que se analizarn en mayor profundidad a lo largo de esta tesis. Estos ejemplos justican que las bases de datos relacionales no son sucientemente expresivas para tratar datos no tradicionales. Los ejemplos que se muestran a continuacin, pueden ser almacenados en una Base de Datos de Restricciones, no teniendo que buscar soluciones a medida para cada caso, y reduciendo la complejidad de las aplicaciones que utilizan dichos datos, ya que ser resuelta por el gestor de bases de datos. Al igual que no es necesario adaptar los gestores de bases de datos relacionales para tratar datos de tipo administrativo, se busca denir un gestor de bases de datos para trabajar con restricciones.
Captulo 1. Introduccin
Las BDdR han utilizado el mbito de los sistemas de informacin geogrca, como uno de sus ms destacables casos de estudio. Esto es debido a que los datos espacio-temporales son fcilmente representables mediante restricciones. Un ejemplo podra ser una base de datos que almacenara toda la informacin relacionada a las cosechas de una regin, por lo que se podran almacenar los propietarios, el tipo de plantacin, u otros datos de tipo econmico. Estos datos pueden ser almacenados en una base de datos relacional clsica, mientras que las parcelas podran ser representadas mediante restricciones. Un ejemplo de las parcelas es el mostrado en la gura 1.2, donde tambin se representa el recorrido de un avin que va a fumigar dichas cosechas. El recorrido del avin tambin puede ser representado mediante restricciones donde la variable tiempo est involucrada.
Y
Parcela 1
Parcela 2
Parcela 3
Parcela 5 Parcela 4
Parcela 6
Parcela 7
Figura 1.2: Ejemplo Motivador I. Sistema de Informacin Geogrca Este tipo de informacin da cabida a consultas donde pueden estar involucrados datos tradicionales, como:
Qu parcelas no son atravesadas por el avin? Quines son los propietarios de las parcelas atravesadas por el avin? Qu parcelas sern atravesadas por el avin entre los instantes de tiempo 5 y 15?
Ejemplos Motivadores
Sistemas Econmicos:
Los sistemas econmicos tambin se pueden utilizar como un ejemplo apropiado para el uso de BDdR, ya que gran cantidad de datos, como los impuestos a pagar en funcin de los ingresos o el crecimiento del mercado a lo largo del tiempo, no pueden ser representados directamente en las bases de datos relacionales clsicas. Es posible encontrar variables que dependen de otros parmetros, no tomando valores nicos, como es el caso de los impuestos en funcin de los ingresos representados en la gura 1.3. En dicha gura se muestran los impuestos que se tienen que pagar, para cuatro pases, en funcin de los ingresos.
4000 3500 3000 2500 2000 1500 1000 500 0
00 00 00 00 00 00 00 00 00 10 30 50 70 90 00 00 0 0 0 0 0
Impuestos
11
13
Ingresos
Figura 1.3: Ejemplo Motivador II. Sistema Econmico Si no se utilizaran restricciones, sera necesario almacenar todas las posibles relaciones entre Ingresos e Impuestos para todos los pases. Esto generara gran cantidad de tuplas y una informacin incompleta, ya que las combinaciones son innitas, inconveniente que evita el uso de BDdR. Adems, si la informacin se representa mediante restricciones, se podan realizar consultas como:
En qu pas se pagan menos impuestos para unos ingresos de 50.001 euros? Qu impuestos se pagan en el pas C para unos ingresos de 34.000 euros? Para cualquier ingreso se paga menos en el pas D que en el pas A?
En la tesis de Gross [68] se muestra otro ejemplo econmico, donde una empresa quiere almacenar la informacin relativa a sus labores de importacin y exportacin, junto a datos administrativos propios de cualquier empresa como son empleados, departamentos, productos . . . Adems de estos datos, tiene informacin relativa a
15
Captulo 1. Introduccin
los impuestos que pagar en funcin de si es compra, venta, del pas y la empresa con la que negocie, o de cmo ucte el mercado de valores. Para la empresa no slo ser un reto almacenar la informacin, tambin poder obtener el mayor rendimiento de ella, pudiendo minimizar gastos o prevenir cambios econmicos. Sin duda, el ideal de tener una base de datos que pueda trabajar con esta informacin compleja al igual que con los datos administrativos, facilitara el desarrollo de las aplicaciones que usan dichos datos, siendo el objetivo que persiguen las BDdR.
a b c d e
M1 M2
x y A1 A2 f g
M3
Figura 1.4: Ejemplo Motivador III. Sistema para la Diagnosis Basada en Modelos
sistemas formados por componentes pueden estar constituidos por gran cantidad de variables. Otra caracterstica de la diagnosis basada en modelos es la relacin entre el comportamiento de los distintos componentes, ya que los valores de salida de un componente no slo est determinado por l, sino tambin por los valores de las variables que le suministren otros componentes. Esta ampliacin del nmero de variables y de la complejidad del sistema, fuerza la denicin de nuevos tipos de consultas y la bsqueda de diseos de bases de datos que las soporten ms all de las propuestas en los sistemas de informacin geogrca. Entre los ejemplos de consultas sobre este tipo de sistemas, donde existen restricciones involucradas, se encuentran:
Qu valor tiene f si a = 4, b = 1, c = 2, d = 4? Qu componente est fallando si los sensores obtienen los valores . . .? Qu componentes pueden estar fallando si la variable g es incorrecta? Obtener posibles valores que toman los sensores si el sistema funcionara correctamente. Lo que signica obtener instancias de las variables a, b, c, d y f . Un ejemplo de salida es: {a, b, c, d, e, f , g } = {1, 1, 2, 5, 3, 7, 11}.
1.2.
El modelo relacional propuesto por Codd [33], considerado como uno de los pilares ms importantes en las bases de datos relacionales, est dividido en dos niveles, lgico y
Captulo 1. Introduccin
fsico. La capa lgica es sobre la cual se especican las consultas, mientras que la capa
fsica describe el almacenamiento fsico de los datos, la organizacin de cheros y las rutas de acceso a la informacin. Desde que se deni este modelo, la complejidad de los tipos de datos que se deben tratar ha ido creciendo, por lo que el modelo relacional ya no es suciente. Estas nuevas necesidades fueron recogidas en los aos 80 con la aparicin de la orientacin a objetos y la consecuente adaptacin de las bases de datos [3], aunque alejndose en algunos aspectos del modelo relacional original, caractersticas que se analizarn en el captulo 2. El siguiente paso en la adaptacin a datos ms complejos, fue la creacin de las bases de datos objeto-relacionales [143] que dan cabida a la orientacin a objetos pero acercndose ms a la estructura del modelo relacional. En paralelo con estos cambios en las bases de datos surgieron las Bases de Datos de Restricciones, con el trabajo de Kanellakis, Kuper y Revesz [84], por lo que han convivido con muchos de los avances sufridos en las bases de datos relacionales, aunque no siempre hacindose eco de las ventajas que stas ofrecan. Las Bases de Datos de Restricciones se originaron basndose en las investigaciones relacionadas con DATALOG [28] y la Programacin Lgica con Restricciones (Constraint Logic Programming - CLP) [34][82]. Inicialmente, la motivacin consisti en combinar los trabajos en ambas reas, con el objetivo de obtener versiones ms ptimas de la Programacin Lgica basada en Restricciones utilizando el modelo de las bases de datos. Para abordar esta propuesta, se parti de un modelo de datos introducido en [93], fundamentado en considerar una tupla de una base de datos como un conjunto de restricciones de igualdad o desigualdad en los atributos de dicha tupla, siendo las restricciones un mecanismo natural de especicar las consultas de similitud en series de datos. Un ejemplo aclarador de esta armacin es el presentado en [94] mostrado en la gura 1.5, donde un conjunto de tuplas de una relacin puede ser representado por una restriccin. Cada tupla de una relacin est relacionada con las restantes tuplas con el operador lgico de disjuncin (), mientras que los atributos que forman una tupla tienen una relacin lgica de conjuncin () con el resto de tuplas. La mayor contribucin aportada por las BDdR no radica simplemente en utilizar las restricciones como objetivo, sino como medio para una mayor expresividad en los datos. Esto origin cambios en el modelos propuesto por Codd, incrementando el nivel de abstraccin entre la capa fsica de datos y la semntica que dichos datos pueden tomar. Esto alent a incluir una capa adicional, analizada en [60], a la arquitectura conceptual de las bases de datos que se muestra en la gura 1.6. Esta capa es el resultado de dividir
x a1 a2 a3
y b1 b2 b3
( x = a1 y = b1 ) ( x = a2 y = b2 ) ( x = a3 y = b3 )
Figura 1.5: Ejemplo de representacin de un conjunto de tuplas como una restriccin la capa lgica de las bases de datos clsicas en dos nuevas capas: abstracta y concreta. La capa lgica abstracta representa un conjunto de datos que pueden ser innitos, como las relaciones entre variables mostrados en los ejemplos de las guras 1.2, 1.3 1.4, y deber soportar la semntica de las consultas sobre dichos datos. Mientras que en la capa lgica
Figura 1.6: Modelos de datos relacional y con restricciones Desde que se originaron las Bases de Datos de Restricciones hasta la actualidad, han surgido muchas teoras y propuestas pese a ser una comunidad pequea. Y aunque muchos de los problemas ocasionados por el tratamiento y almacenamiento de restricciones fueron detectados y solucionados, no han sido incluidos todos los benecios de las bases de datos relacionales y las objeto-relacionales. Las propuestas en el campo de las BDdR se mantienen alejadas de las bases de datos relacionales, hacindose patente la prdida de eciencia en la evaluacin de las consultas, en el almacenamiento, obtencin y modicacin de los datos tal como se analizar a lo largo de esta tesis.
10
Captulo 1. Introduccin
Objetivos de la Tesis
11
relacionales clsicas? El objetivo de esta pregunta es conocer si se pueden hacer el mismo tipo de consultas sobre los datos que son almacenados como restricciones, que sobre los datos tradicionales. A lo largo de esta tesis se darn las explicaciones pertinentes para demostrar que la respuesta a esta pregunta es no. Es fcil denir un modelo que represente las restricciones desde un punto de vista lgico y fsico como se muestra en la gura 1.6, pero es tan fcil realizar la transformacin de la restriccin entre una representacin y otra en la prctica?; y realmente se han ofrecido soluciones ecientes a nivel computacional? Esta pregunta sin duda est relacionada con una de las mayores deciencias en el campo de la investigacin de las Bases de Datos de Restricciones, y la razn por la que ha tenido pocas de pocos avances, la dicultad de pasar de la teora a la prctica. De esto tambin se deriva la falta de estudios a nivel de optimizacin en la evaluacin de consultas. Pese a que las restricciones se utilizan como herramienta para representar relaciones entre valores, no se puede olvidar la importancia de los elementos que componen y relacionan las restricciones, las variables. Las propuestas en las BDdR han denido consultas sobre dichas variables? Cmo se inere informacin relativa a las variables y cmo relacionan distintas restricciones? Esta problemtica es otra de las asignaturas pendientes en las BDdR. Por ejemplo para casos ms complejos donde hay relacionadas muchas variables, como el ejemplo de los impuestos comentado con anterioridad, cmo se obtiene qu impuesto es el mnimo a pagar si esta informacin no est almacenada explcitamente?
1.4.
Objetivos de la Tesis
Restricciones que permita almacenar y consultar datos clsicos, restricciones y las variables que las forman, al igual que las bases de datos tradicionales tratan los datos clsicos. A este Gestor de Bases de Datos de Restricciones se le llamar
LORCDB, y para obtener este objetivo general se presentan distintos subobjetivos:
12
Captulo 1. Introduccin
tipo de dato Restriccin que tendr la capacidad de representar un nmero de datos innito de forma nita, permitiendo que la informacin sea ms completa y precisa. Esto signica que tanto la sintaxis como la semntica de las consultas tiene que cambiar para contemplar este nuevo tipo reejando su complejidad.
Redenir formalmente las operaciones del lgebra relacional para el tratamiento de restricciones. Existen cinco operaciones primitivas en el lgebra relacional (seleccin, proyeccin, producto cartesiano, unin y diferencia) con las que se pueden denir el resto de las operaciones sobre relaciones. Al tener un tipo de datos Restriccin, estas cinco operaciones y sus operadores tienen que ser analizadas y ampliadas.
Disear una arquitectura que permita almacenar restricciones, junto a la utilizacin de las tcnicas necesarias para la inferencia de conocimiento de la informacin de la base de datos. La arquitectura debe ser modular, fcilmente
congurable y que permita adaptar bases de datos ya existentes, facilitando su migracin. Para esto se utilizar un gestor de Bases de Datos Objeto-Relaciones, en este caso OracleT M 9.i. Para inferir el conocimiento la arquitectura se apoyar en dos familias de tcnicas: numricas y simblicas.
Analizar la complejidad computacional de la evaluacin de cada uno de los operadores, buscando soluciones ecientes. Para mejorar la eciencia en
la evaluacin de consultas, se proponen un conjunto de mejoras que se explicarn con detalle a lo largo de la tesis. Entre ellas caben destacar la indexacin de variables y restricciones, el etiquetado de restricciones por su tipo para su resolucin, el almacenamiento de envolventes de los dominios de las variables, y la denicin de heursticas que ayuden a la resolucin de problemas de restricciones.
Marco de la Tesis
13
el objetivo de mostrar cmo se utiliza para distintas aplicaciones, se usarn distintos ejemplos donde al arquitectura facilita el tratamiento de los datos, ejemplos econmicos, sistemas de informacin geogrca y diagnosis de fallos basada en modelos. La incorporacin de las BDdR no slo facilita el desarrollo de aplicaciones al incorporar gran parte de la lgica a la base de datos, tambin implica la mejora de las aplicaciones en s. En el caso de la diagnosis de fallos, muchas de sus fases han sido mejoradas gracias a la utilizacin de las BDdR y validado por la comunidad de diagnosis, ms all de la claras ventajas que ofrece tener almacenada la informacin de un sistema a nivel de persistencia y facilidad de acceso. Todos estos objetivos dan como resultado una arquitectura sobre Bases de Datos de Restricciones a la que se ha llamado Labelled Object-Relational Constraint
Database - LORCDB, intentando reejar algunas de las caractersticas de dicha arquitectura, como es la utilizacin de bases de datos objeto-relacionales, y el etiquetado de restricciones para facilitar la evaluacin de consultas.
1.5.
tigacin:
Marco de la Tesis
Desarrollo de herramientas basadas en modelos semicualitativos para el anlisis de sistemas dinmicos. Aplicacin a la supervisin, control y prediccin de comportamiento (CICYT DP I 2000 0666 C 02 02). Dentro del proyecto, la tarea relacionada con esta tesis consista en ampliar el tipo de conocimiento con el objetivo de realizar las consultas sobre sistemas semicualitativos tanto estticos como dinmicos. En este sentido, se propuso un lenguaje de consultas sobre las propiedades cualitativas del estacionario y del transitorio de los sistemas dinmicos semicualitativos sujetos a restricciones. Este proyecto dio como resultado un conjunto de herramienta para el tratamiento computacional de las bases de datos empricas, evitando informacin no relevante para su posterior tratamiento con tcnicas de aprendizaje supervisado.
14
Captulo 1. Introduccin
Automatizacin de la deteccin y diagnosis de fallos de sistemas estticos y dinmicos usando conocimiento semicualitativo (CICYT DP I 2003 07146 C 02 01). Este proyecto abarca la diagnosis basada en modelos con
tratamiento simblico de la informacin. La descripcin del sistema se presenta mediante un conjunto de restricciones, almacenadas en una Base de Datos de Restricciones. El tratamiento de la informacin utilizando como capa lgica las bases de datos, no slo mejoraron la persistencia, recuperacin y fcil composicin del los sistemas, tambin mejor muchas de las fases del proceso de diagnosis. Gracias a la utilizacin de las Bases de Datos de Restricciones en la diagnosis basada en modelos, se plantearon nuevas necesidades semnticas de las restricciones y su tratamiento.
Investigador principal: Rafael Martnez Gasca Perodo de duracin: 2003 2006 Deteccin automtica de fallos, diagnosis y tolerancia a fallos en sistemas con incertidumbre y distribuidos. (CICYT DP I 2006 15476 C 02 00). Este
proyecto aborda entre sus tareas el tratamiento de los datos relativos a la diagnosis cuando el sistema est distribuido, tanto semnticamente como estructuralmente. En este caso, las Bases de Datos de Restricciones tienen que ser ampliadas para el tratamiento de restricciones distribuidas con la complejidad que conlleva la dispersin de los datos.
Investigador principal: Rafael Martnez Gasca Perodo de duracin: 2006 2009 Asistente virtual interactivo: Informacin para orientacin laboral (AVIOL) Dentro de este proyecto se realizan las tareas relacionadas con el acceso a bases
de datos heterogeneas: 'Anlisis y diseo de KSB ( Knowledge Service Bus)', 'Desarrollo de KSB', 'Conguracin, parametrizacin y pruebas' y 'Puesta en marcha y simulacin'. Proyecto realizado en colaboracin con Sadiel S.A.
Investigadores responsables: Rafael Martnez Gasca Y M. Teresa Gmez Perodo de duracin: 2007 2008
Estructura de la Tesis
15
1.6.
Estructura de la Tesis
Captulo 2. Antecedentes de las Bases de Datos. Las bases de datos han ido
mejorado en los ltimos aos y estos avances han afectado claramente a las BDdR. En este captulo se analizan diferentes caractersticas y su relacin con las Bases de Datos de Restricciones, como los modelos lgicos, la naturaleza de la informacin y el dominio de las aplicaciones.
Captulo 4. Propuesta de Modelado para las Bases de Datos de Restricciones. Partiendo de la denicin original de Base de Datos de Restricciones,
se redene el concepto para ampliar la funcionalidad de las propuestas existentes. Esta redenicin conlleva la necesidad de ampliar la sintaxis y la semntica del lgebra relacional para restricciones, junto a las tcnicas utilizadas para la evaluacin de las consultas.
16
Captulo 1. Introduccin
18
que les puedan dar cabida. Esta ampliacin a tipos ms complejos, junto al crecimiento de la cantidad de informacin, ha originado sistemas ms complejos y por lo tanto ms difciles de evaluar.
2.1. Introduccin
Desde que en la dcada de los 60 se empezaron a desarrollar los primeros sistemas gestores de bases de datos hasta la actualidad, se han propuesto diferentes soluciones al problema del almacenamiento y gestin de la informacin. El continuo crecimiento de la cantidad de informacin y la aparicin de nuevos mbitos de trabajos y aplicaciones, han hecho que las necesidades de las bases de datos hayan crecido en concordancia. Dicha ampliacin sucesiva de las bases de datos, ha venido principalmente provocada por la bsqueda de nuevas soluciones que permitieran tener mayor capacidad expresiva para representar los datos. Una de las caractersticas de las bases de datos que permitirn su clasicacin es el
dominio de la aplicacin a la cual dan soporte, ya que dichos dominios pueden necesitar
menor o mayor expresividad. Con respecto a esta divisin, se analizarn algunos ejemplos como las bases de datos administrativas, de informacin geogrca, espacio-temporales, para diseo asistido por ordenador . . . La capacidad expresiva de datos que se pueden almacenar da origen a una clasicacin en funcin de la naturaleza de la informacin que almacena la base de datos:
Bases de Datos Extensivas: Son bases de datos donde la informacin est almacenada de forma explcita, y donde las consultas obtienen un subconjunto de la informacin almacenada directamente en la base de datos. Un ejemplo de informacin extensiva puede ser cmo se almacena una persona, mediante su edad, nombre, DNI . . .
Dominio de Aplicacin
19
Independientemente de que los datos se representen de forma intensiva o extensiva, se pueden utilizar distintos gestores de bases de datos para almacenarlos. El modelo lgico para almacenar la informacin ha ido avanzando desde los primitivos sistemas de archivos, pasando por las bases de datos relacionales, las orientadas a objetos y las objetorelacionales, dando origen a los distintos modelos lgicos de almacenamiento. En funcin del dominio de la aplicacin, se necesitar mayor o menor capacidad expresiva y ser necesario decidir cmo se representar la informacin (intensiva o extensiva) y qu modelo lgico se utilizar para su almacenamiento y gestin. Estas tres caractersticas (dominio de las aplicaciones, naturaleza de la informacin y modelo lgico) describirn cada base de datos, como se muestra en la gura 2.1, y que se detallarn a lo largo del captulo.
Modelo Lgico
Naturaleza de la Informacin
Dominio de la Aplicacin
2.2.
Dominio de Aplicacin
Los incesantes cambios en los tipos de datos que gestionan las bases de datos han sido el principal impulsor de nuevas tecnologas. Aunque las bases de datos tradicionales dan cabida a gran cantidad de aplicaciones, ya que tratan datos administrativos, existen tipos de datos que no son gestionados de forma natural. En las ltimas dcadas la complejidad de las aplicaciones ha ido creciendo, demandando nuevas soluciones ya que la utilizacin de las bases de datos relacionales clsicas no es suciente. En las prximas subsecciones se presentan algunos ejemplos de estos dominios especialmente relacionados con esta tesis.
20
Dominio de Aplicacin
21
Los sistemas suelen tener muchas dependencias topolgicas y funcionales, lo que signica que un cambio afectar a gran cantidad de objetos del sistema. El cambio del diseo puede conllevar cambios en otras partes del diseo y muy probables cambios en los programas que acceden a ellos, lo que resulta muy costoso de mantener. El problema de la ingeniera cooperativa es usual, donde distintos roles de usuarios pueden acceder al sistema teniendo que tomar decisiones parciales para obtener un resultado nal coherente.
La gestin de los datos del producto (Product Data Management) es un rea orientada a
controlar los datos relativos a los productos. Estos sistemas crean y controlan las relaciones entre los conjuntos de datos que denen un producto, almacenando dichas relaciones en una base de datos. Este tipo de aplicaciones son importantes para la gestin del ciclo de vida del producto, pudiendo contemplar desde los requisitos, especicaciones, planicacin de fabricacin o ensamblaje, y pruebas sobre el producto nal. La problemtica de ambas tecnologas es que deben intervenir en todo el proceso de fabricacin, desde la materia prima hasta el producto nal. Esto conlleva que todos los departamentos, pese a ser independientes, tienen que estar coordinados para obtener el producto nal, teniendo en cuenta tanto la caracterstica software como hardware del proceso.
22
Creacin de Datos
Las aplicaciones modernas de sistemas de informacin geogrca se basan en la digitalizacin de la informacin, para lo cual existen un conjunto de mtodos. La mayora de ellos transforman los mapas impresos a digitales utilizando diseo asistido por ordenador y referencias geogrcas.
Dominio de Aplicacin
23
Los distintos objetos que conforman un sistema geogrco deben estar relacionados, por ejemplo para establecer las correspondencias entre la informacin meteorolgica, obtenida mediante satlite, con las regiones polticas de un mapa. Para que un sistema geogrco tenga la capacidad de relacionar distintas capas de informacin, se utilizan referencias espaciales mediante variables (tpicamente x, y y z como coordenadas de longitud, latitud y altitud respectivamente). A su vez, esto le dar la posibilidad de trabajar con diferentes escalas.
Representacin de Datos
Los datos de los GIS representan objetos reales del mundo, como calles, terrenos o montaas, mediante datos digitales. Estos datos del mundo real pueden ser divididos en dos grupos: objetos discretos (como una casa) y reas continuas (como zonas de nubosidad). Existen dos mtodos para almacenar estos tipos de informacin: mediante mallas rectangulares o componentes geomtricos. Las mallas rectangulares (raster) consisten en celdas distribuidas mediante las y columnas, y donde cada celda lleva un valor discreto asociado, como un color, la cantidad de lluvia registrada o el tipo de terreno. Cada una de las celdas representar la informacin relativa a una porcin del mapa, que normalmente tiene forma cuadrada. Los componentes geomtricos son puntos, lneas y polgonos. Son especialmente frecuentes para representar las elevaciones del terrenos en sistemas en tres dimensiones, utilizando tcnicas de triangularizacin de supercies. Dichos componentes pueden a su vez tener informacin asociada como atributo del objeto En ambos tipos de modelos existen tanto ventajas como inconvenientes, y se utilizar una implementacin u otra en funcin de las caractersticas de la informacin que se almacena. En el caso de la representacin mediante mallas, generalmente se necesitar mucho mayor espacio de almacenamiento que en la utilizacin de componentes geomtricos. Sin embargo, el tamao utilizado por la malla es estable, no depende de la cantidad de objetos que tenga el sistema, no como ocurre en los sistemas con componentes geomtricos. A cambio, las implementaciones y las consultas con mallas de datos son mucho ms fciles que utilizando componentes geomtricos. De todas formas existen mtodos que transforman la informacin representada en un formato al otro.
24
Cuando se representan objetos que tambin tienen caractersticas espaciales y temporales, pero no exclusivamente ligadas a la informacin geogrca se hablar de bases de
induccin o por extraccin, ya que la salida de una consulta slo puede contener
informacin almacenada explcitamente en la base de datos. Las caractersticas de
cuyos impuestos superen los 30.000 euros signicar seleccionar las personas con
dicha caracterstica y devolver slo los campos relativos a su nombre y direccin. En este caso toda la informacin que se obtiene tras la consulta est almacenada en la base de datos tal cual, slo hay que realizar una extraccin de ella.
Naturaleza de la informacin
25
dos aviones se encuentran en algn instante de tiempo. Representar de forma explcita esta informacin conllevara almacenar la posicin de los aviones en todos los instantes de tiempo, lo cual sera muy costoso a nivel de recursos de espacio. Para evitar el almacenamiento explcito, las bases de datos intensivas pueden representar su informacin de dos maneras:
Valores Representativos: Almacenando un subconjunto de datos que describan a los restantes, por ejemplo un segmento sobre las variables x, y puede ser representada mediante los extremos que la denen, por ejemplo {x = 0, y = 1} y {x = 4, y = 9}, de forma que de estos valores se puede inferir la ecuacin que representa los datos restantes. Esta forma de almacenar la informacin, es la que se utiliza en los sistemas de informacin geogrca cuando los datos son representados mediante componentes geomtricos.
y 9}.
Existen bases de datos especcas con esta caracterstica de deduccin cuando la representacin de los datos es simblica. Para inferir la informacin necesaria, en funcin de la consulta, utilizan tcnicas de inferencia como la programacin lgica y la programacin con restricciones, que se describen a continuacin. Las bases de
26
datos que han desarrollado este tipo de inferencia son las Bases de Datos Deduc-
L0 : L1 , . . ., Ln .
donde cada Li es un literal expresado de la forma pi (t1 , . . . , tk ), siendo pi un predicado y tj para 1j k trminos, donde los trminos pueden ser constantes o variables. La parte de la izquierda de la clusula se llama cabecera o antecedente, y la derecha cuerpo o consecuente, y donde los literales se relacionan mediante el operador de conjuncin. Cuando el cuerpo de una clusula est vaco, se dene como hecho, en otro caso como
Naturaleza de la informacin
27
que no poseen las bases de datos relacionales y el lenguaje de consulta SQL-92, la cual fueron aadidas hasta SQL:1999.
Predicados BDE (Base de Datos Extensiva), que sern aquellos predicados almacenados como relaciones en una base de datos. Si p(a1 ,. . . , ak ) es un predicado DBE, existir una relacin P en la base de datos con la tupla (a1 ,. . . , ak ). Los predicados BDE tambin son conocidos como datos.
Predicados BDI (Base de Datos Intensiva), los cuales se denen mediante reglas. Un predicado BDI puede aparecer en la cabecera o en el cuerpo de una regla, mientras
que un predicado BDE slo puede aparecer en el cuerpo de las regla. Los predicados
BDI tambin pueden ser identicados con relaciones, llamadas relaciones BDI. Las relaciones BDI no son almacenadas explcitamente, estn ms bien relacionadas con
el concepto de vistas de las relaciones, y se obtienen con el compilador o intrprete de Datalog. Un ejemplo de programa Datalog es el siguiente, donde se representan los caminos entre los distintos nodos de un grafo:
camino(A, X ).
28
Es una forma diferente de representar entidades y relaciones a como se realiza en las bases de datos relacionales, ya que los predicados BDI no corresponden con una relacin tal como se conoce en las bases de datos relacionales, no siendo una transformacin directa. Tampoco tienen operaciones de agregados (MIN, MAX, AVG . . .) ni de agrupacin (GROUP BY) como tienen las bases de datos relacionales. La cabecera se deriva del cuerpo, pero no al contrario. Esto provoca que existan casos que necesitarn una doble inclusin de reglas para representar esta bidireccionalidad. Los cambios estructurales son muy costosos ya que no existe posibilidad de denir relaciones mediante referencias entre distintos predicados. Si por ejemplo la signatura de uno de los hechos cambia, todas las reglas que lo contienen deben ser modicadas. No estn reejados ninguno de los aspectos de integridad referencial para evitar inconsistencia en la informacin, como para el ejemplo sera denir arcos sobre vrtices que no existen. Esto es debido a que es necesario garantizar que cuando los hechos son actualizados no violen las reglas de integridad [116][109]. El objetivo es mantener la consistencia de la Base de Datos Deductiva, lo que signica que satisface un conjunto de restricciones de integridad. Las implementaciones que hay de Bases de Datos Deductivas son poco ecientes para problemas grandes, con muchas reglas y hechos. Pese a que la informacin puede ser parcialmente almacenada en bases de datos relacionales, la evaluacin de consultas es computacionalmente costosa ya que parte de la informacin tiene que ser inferida. Junto a la posibilidad de que exista una recursividad innita, por ejemplo si se aade un ciclo al grafo.
Naturaleza de la informacin
29
de ecuaciones e inecuaciones con operadores lgicos. Las restricciones permiten describir las relaciones entre los valores que pueden tomar un conjunto de variables denidas en un dominio. Una base de datos tradicional se puede representar mediante restricciones, ya que no sera ms que un conjunto de restricciones de igualdad o desigualdad de los atributos de dicha tupla. Esto hace que las BDdR sean una generalizacin del modelo relacional, donde las relaciones entre los atributos no tienen que ser exclusivamente de igualdad o desigualdad con un valor, sino que se pueden denir relaciones ms complejas entre dichos atributos. Dichas restricciones permiten almacenar de manera simblica los distintos valores que pueden tomar las variables en funcin de otras, lo que signica que esta informacin ser almacenada de manera intensiva. Para la inferencia de nueva informacin, las Bases de Datos de Restricciones se basan en la Programacin con Restricciones (CP, Constraint Programming) [42][118].
A(X, Y ) : X + Y > 0, B (X ), C (Y ).
donde X + Y > 0 es una restriccin y A(X, Y ), B (X ) y C (Y ) son predicados. La evaluacin de las consultas en las CDDB [73] se realiza de forma similar a como se hace en las Bases de Datos Deductivas con la programacin lgica, donde la consulta es evaluada en funcin de un objetivo. Para cumplir dicho objetivo y que su cuerpo sea satisfactible, se buscan todas las combinaciones de forma recursiva y utilizando backtracking. Las restricciones que se encuentren en esta bsqueda se irn aadiendo a un conjunto de
restricciones almacenadas. Cada vez que una nueva restriccin se aade a dicho conjunto,
se analiza si dicho conjunto contina siendo satisfactible, siguiendo con la bsqueda o
30
deshaciendo la decisin en funcin del resultado. Aunque en la prctica, la satisfactibilidad de las restricciones almacenadas a veces se analiza con algoritmos incompletos que no siempre detectan las inconsistencias [137]. Esta combinacin de hechos y restricciones ha hecho necesario la extensin del lgebra relacional para estos tipos de datos [147][1] y la ampliacin de los lenguajes de consultas [114].
31
su vez est compuesta de manera horizontal por tuplas (las), que contienen un valor para cada atributo. Pese a que la estructura lgica del modelo relacional es simple, su estructura terica es muy slida. Esta base terica permite tratar con la semntica de los datos y con los problemas de coherencia y redundancia, junto a un conjunto de reglas de normalizacin. El modelo relacional propone la independencia entre los datos junto a la manera de almacenarlos, y los programas que los usan. A partir de esa idea se desarroll el lenguaje de consulta SQL (Structured Query language), que ha llegado a ser un estndar de facto para los sistemas relacionales. El lenguaje SQL es un lenguaje declarativo que permite denir datos (DDL - Data Denition Language) y manipularlos (DML - Data Manipulation Language). Desde su creacin en 1986, sufri diversas ampliaciones hasta llegar a la ms utilizada hasta el momento, SQL:92 (SQL2), denida sobre bases de datos relacionales. El trmino de relacin R est denido basndose en su signicado matemtico. Siendo los conjuntos S1 , S2 , . . ., Sn no necesariamente distintos, R es un subconjunto del producto cartesiano S1 S2 . . . Sn , tambin llamado conjunto de n-tuplas. De esta forma se dene una base de datos relacional como una coleccin de relaciones siguiendo una forma normalizada [47] en la que cada relacin tiene un nombre distinto. Resumiendo, una tabla que represente una relacin de grado n tiene las siguientes propiedades: Cada la representa un tupla de grado n. El orden de las las no es relevante. Todas las tuplas (las) son distintas. El orden de las columnas es importante, y debe corresponder a un dominio determinado. Cada columna va asociada a una etiqueta y a un determinado dominio. Aunque sin duda los sistemas gestores de bases de datos relacionales marcaron el comienzo de las bases de datos en general, tienen algunas deciencias que se analizan a continuacin:
Sobrecarga semntica: El modelo relacional tiene una sola estructura para representar las entidades y las relaciones entre ellas, las tablas. No hay mecanismos para distinguir entre entidades y relaciones, o entre distintos tipos de relaciones, por lo que se dice que est semnticamente sobrecargado en ese aspecto.
32
33
Operaciones limitadas: El modelo relacional slo tiene un conjunto jo de operaciones, como son las operaciones de conjuntos y las orientadas a tuplas, no pudiendo especicar nuevas operaciones. Este problema se hace especialmente patente en los sistemas geogrcos, donde la informacin est representada mediante puntos, lneas y polgonos, y se necesitan denir operaciones para conocer la distancia, la interseccin, o el hecho de que un objeto est contenido dentro de otro.
34
un SGBDOO debe proporcionar funcionalidad de bases de datos, soportar el concepto de identidad de los objetos, establecer un mecanismo de encapsulacin, y soportar objetos con estados complejos. Aunque otros trabajos [86] lo denen como orientacin a objetos (tipos abstracto de datos, herencia e identidad de objetos) junto a las capacidades de las bases de datos. Pero estas deniciones dejan fuera algunas de las necesidades ms importantes en las bases de datos, que ms tarde fueron recogidas [120], como son la denicin de un lenguaje de consulta de alto nivel con capacidad de optimizacin de las consultas, control de concurrencia, soporte de objetos complejos e ndices para hacer los accesos ms ecientes. Otro de las caractersticas obligatorias que ms tarde se aadieron a los SGBDOO es la capacidad de denir nuevos tipos por el usuario, partiendo del conjunto de tipos predenidos por el sistema. Adems, no debe haber ninguna distincin de uso entre los tipos denidos por el sistema y los denidos por los usuarios. Entre algunas de las caractersticas especcas que deben cumplir los SGBDOO se encuentran:
El Lenguaje de Manipulacin de Datos debe ser computacionalmente completo: Por lo que dicho lenguaje debe ser de propsito general, idea que no
se llev al estndar hasta la aparicin de SQL:1999, que s es computacionalmente
35
completo al poder combinarse con otros lenguajes de programacin. En SQL:1999 (SQL3) se incluyeron adems algunas caractersticas como la ampliacin de las expresiones en las condiciones de la consultas, conceptos de bases de datos activas con la denicin de triggers, consultas recursivas, junto a las caractersticas mencionadas de la orientacin a objetos.
El modelo de objetos
El modelo de objetos ODMG (Object Data Management System) soporta el concepto de bases de datos como un rea de almacenamiento de objetos persistentes sobre un conjunto de tipos determinados, donde una la de una relacin puede ser una instancia de un objeto. El modelo de datos permite almacenar objetos, haciendo posible que mltiples usuarios y aplicaciones los compartan. Se dene como un superconjunto del modelo de objetos que especica las siguientes primitivas bsicas de modelado:
36
Objetos y literales (objetos inmutables que no cambian en el tiempo, como Integer, Float, Boolean o Character), donde slo los objetos tienen identicadores unvocos y los literales se comparan por su contenido. A su vez, los objetos y literales pueden clasicarse en diferentes tipos (atmicos, colecciones y tipos estructurados). El comportamiento se dene mediante un conjunto de operaciones que pueden realizarse sobre o por el objeto. El estado o vida del objeto se dene mediante los valores que el objeto tiene para una serie de propiedades, que pueden ser atributos o una relacin entre varios objetos. Los literales no tienen estado.
SQL-92 para expresar consultas. Al igual que SQL, OQL se puede utilizar como lenguaje
autnomo y como lenguaje embebido dentro de otros lenguajes procedimentales. Dicho lenguaje extiende nociones de la orientacin a objetos como objetos complejos, identidad de objetos, expresiones de camino con la notacin '.' o '', polimorsmo e invocacin de operaciones, e incluso proporcionando primitivas de alto nivel para tratar con conjuntos de objetos. Tambin proporciona primitivas para tratar con estructuras, listas y arrays tratando a estos constructores con la misma eciencia. El resultado de una consulta cualquiera, es de un tipo que pertenece al modelo ODMG y puede consultarse de nuevo, por lo que cumple la propiedad del cierre transitivo. Es un lenguaje de consulta sencillo que permite acceder de forma fcil a un SGBDOO, aunque no es computacionalmente
37
completo, ya que no proporciona operadores explcitos de actualizacin; ms bien invoca operaciones denidas sobre los objetos para este propsito, y as no infringe la semntica del modelo, en la cual por denicin los objetos se manejan mediante los mtodos denidos sobre ellos. Sin duda alguna, los SGBDOO tienen tanto ventajas como inconvenientes. Entre sus ventajas se pueden destacar: Capacidad de ampliacin, ya que permite que el usuario dena nuevos tipos que se adapten a sus necesidades. A esto hay que aadirle las caractersticas propias de la orientacin a objetos como la herencia, lo que facilita la reusabilidad de los tipos denidos. La orientacin a objetos permite encapsular informacin y comportamiento, por lo que tiene mayor capacidad de modelado. Esta capacidad facilita su adaptacin a aplicaciones complejas, como las que se han presentado en la seccin anterior. Existencia de un lenguaje de consulta ms expresivo, gracias a la navegabilidad existente entre objetos. Esta caracterstica ayuda a paliar la deciencia en los SGBDR en materia a consultas recursivas. Eliminacin de la no correspondencia de impedancias de los SGBDR, eliminando muchas de las deciencias de unir los lenguajes declarativos como SQL y los imperativos como JavaT M . Entre sus inconvenientes se encuentran: Carencia de un modelo de datos y de un lenguaje de consulta orientado a objetos con base terica aceptada de forma genrica por la comunidad de SGBDOO, como s tienen los SGBDR con SQL. Aunque ODMG ha hecho una importante aportacin en este aspecto, sin duda no tiene el grado de aceptacin del modelo relacional. La relacin entre optimizacin de consultas y la encapsulacin, ya que dicha encapsulacin de objetos provoca dicultades en la evaluacin de las consultas. Complejidad, ya que el tratamiento de referencias entre objetos, las transacciones de larga duracin y la gestin de versiones, son ms complejas que en el caso de las bases de datos relacionales. Una de las caractersticas de esta complejidad, radica
38
en la necesidad de serializar los objetos para que sean almacenados de una manera persistente. Una metfora clara que representa esta complejidad podra ser establecer el smil con un coche que para guardarse en un garaje hay que desmontarlo, y cuando se vuelva a necesitar se tendr que montarlo de nuevo. Estas acciones de 'desmontado' y 'montado' son las necesarias en los objetos para que se almacenen y hagan persistentes en los soportes fsicos. Que el usuario pueda denir nuevos datos es sin duda alguna un salto cuantitativo, pero en el caso de bases de datos remotas, como es el caso de las existentes para aplicaciones web, signicar que la funcionalidad no pertenece a la base de datos, sino al usuario.
39
Sistema de Archivos
Figura 2.2: El mundo de las bases de datos segn Stonebraker [1996] Entre las ventajas de los SGBDOR se puede destacar: Reutilizacin y comparticin, ya que surge la capacidad de ampliar los servicios del SGBD para implementar funcionalidad estndar de manera central, en lugar de codicar dicha funcionalidad en cada aplicacin. Esto es muy utilizado en los sistemas geogrcos, que necesitan una serie de funciones asociadas que calculen la distancia entre objetos, operaciones de inclusin o solapamientos. De esta forma no se tiene que denir la funcionalidad en cada aplicacin sino slo en el servidor, aumentando la productividad tanto del desarrollador como del usuario nal. La adaptacin de las aplicaciones relacionales a las objeto-relacionales, ya que los SGBDOR pueden introducirse de forma gradual. SQL:2003 es compatible con SQL:92, por lo que la transformacin de un sistema ya existente se puede realizar por pasos. Los SGBDOR tienen la capacidad de almacenar instancias de clases y atributos clsicos relacionales, eso ofrece la posibilidad de escoger en funcin de las necesidades de la aplicacin, cul es la implementacin ms adecuada. En los SGBDOO toda la informacin es almacenada como objetos, por lo que se gana capacidad expresiva pero con deciencias en la optimizacin de la evaluacin de consultas. Por otro lado, en los SGBDR todos los datos son univaluados, sus dominios son atmicos, con un estructura ja y nica pero encontrar las relaciones entre los datos es ms fcil y eciente por su simplicidad. Vistas estas caractersticas, sera ms apropiado utilizar
40
en funcin de las necesidades un modelo u otro de representacin, seleccionando en cada caso el necesario. De esta forma, ambos modelos podran convivir en el mismo gestor de base de datos. Aunque obviamente tiene algunas desventajas: La complejidad y el incremento de coste, ya que se pierde la simplicidad del modelo relacional. Los SGBDOR no aaden todos los valores de la orientacin a objetos, ya que tan solo contemplan el modelo de objetos como una extensin del modelo relacional al que se le aade complejidad. La 'convivencia' de datos puramente relacionales y objetos hace que se pierda la homogeneidad de acceso a la informacin. Esta caracterstica hace que el tratamiento de la informacin dependa de su naturaleza, y por lo tanto aumente la complejidad del desarrollo de los SGBDOR.
41
SGBDOO ODMG-2.0 Fcil para los programadores, no tanto para el usuario nal
SGBDOR SQL:2003 Similar a los SGBDR, aunque con algunas extensiones confusas Independencia entre datos y aplicacin Denicin de SQL3 basado en SQL pero con orient. a objetos Facilita la denicin de tipo complejos y relaciones Limitado sobre todo para los nuevos tipos de datos
Los objetos son una forma natural de modelar, extensible y adaptable Extensin de SQL con la creacin de OQL adaptado a la orient. a objetos
Muy Buena
Tabla 2.1: Una comparacin entre Sistemas Gestores de Bases de Datos (I)
2.5.
Tras analizar las tres caractersticas que denen una base de datos (dominio de la aplicacin, naturaleza de la informacin y modelo lgico), en la gura 2.3 se resumen grcamente. La combinacin de estas tres caractersticas describir una base de datos. Se pueden encontrar innidad de casos donde estas caractersticas estn combinadas, presentados en la gura 2.4, como por ejemplo: No slo son los ejemplos de aplicaciones administrativas los que almacenan informacin de manera extensiva, tambin son muy utilizadas en el rea de investigacin de Data Mining [74][136] utilizando un SGBDR.
42
Tabla 2.2: Una comparacin entre Sistemas Gestores de Bases de Datos (II)
Bases de Datos Extensivas Administrativos CAD GIS CIM Espacio temporal Bases de Datos Intensivas (DDB, CDB, CDDB)
CAM
CASE
Naturaleza de la informacin
Sistema de Archivos
BASE DE DATOS
Figura 2.3: Divisin detallada de una base de datos por caractersticas En el trabajo [140] se presenta una combinacin donde el dominio de la aplicacin es el tratamiento de imgenes, la informacin es almacenada de manera intensiva y el modelo lgico de almacenamiento un SGBDR. Este ejemplo es relevante ya que pese a utilizar el modelo relacional, diseado originalmente para informacin extensiva, se puede inferir informacin no almacenada de manera explcita. Algunas soluciones para el dominio de los sistemas de informacin geogrca han utilizado las Bases de Datos Deductivas de Restricciones [1], basndose en cheros Datalog. Las Bases de Datos Deductivas (intensivas) y los SGBDOO tambin han sido analizados [104], con ejemplos de aplicaciones como la planicacin de horarios [25].
43
El sistema MLPQ [133] dene una solucin para sistemas de informacin geogrca utilizando Bases de Datos de Restricciones, cuya informacin ser intensiva pero almacenada en un sistema de archivos. El sistema CCUBE [17] presenta una solucin a sistemas espacio-temporales utilizando Bases de Datos de Restricciones cuyo soporte lgico son los SGBDOO. Ante las emergentes aplicaciones relacionadas con Internet, nuevos tipos de datos han tenido que ser tratados, como es el caso de XML. Esto ha generado nuevas necesidades como la analizada en [92] y [119], donde se almacenan documentos XML de manera extensiva utilizando SGBDOR.
Naturaleza de la Informacin
Sist.Infor. Geogrfica [1] Planificacin [25] MLPQ(GIS) [133] Imgenes [140] Data Mining [74][136] XML [92][119] CCUBE (EspacioTemporal)[17] LORCDB
Extensivo Archivos
SGBDR
SGBDOO
SGBDOR
Modelo Lgico
Figura 2.4: Ejemplos de propuestas combinando caractersticas de las Bases de Datos Estos ejemplos muestran la independencia de estas tres caractersticas que se han denido, aunque sin duda hay combinaciones que son de mayor uso que otras. Como se ha presentado, en las bases de datos se pueden destacar dos necesidades bsicas: la bsqueda de nuevas tecnologas para gestionar tipos ms complejos de datos; y la necesidad de mejorar la evaluacin de las consultas, ya que la cantidad de datos a tratar es cada vez mayor y cualquier propuesta tiene que contemplar la eciencia de la evaluacin de sus consultas. Para cubrir estas necesidades, los aspectos analizados en esta tesis para las distintas caractersticas de las base de datos son:
44
dependiente del dominio de la aplicacin, aunque se utilizar la diagnosis de fallos basada en modelos como un tipo de CAD/CAM y los sistemas de informacin geogrca como ejemplos por su importancia en el mercado.
2.6. Resumen
Para describir una base de datos es necesario contemplar tres caractersticas: El dominio de las aplicaciones que utilizan y gestionan las bases de datos, la naturaleza de la informacin a almacenar, y el modelo lgico de almacenamiento. En este captulo se han presentado los detalles de cada una de estas familias, y cmo sus distintas combinaciones dan origen a las distintas bases de datos. Ante la creciente complejidad de los dominios de las aplicaciones, las dems caractersticas han tenido que ir avanzando de forma anloga para darles soporte. Los ejemplos de aplicaciones mostradas en este captulo, entre
Resumen
45
otras, necesitan buscar soluciones especcas a sus problemticas, no pudiendo utilizar soluciones genricas para almacenar sus datos. Esto signica que cada aplicacin, debido a tener datos muy complejos, tendr una base de datos con una lgica especca. Las propuestas de sistemas gestores de bases de datos, han ido acercando su funcionalidad a estas necesidades, dando la posibilidad al usuario a ampliar los tipos de datos y sus operaciones, teniendo a veces que apoyarse en representaciones intensivas de la informacin. Esto signica que cada problema particular, que no puede ser representado de forma exclusivamente extensiva, tendr que desarrollar una solucin adaptada a sus necesidades. El objetivo de esta tesis es denir y desarrollar una solucin genrica para estos datos, de forma que se pudiera utilizar el mismo gestor de base de datos, pudiendo dale distinta funcionalidad con menor coste individual en cada aplicacin. Para ello se utilizarn los SGBDOR junto a funcionalidad basada en la programacin con restricciones. De esta forma, todas las aplicaciones cuyos datos puedan ser descritos con ciertas restricciones, descritas en los sucesivos captulos, no tendrn que disear una funcionalidad especca independiente del gestor de bases de datos que utilicen, estar incluida en el gestor LORCDB.
3.1.
Introduccin
La idea que dio origen al desarrollo de las BDdR surge de la necesidad de una nueva forma de almacenar datos que no toman valores nicos, sino que dependen de parmetros, variables, o vienen denidos por relaciones entre variables mediante ecuaciones o inecuaciones matemticas. La representacin de estos datos de manera extensiva podra crear bases de datos innitas, por ejemplo al representar un espacio continuo, por lo que hay
48
que buscar alternativas para almacenar los datos de forma intensiva. Una posibilidad es discretizar los datos, pero eso podra conllevar la creacin de bases de datos mucho ms grandes a la vez que prdida de informacin. El crecimiento de las bases de datos tambin inuye en las operaciones de consulta y modicacin, ya que tendran que ser analizados y modicados muchos ms registros que si la informacin estuviera almacenada de manera ms compacta. Sin embargo, si se tuviera la capacidad de representar y almacenar dichas ecuaciones, inecuaciones e incluso combinaciones de ellas, la informacin sera completa y el espacio necesario para almacenarla muy pequeo debido a la compresin de la informacin. Las BDdR abordan la solucin de este problema tratando la informacin no de forma discreta, sino como un conjunto de restricciones sobre variables denidas sobre unos determinados dominios. El reto de las BDdR no acaba en la simple necesidad de almacenar la informacin de forma intensiva, va ms all, ya que se necesita tratar esa informacin deniendo un lenguaje de consulta, y una metodologa que ofrezca una manera eciente de evaluar las consultas sobre los datos.
49
x a1 a2 a3
y b1 b2 b3
( x = a1 y = b1 ) ( x = a2 y = b2 ) ( x = a3 y = b3 )
Figura 3.1: Ejemplo de representacin de un conjunto de tuplas como una restriccin con Restricciones. Un ejemplo de equivalencia entre un conjunto de tuplas de una relacin y una restriccin es el presentado en [94], mostrado en la gura 3.1. En sus inicios, las BDdR se crearon para representar problemas donde se involucran datos espaciales, temporales o ambos a la vez [9], aunque su capacidad descriptiva y de inferencia puede ser extendida a cualquier dominio cuya informacin se pueda representar mediante restricciones. Al utilizar originalmente este dominio de aplicacin, las propuestas se centraron en las restricciones lineales. Las restricciones lineales permiten describir problemas espacio-temporales de una forma aproximada, siendo ms fciles de evaluar las consultas a nivel de coste computacional que utilizando restricciones polinmicas. Sin embargo, las restricciones polinmicas son ms genricas, teniendo mayor capacidad expresiva. Las BDdR fueron denidas en base a la lgica y modelo de primer orden, tanto para la descripcin de restricciones como para la evaluacin de las consultas. El fundamento de las BDdR se apoya en la dualidad de representar un conjunto de datos mediante una restriccin (frmula) sobre un conjunto de variables libres {x1 , . . . , xm }, o representarlos como un conjunto de tuplas formadas por atributos (a1 , . . . , an ). Esto proporciona gran poder declarativo y expresivo, como se muestra en la gura 3.2, donde se describe la equivalencia entre una restriccin y su almacenamiento en una base de datos relacional, en este caso una restriccin lineal de igualdad en el dominio de los naturales. Este es un caso, como muchos otros mostrados en el captulo 1 de [130], donde se generara una bases de datos relacional innita si la informacin no se representara mediante restricciones.
50
a 1 1 1 2 3 4 5 ...
b 1 2 3 1 1 1 1 ...
Figura 3.2: Ejemplo de representacin de una restriccin en una base de datos relacional
3.3. Formalizaciones
Las primeras deniciones relativas a BDdR se apoyaron en la lgica de primer orden, estableciendo un smil entre el modelo lgico y las restricciones. En este apartado se presentan algunos formalismos utilizados en el rea de las BDdR.
Denicin 3.2: Trminos. La lgica de primer orden se basa en la utilizacin de trminos, que pueden ser variables, constantes pertenecientes al conjunto C , o una expresin de la forma f (t1 , . . . , tn ), donde f F y t1 , . . . , tn son a su vez trminos.
Formalizaciones
51
Denicin 3.3: Frmula atmica. Una frmula atmica t puede venir representada
mediante un trmino t o por un predicado cuyos parmetros son trminos p(t1 , . . . , tn ).
Denicin 3.4: Frmula. Una frmula puede ser una frmula atmica, o una combinacin lgica de frmulas atmicas. Por ejemplo, si y son frmulas, entonces (
Denicin 3.5: Estructura. La idea de estructura es aadir un dominio a un vocabulario, lo que implicar aadirlo a las frmulas atmicas y a las frmulas genricas. Para un conjunto de valores (U ) que denen el dominio, y un vocabulario , una -estructura
M en U se dene mediante:
La asignacin de cada f F de aridad n a la funcin f M : U n U , lo que signica que para todos los valores de entrada de f , pertenecientes a U , se obtiene un valor de salida tambin perteneciente al dominio U . Para cada predicado p P , los parmetros de p de aridad n pertenecen a U , lo que se expresa de la forma P M U n . Toda constante c C tiene que pertenecer a U representado de la forma cM U .
Denicin 3.6: Restriccin. Sea un vocabulario, una restriccin sobre (restriccin) es una frmula atmica de primer orden sobre o la negacin de una frmula atmica. El poder de representacin de las restricciones radica en su capacidad de representar de una forma compacta un conjunto de datos extensivos, a los que se denomina Denible
con Restricciones (Denability with Constraints). Tambin es posible el proceso inverso, extender una restriccin, lo que signica describir los valores que hacen consistente la
restriccin.
52
Restricciones lineales, son restricciones sobre = ({+}, {0, 1}, {<}). Cada restriccin corresponde con una condicin de la forma p > 0 y p 0, donde p es una funcin lineal de la forma a1 x1 + . . . + aj xj + a0 , ai representa coecientes y xi variables. Estas restricciones son normalmente interpretadas sobre las estructuras
Restricciones
({+, }, {0, 1}, {<}). Cada restriccin corresponde a una condicin de la forma p > 0 o p 0, donde p es un polinomio. Estas restricciones son normalmente interpretadas sobre las estructuras Rpol = (I R, ), Qpol = (Q, ), Zpol = (Z, ).
Formalizaciones
53
(a, d), (c, b), (c, d)). En un modelo de BDdR dicho rectngulo se puede modelar mediante una relacin ternaria R(z, x, y ), que puede ser interpretada como que (x, y) es un punto perteneciente al rectngulo de nombre z . El rectngulo ahora se puede almacenar en una nica tupla de la forma:
(z = n) (a x c) (b y d)
El primer modelo de BDdR fue diseado como una extensin del modelo relacional, donde las tuplas son denidas como conjunciones de frmulas atmicas, y las relaciones como disyunciones entre tuplas. Estas deniciones fueron presentadas en los trabajos [84] y [93], de donde se pueden resaltar las siguientes deniciones:
Denicin 3.8: Modelo de Base de Datos de Restricciones. Dado un vocabulario . Una k-tupla restriccin es una tupla de k variables x1 , . . . , xk sobre . De manera que una k-tupla restriccin ser una combinacin de restricciones con el operador de conjuncin de la forma 1 . . . N , donde cada i , para 1 i N , es una restriccin sobre , y las variables de cada i pertenecen a {x1 , . . . , xk }. Una relacin restrictiva de aridad k sobre , es un conjunto nito r = {1 , . . . , M }, donde cada i para 1 i M , es una k-tupla restriccin sobre las variables
54
Denicin 3.9: Interpretacin de Relaciones Restrictivas. Sea un vocabulario, y M = (U , ) una estructura (un vocabulario sobre un dominio U ). Sea r una relacin restrictiva de aridad k sobre , y r (x1 , . . . , xk ) la frmula correspondiente a la relacin r. Entonces r representa todos los puntos a1 , . . . , ak tales que (a1 , . . . , ak ) es satisfactible en M. Lo que se representa acorde con la denicin 3.7:
{(a1 , . . . , ak ) U k | M |= r (a1 , . . . , ak )}
Denicin 3.11: Base de Datos Denible con Restricciones. Cualquier coleccin nita de relaciones no denidas con restricciones (unrestricted relations) se le llama
Relacin sin Restricciones/ extendida Relacin sin Restricciones/ extendida Relacin sin Restricciones/ extendida
Relacin de Restricciones
Relacin de Restricciones
Extender
Figura 3.3: Comparacin entre las Bases de Datos Extensivas y las BDdR En la gura 3.3 se muestran las ideas de las equivalencias entre las bases de datos no descritas con restricciones y las BDdR. Las bases de datos sin restricciones o extensivas, son aquellas donde la informacin est almacenada mediante todos los puntos que la representan, como es el caso de las bases de datos relacionales clsicas, con la diferencia
Formalizaciones
55
de que tericamente pueden almacenar innitos puntos. Si estas relaciones pueden ser representadas como restricciones (denibles mediante restricciones), se podr representar como una BDdR. Del mismo modo, las BDdR representan un conjunto de puntos de manera simblica, cuya transformacin conllevara la extensin de las relaciones y por consiguiente de la base de datos.
(y = 2x (x = y )) y (1 x + y )
La frmula DNF (Disjunctive Normal Form) de s ser:
s (x, y ) (y = 2x (x = y )) (1 x + y ).
Donde s (x, y ) describe el conjunto de puntos que forman cada una de las restricciones en el espacio bidimensional (x, y).
(x, y), (1, 2) y (3, 4). Dichas tuplas son equivalentes a las restricciones x = 1 y = 2
y x = 3 y = 4. Por lo tanto q corresponde a la frmula q (x = 1 y = 2)
(x = 3 y = 4).
En general, todas las relaciones nitas de aridad k en el conjunto D con n tuplas
i ai 1 , . . . , ak para i = 1, . . . , n pueden representarse como una relacin restrictiva de igualdad
mediante la frmula:
n i=1 ((x1
i = ai 1 ) . . . (xk = ak ))
56
(x y y 6 x y 0), (x 3 y y 9 x x 0) y (x2 + y 2 9)
La frmula DNF correspondiente ser:
t (x, y ) (x y y 6 x y 0) (x 3 y y 9 x x 0) (x2 + y 2 9)
La gura 3.4 presenta de forma grca el conjunto de restricciones denida por la frmula t , la cual representa un conjunto innito de puntos en el espacio bidimensional
(x, y).
y
57
Los algoritmos de eliminacin de cuanticadores [101][152][98][145] transforman frmulas con cuanticadores en otras equivalentes sin dichos cuanticadores. La operacin de proyeccin sobre las variables de una restriccin conllevan dicha eliminacin de cuanticadores, donde un ejemplo muy utilizado es:
(a, b, c) x(ax2 + bx + c > 0), donde a, b y c son parmetros (variables libres) y x es la variable cuanticada a eliminar.
Tras la eliminacin de x se obtendr la frmula equivalente a :
y = 3x + 2
para eliminar la variable x obteniendo slo y (x(y = 3x + 2)), la frmula no puede ser expresada sin la variable x, a menos que se incluyan otras funciones en el vocabulario, en este caso:
y mod 3 = 2
Una estructura M admite eliminacin de cuanticadores efectivos, si para todas las frmulas (x1 , . . . , xn ) en la estructura M, existe (y puede ser encontrada ecientemente) una frmula libre de cuanticadores (x1 , . . . , xn ) tal que satisfagan M, lo que es equivalente a decir que:
58
las consultas sobre la base de datos, pudiendo diferenciar una relacin de otra. De esta forma, en las BDdR los Esquemas son equivalentes a lo que son las relaciones para las bases de datos relacionales. Cuando nos enfrentamos a las consultas a BDdR, hay que tener en cuenta que a nivel conceptual son una representacin simblica de bases de datos extensivas, por lo que la consulta se complica. Esto signica que se pueden abordar de dos formas: a nivel conceptual sobre bases de datos extensivas, o a nivel de representacin sobre las propias restricciones. Una consulta a nivel de representacin ser consistente slo si corresponde con una consulta en el nivel conceptual, como se muestra en la gura 3.5. Conceptualmente, las BDdR son representaciones simblicas de lo que podan ser bases de datos relacionales. De esta forma, se puede pensar en una consulta desde dos puntos de vista: en el nivel conceptual como una transformacin sobre una base de datos relacional, donde se obtienen restricciones consultando por datos no restrictivos; o en el nivel de representacin como una transformacin de las restricciones (consulta sobre restricciones), donde se obtienen restricciones como salida. Una consulta en el nivel de representacin se puede realizar slo si corresponde con una consulta en el nivel conceptual.
Consulta sobre Restricciones D Q Q(D)
Figura 3.5: Consistencia en las consultas a restricciones Un ejemplo de consulta presentada en [44] es la siguiente, donde un esquema se representa mediante la relacin T de aridad 3 (x1 , x2 , x3 ). La base de datos extendida o sin restricciones consiste en un conjunto de tuplas en I R3 , que puede ser representada como la unin nita de un conjunto de inecuaciones polinmicas en una BDdR. Sean las restricciones del esquema T de una base de datos D, representado de la forma D(T ) = {1 , . . ., M }. Para realizar una consulta Q de aridad 2, donde slo se quieren obtener las variables x1 y x2 , se escribir una frmula de forma:
59
x3 (1 . . . M )
Ya que (I R; {+, }, {0, 1}, {<}) admite la eliminacin de cuanticadores, se puede obtener como una frmula en funcin de x1 y x2 tras eliminar la variable x3 . se representar en DNF, con una frmula de la forma:
1 . . . l
donde dicha frmula ser el resultado de evaluar la consulta Q sobre la base de datos
Clausura: Es una propiedad que poseen los lenguajes cuya lgebra relacional es
cerrada, lo que signica que la salida de la evaluacin de una consulta puede ser utilizada como relacin de entrada para otra consulta. Esto signica que Q(D):=D', o lo que es lo mismo, que la salida de una consulta restrictiva aplicada a una relacin restrictiva, debe ser tambin una relacin restrictiva. La propiedad de clausura es muy til, ya que se puede descomponer una determinada consulta, facilitando su escritura, en consultas ms simples anidadas.
60
Consistencia: Sea D una BDdR y D0 una base de datos extendida donde D representa a D0 . Una consulta sobre restricciones Q se le denomina consistente si existe una consulta no restrictiva Q0 tal que Q(D) es denible si y slo si Q0 (D0 ) es denible y Q(D) representa a Q0 (D0 ). Teniendo en cuenta que una consulta es una frmula en la lgica apropiada, donde tanto la entrada como la salida son un conjunto de relaciones, se puede utilizar para el estudio de las BDdR dos lenguajes diferentes de consulta, el lenguaje del lgebra relacional y el clculo relacional. Aunque ambos son equivalentes, utilizaremos el lgebra relacional por ser procedimental en lugar de declarativo, como es el clculo relacional. El lgebra relacional describe cmo se obtiene una relacin partiendo de una o varias de entrada, especicndose de forma explcita un cierto orden, lo que implica una cierta estrategia al evaluar la consulta. Por otro lado, el clculo relacional especica qu hay que extraer, derivando de una rama de la lgica simblica denominada clculo de predicados, donde un predicado es una funcin booleana con argumentos. En esta tesis se utiliza el lgebra relacional ya que permite establecer una equivalencia directa de cada una de las operaciones con las del lenguaje de consulta SQL, junto a la posibilidad de describir el orden en el que se evaluarn las distintas partes de las operaciones sobre una relacin, con el objetivo de optimizar la evaluacin de consultas.
61
Cada relacin R SC es una Expresin del lgebra Relacional. Si e1 y e2 son Expresiones del lgebra Relacional de aridad k1 y k2 respectivamente, el producto cartesiano (e1 e2 ) es una Expresin del lgebra Relacional de aridad
k1 +k2 .
Las Expresiones del lgebra Relacional, involucradas en las operaciones de unin y diferencia, tienen que tener la misma aridad, y con ambas se obtiene una Expresin
p.
Si e es una Expresin del lgebra Relacional de aridad k , y es una frmula libre de cuanticadores sobre tambin de aridad k (con las variables x1 , . . ., xk ), entonces la seleccin (e) es una Expresin del lgebra Relacional de aridad k . Una vez denida la aridad de las operaciones, a continuacin se muestra la equivalencia entre las bases de datos extensivas D y las consultas no restrictivas Qe , en comparacin con la BDdR D y las consultas sobre restricciones Qe para las distintas Expresiones del
{x1 = x1 }, que representa de forma simblica que x1 puede tomar cualquier valor
del dominio. Si e es R SC (una relacin de la base de datos), entonces Qe (D) := D(R) que representa todas las tuplas de los valores que pueden tomar las variables de la relacin R, y Qe (D) := D (R) que representa las restricciones que forman las relacin
R.
Si e es (e1 e2 ), entonces Qe (D) := Qe1 (D)Qe2 (D). Siendo las variables de e1 {x1 , . . ., xk1 } y las de e2 {x1 , . . ., xk2 }, se renombran las variables de e2 usadas en
Qe2 (D ) como xk1 +1 , . . ., xk1 +k2 respectivamente. Por lo tanto: Qe (D ) := { } | Qe1 (D ), Qe2 (D )
62
ya que cada restriccin y formarn una misma tupla y por lo tanto tendrn una relacin de conjuncin entre ellas. Si e es (e1 e2 ), entonces Qe (D) := Qe1 (D)Qe2 (D), y Qe (D ) := Qe1 (D )Qe2 (D ), donde la relacin entre las restricciones de Qe1 (D ) y Qe2 (D ) es de disyuncin.
Qe1 (D )
) (
Qe2 (D )
Qe1 (D )
) (
Qe2 (D )
Poniendo en DNF, 1 . . . l , entonces Qe (D ) := {1 , . . . , l }. Si e es i1 ,...,ip (e ) con e de aridad k y donde i1 , . . . , ip {1, . . . , k }, esto implica que
(x1 , . . . , xk ) y1 , . . . , yk
p j =1
xj = yij
se genera una nueva frmula libre de cuanticadores , donde se han eliminado las variables ym y1 , . . . , yk que no pertenecen a las p variables de la proyeccin. Dicha frmula ser equivalente a pero expresada en DNF tal que 1 . . . l , de forma que Qe (D ) := {1 , . . . , l } Si e es (e ), entonces Qe (D) := {a |a Qe (D) y M |= ( a)}. En este caso a representa los vectores de la misma aridad que e con los valores de las variables que cumplen la condicin . Suponiendo que la frmula correspondiente a Qe (D ) es , poniendo en DNF obtenemos 1 . . . l , de manera que Qe (D ) :=
{ 1 , . . . , l }
De esta forma, para cada Expresin del lgebra Relacional e, la consulta sobre restricciones Qe representa la consulta para informacin extensiva Qe .
63
D concreta denida para una -estructura M, donde sus relaciones restrictivas expresadas en DNF son r1 , . . . , rn , el primer paso de la evaluacin ser la eliminacin de cuanticadores. Tras la eliminacin de cuanticadores, la salida de la consulta puede ser un conjunto innito de puntos con m dimensiones que satisfacen la frmula (a1 , . . . , am ), o una representacin mediante restricciones en DNF. La representacin de los valores (a1 , . . . , am ) que satisfacen de manera simblica, puede denir un nuevo conjunto de relaciones denidas sobre M que a su vez pueden ser entrada de otra consulta (cumplen la propiedad de clausura).
3.5.
Existen muchos prototipos e implementaciones para BDdR, cuyas principales diferencias radican en los modelos lgicos que utilizan para almacenar las restricciones, si tienen o no capacidad de inferencia basada en la Programacin Lgica, los tipos de restricciones con las que trabajan, y cmo evalan las consultas. A continuacin se analizan las aportaciones ms relevantes.
64
Eliminacin de cuantificadores
Restricciones en (r1/R1,,rn/Rn)
Condicin de Clausura
Restricciones en
3.5.1. DISCO
DISCO [24][129] (Datalog with Integer Set COnstraints) es un sistema de BDdR basado en la Programacin Lgica con Restricciones, el cual implementa una reduccin de Datalog para restricciones booleanas cuyas variables estn establecidas en el dominio de los enteros, pudiendo denir el rango tanto de forma nita como innita. Como se explica en el capitulo 2, Datalog es un subconjunto de Prolog donde se denen reglas declarativamente, junto con un conjunto de relaciones existentes que se tratan como literales del lenguaje. Como los lenguajes declarativos, Datalog dene lo que un programa desea lograr, en vez de especicar los detalles de cmo lograrlo, siendo una mquina de inferencia la que deduce hechos nuevos a partir de las reglas. DISCO aade a Datalog la posibilidad de incluir ciertas restricciones, que se describen a continuacin, en el cuerpo de las clusulas.
Sintaxis
La sintaxis de DISCO es bsicamente la de Datalog, denotada como Datalog<Z ,P (Z) , ya que el cuerpo de las reglas slo puede contener conjunciones de restricciones de orden sobre enteros o conjuntos. Lo que signica que los problemas a resolver mediante DISCO estn constituidos por un conjunto de reglas y hechos Datalog denidos con restricciones
65
booleanas, donde las reglas son transformadas a expresiones del lgebra relacional. En este caso, un programa es un conjunto nito de reglas de la forma: R0 : R1 , . . . , Rl . La expresin de la cabecera R0 es una frmula atmica de la forma p(v1 , . . . , vn ), mientras que las reglas R1 , . . . , Rl son frmulas atmicas del tipo:
p(v1 , . . . , vn ): donde p es un predicado. v u: donde u y v son variables o constantes enteras, y es un operador relacional
{=, =, <, , >, , <g }, donde g es un natural y {v <g u} representa la expresin
v + g < u. V U o V = U : donde V y U son conjuntos de variables o constantes. cU oc / U : donde c es un entero o una constante y U es un conjunto de variables
o constantes.
Evaluacin de Consultas
DISCO utiliza la evaluacin 'bottom-up' basada en la eliminacin de cuanticadores sobre las restricciones de la base de datos. Para mejorar los tiempos de consulta, y asegurar que terminan en el caso de que sean recursivas, propone una mejora reduciendo el dominio en cada bsqueda [131], junto a la planicacin del tratamiento de las operaciones del lgebra relacional para optimizar la evaluacin [95].
Ejemplo
Aunque los sistemas DISCO pueden utilizarse en gran cantidad de ejemplos [131], uno muy descriptivo es una base de datos donde se almacenan siete coches (a, b, c ,d , e, f ,
suc(6,7).
66
adj(x,y) :- succ(x,y). adj(x,y) :- succ(y,x). gap(x,y) :- x<1 y. //x est a la izquierda de y, y no consecutivos gap(x,y) :- y<1 x. //y est a la izquierda de x, y no consecutivos range(x) :- 0<x, x<8. neq(x,y) :- x<y. //no son el mismo neq(x,y) :- y<x. //no son el mismo pos(1).
...
pos(7).
Y la consulta para conocer cul es la posicin de cada uno una de los coches ser de la forma: park(a,b,c,d,e,f,g) :- gap(a,g), e<3 a, b<2 c, f<4 g, adj(b,f),
range(a), range(b), range(c), range(d), range(e), range(f),range(g) neq(a,b), neq(a,c), neq(a,d), . . ., neq(e,g), neq(f,g) pos(a), pos(b), . . .
Inconvenientes
Pese a que DISCO permite trabajar con datos innitos mediante una representacin nita, s existen algunos inconvenientes a destacar en esta propuesta: Todos los avances en el campo de las bases de datos relacionales no se tienen en cuenta, ya que la informacin se almacena en un chero, obviando aspectos como evitar redundancia de datos, mantener integridad referencial o la creacin de estructuras de indexacin.
67
Al no estar la base de datos representada mediante entidades y relaciones, y al no estar normalizada, las modicaciones en el contenido de la base de datos conllevarn muchos cambios, lo que diculta su mantenimiento. Por ejemplo, si en lugar de siete coches tuviramos ocho, se tendran que hacer cambios en las reglas succ, range y
pos.
Como consecuencia del inconveniente anterior, y al no existir la posibilidad de integridad referencial, sera fcil olvidar algunas de estas actualizaciones de contenido, originando bases de datos inconsistentes. Los cambios estructurales en la base de datos son muy costosos. Por ejemplo incluyendo una nueva variable en la cabecera de alguna regla o en algn hecho, todas las consultas donde dichas variables estn involucradas tendran que ser modicadas, junto a todas las reglas que hicieran uso de ella. El lenguaje de denicin de datos y de consulta se aleja del estndar SQL, lo que hace difcil su utilizacin en el mercado. Las consultas son complejas y extensas. El rango en una base de datos relacional no se dene de forma explcita, ya que la solucin no puede tomar valores que no estn en la base de datos. Mientras que en el ejemplo, la denicin del rango se dene de forma explcita dos veces, en range y en las distintas instancias de pos. Pese a que la propuesta trabaja con valores enteros, y tericamente sobre dominios innitos, si la consulta inere restricciones con innitas soluciones el problema no podra ser tratado, al menos de forma completa. No permite trabajar con restricciones lineales ni polinmicas, slo permitiendo restricciones de orden y sobre conjuntos, lo que limita mucho su uso. No ofrece la capacidad de inferir nuevas restricciones partiendo de las almacenadas, obteniendo como salida de una consulta un conjunto de restricciones tras realizar una eliminacin de cuanticadores.
3.5.2. MLPQ/PReSTO
Esta propuesta presenta una combinacin del sistema MLPQ (Management of Linear Programming Queries) y PReSTO (Parametric Rectangle Spatio Temporal Object), am-
68
bos desarrollados en la Universidad de Nebraska-Lincoln [129][133]. El sistema MLPQ da soporte a la gestin de bases de datos con restricciones lineales. MLPQ fue esecialmente diseada para el tratamiento de informacin espacial, gracias a un entorno grco que permite trabajar en 2 3 dimensiones, y a la interaccin del usuario con el conocimiento almacenado mediante consultas. Por otra parte, PReSTO es un sistema de base de datos temporales, el cual permite consultas sobre sistemas que cambian en el tiempo.
Sintaxis
Las BDdR en MLPQ/PReSTO consisten en un conjunto de reglas Datalog [132], donde el cuerpo est formado por restricciones lineales. Estas restricciones lineales tienen la forma:
a1 x1 + a2 x2 + . . . + an xn b
donde ai y b son constantes, xi variables y es un operador de comparacin de entre {=, <, , >, }. La sintaxis del lenguaje de consulta de ambos sistemas (MLPQ y PReSTO) es muy similar a la de SQL, concretamente es un subconjunto de ste. En su lenguaje de consulta incorpora palabras reservadas de SQL como SELECT, WHERE, GROUP BY, HAVING, junto a agregados del tipo MIN y MAX.
Evaluacin de Consultas
Pese a que la sintaxis de MLPQ/PReSTO es muy similar a SQL, los datos no son almacenados en una base de datos relacional, sino mediante reglas Datalog en un chero de texto. Esto signica que la evaluacin de las consultas conlleva una transformacin de las consultas en SQL en una consulta Datalog. Los operadores que se permiten en las consultas contemplan la denicin de vistas, agregados (como min y max), unin e interseccin de relaciones, adems de las consultas en funcin de una condicin. Al basarse en Datalog, permite las consultas sobre estructuras recursivas, aadiendo un operador de aproximacin Apx el cual garantiza obtener una solucin en casos recursivos ya que establece el mximo nmero de soluciones que se pueden obtener.
69
Ejemplo
Un ejemplo de base de datos de MLPQ/PReSTO puede ser: almacenar un conjunto de pases (country(id, x, y, t)) donde se relacionan los puntos geogrcos pertenecientes a dicho pas (x, y ), el identicador del pas (id) y el ao t al que corresponde dichas caractersticas. La base de datos tambin almacena la localizacin de las ciudades (location(c, x,
location(c,x,y):- x=3, y=2, c=101. location(c,x,y):- x=7, y=3, c=102. location(c,x,y):- x=5, y=6, c=103. location(c,x,y):- x=7, y=10, c=104.
...
growth(t,c,p):- c=101, p=10000, t>=1800, t<=2000. growth(t,c,p):- c=102, p=20000, t>=1800, t<=2000. growth(t,c,p):- c=103, p=10000, t>=1800, t<=2000.
...
end
Con esta informacin, se pueden realizar consultas como 'Obtener todas las ciudades
que en 1900 tenan una poblacin mayor de 10000', donde la consulta sera de la forma:
70
Inconvenientes
Esta solucin comparte todas las desventajas que tiene DISCO con lo que respecta a la utilizacin de Datalog para el almacenamiento y representacin de la informacin. De esta formas se hace patente la prdida de la potencia de esta solucin por no utilizar bases de datos relacionales. Cuando las soluciones tras la evaluacin de las consultas tienen innitas soluciones, MLPQ/PReSTO utiliza un operacin de aproximacin, llamado Apx, para asegurarse de su nalizacin. Al basarse en Datalog, permite tanto consultas como estructuras recursivas, lo que puede llevar a obtener un nmero de soluciones innitas. Esto provoca que en algunos casos, el resultado de una consulta no sea completa, obtenindose slo algunas de las soluciones. No se pueden obtener nuevas restricciones derivadas de las almacenadas de una forma simblica. Si esto fuera posible, se evitaran las limitaciones de devolver en una consulta innitos valores y tenerlos que acotar mediante una aproximacin.
3.5.3. DEDALE
DEDALE [69][70][134] es una de las primeras implementaciones de BDdR que utiliza la orientacin a objetos para representar las restricciones. DEDALE fue un proyecto en el cual participaron los grupos de investigacin VERSO y VERTIGO pertenecientes a la Universidad de Pars para dar soporte a restricciones lineales. DEDALE fue desarrollado para trabajar exclusivamente para aplicaciones geogrcas, ya que su sintaxis y su semntica se centra en el tipo de consultas que se realizan en este mbito.
71
Sintaxis
DEDALE dispone de un lenguaje de consulta muy similar a SQL, mejorando la manipulacin de los objetos en el espacio. Entre las operaciones algebraicas que permite realizar entre los objetos geogrcos, se encuentran la interseccin, unin, diferencia, producto cartesiano, seleccin y la proyeccin. Para trabajar con las operaciones tpicas sobre objetos geogrcos dene macros, por ejemplo para conocer si dos objetos son adyacentes, dene funciones sobre los lmites o los vrtices de los objetos [46].
Evaluacin de Consultas
Al almacenar la informacin en una base de datos orientada a objetos, realiza una transformacin de las consultas en DEDALE a OQL (analizado en la seccin 2.4.2) para el tratamiento de los atributos atmicos o simples, aquellos que no son restricciones. Para la mejora de la eciencia en la evaluacin de consultas referentes a las aplicaciones geogrcas, sobre restricciones, aporta un conjunto de algoritmos para la optimizacin de las consultas presentados en [69]. Para las consultas sobre datos multidimensionales utiliza algoritmos basados en rboles como la variante de R-Tree, R Tree [8].
Ejemplo
Uno de los ejemplos de consulta sobre una base de datos DEDALE se muestra a continuacin. El lenguaje de consulta desarrollado en DEDALE se basa en la sintaxis de SQL, realizando transformaciones de las consultas usadas en los sistemas de informacin geogrca a OQL, como se observa en el siguiente ejemplo:
SELECT b.name FROM Resort a , Resort b WHERE a.name="Skiing Area" AND b.name="Building" AND b.geometry SOUTH-OF a.geometry
Lo que signica que siendo p1 los puntos pertenecientes a a y p2 los pertenecientes a b, si b est al sur de a, signica que siendo p1.x=p2.x, entonces p1.y>p2.y. Lo que DEDALE transformar en la siguiente consulta en OQL:
72
SELECT b.name FROM Resort a, Resort b WHERE a.name="Skiing Area" AND b.name="Building" AND (a.geometry JOIN b.geometry[1, 2 AS 3]) JOIN? 'geometry.2>geometry.3'
donde b.geometry[1, 2 AS 3] describe que es necesario renombrar la variable y en b, para que pueda tomar valores diferentes a los que toma en a. Tambin se puede destacar cmo la operacin a.geometry JOIN b.geometry[1, 2 AS 3] es la unin de las variables que tienen en comn ambos atributos (x en este caso), lo que permite seleccionar, mediante la comparacin 'geometry.2 > geometry.3', aquellos nombres de b que est al sur de a.
Inconvenientes
Pese a que el salto cuantitativo fue importante para esta propuesta, ya que por primera vez se utilizaron las bases de datos orientadas a objetos, an tiene aspectos que se pueden mejorar: Toda la sintaxis y la semntica del lenguaje est orientada al tratamiento de sistemas de informacin geogrcos, lo que provoca que esta solucin no sea genrica para cualquier sistemas denido mediante restricciones. Al utilizar las bases de datos orientadas a objetos como modelo lgico, toda la informacin se almacena como atributos dentro de un objeto, esto hace que mantenga todos los inconvenientes que se analizaron en la seccin 2.4.2, con respecto las bases de datos orientadas a objetos. Al basarse en sistemas espacio-temporales, el nmero de dimensiones del dominio de los problemas no puede ser mayor que cuatro. Esta caracterstica hace que la operacin de proyeccin no contemple qu ocurre cuando las tuplas que forman una relacin tengan variables distintas y cmo afecta esto a las distintas operaciones.
73
3.5.4. CCUBE
CCUBE (Constraint Comprehension Calculus) [19][20] dene el lenguaje de manipulacin de datos al que le debe su nombre. CCUBE presenta una integracin de restricciones con la orientacin a objetos para la optimizacin de consultas sobre objetos. El modelo de datos para el clculo de restricciones est basado en los objetos que describen restricciones espacio-temporales (Constraint Spatio-Temporal, CST). En la implementacin de CCUBE se plantea la denicin de un sistema con capacidad expresiva para datos complejos, pero sin perder de vista la necesidad de que el sistema sea eciente a nivel prctico.
Sintaxis
Con respecto a la sintaxis del lenguaje CCUBE, cabe destacar que utiliz como punto de partida la propuesta desarrollada por Kim et al. [87] donde se propone el lenguaje XSQL, el cual fue creado para adaptar la formalizacin de la lgica de primer orden a los lenguajes orientados a objetos. Otra de las aportaciones relevantes en el mbito de la orientacin a objetos, que inuy en CCUBE, fue una propuesta de Fegaras y Maier [50] llamado monoid calculus, probando su ecacia para lenguajes orientados a objetos como OQL. El monoid calculus es un formalismo algebraico para denir operaciones sobre estructuras algebraicas sencillas, proponiendo un tipo nico de datos junto a los operadores denidos en las bases de datos relacionales y las orientadas a objetos. De esta forma, se presenta como una semntica formal para el lenguaje OQL. Los formalismos anteriores fueron ampliados con restricciones lineales para la denicin de un lenguaje de consulta sobre restricciones orientadas a objetos. El formalismo de Kim et al. fue extendido [18][21] con la denicin del lenguaje Lyri C . La formalizacin de Fegaras y Maier [50] fue ampliada con el lenguaje CCUBE [17], creando un sistema de restricciones orientado a objetos que implementa disyunciones y conjunciones sobre restricciones lineales representadas con objetos en C ++ .
Evaluacin de Consultas
El modelo de datos de CCUBE se basa en restricciones espacio-temporales (CST, Constraint Spatio-Temporal) representadas mediante objetos. La evaluacin de las consultas
74
utiliza un conjunto de bibliotecas implementadas en C ++ que denen la clase CST, la cual implementa mtodos sobre restricciones como y , permitiendo combinaciones con operadores lgicos entre restricciones lineales. Las operaciones de dicha clase aseguran tiempo polinmico en la evaluacin de consultas, ya que utiliza el paquete CPLEX [79] desarrollado por Robert E. Bixby [16], el cual resuelve sistemas con restricciones lineales de gran tamao.
Ejemplo
Un ejemplo de denicin de objetos en CCUBE presentado en [20], es el objeto
Desk my desk = desk( catalogNo = 22354, name = 'one drawer desk', color = 'red', extent = (-4w 4 -2z2) drawer = new drawer( color = 'blue' center = (p=2 -3q1) extent = (-1w1 1 -1z1 1) translation = (w=w1 +p z=z1 +q) ) );
Algunos de los aspectos que presenta este ejemplo mediante sus atributos son: el tamao de desk y drawer vienen denidos mediante sus correspondientes atributos
extent, mientras que la posicin de drawer con respecto a desk la dene la restriccin
del atributo translation; el movimiento de drawer no puede ser cualquiera, ya que el atributo center dene que slo se puede mover hacia arriba o abajo, ya que p toma el valor nico 2. La siguiente consulta es un ejemplo donde se obtiene como salida nuevos objetos CST, encontrndose para cada escritorio (desk) de la clase all desks su posicin en una
75
Figura 3.7: Ejemplo de instancia de un escritorio (desk) con un cajn (drawer) en una habitacin habitacin, asumiendo que el centro del escritorio est en el punto (6, 4) y la ecuacin de traslacin (con respecto a las coordenadas de la habitacin) es u = w + x v = z + y . La consulta ser de la forma:
select new CST((u,v) | (dsk extend u=w+x v=z+y x=6 y=4 )) into {bag CST } result all desk as {desk} dsk
que obtiene nuevos objetos CST con las coordenadas u, v del escritorio con respecto a la habitacin, para el nuevo centro del escritorio tras su traslado. Cabe denotar que
{bag CST } determina el tipo del parmetro resultado, que en este caso ser un conjunto
de objetos del tipo CST.
Inconvenientes
Al igual que DEDALE, CCUBE representa un importante salto cuantitativo en las BDdR ya que utiliza la orientacin a objetos, pero tambin tiene sus inconvenientes. Al igual que DEDALE, CCUBE mantiene todos los inconvenientes de las bases de datos orientadas a objetos. Una de las deciencias de esta aportacin, tambin al igual que DEDALE, es la dependencia de resolver problemas del mbito espacio-temporal, no aportando una solucin independiente de la aplicacin.
76
Los objetos de la clase CST tienen denidas operaciones booleanas pero no tcnicas simblicas de sustitucin y eliminacin de variables, por lo que la operacin de proyeccin tendr ciertas limitaciones.
3.5.5. CQA/CDB
CQA/CDB [61] es un prototipo de BDdR especialmente desarrollado para el tratamiento de sistemas espacio-temporales implementado en JavaT M . Por esta razn, esta solucin slo utiliza restricciones lineales, que segn sus creadores son sucientes para aproximar los problemas del mbito espacio-temporal.
Sintaxis
La sintaxis de CQA/CDB es similar a la de SQL, pero incluyendo nuevas operaciones como project para trabajar sobre variables, y operaciones sobre agregados como area utilizado sobre sistemas espaciales [2]. CQA/CDB ampla los tipos de atributos que puede tener una tupla en dos: atributos clsicos o atributos que representan restricciones.
Evaluacin de Consultas
CQA/CDB dene una extensin del lgebra relacional denida sobre restricciones, ampliando las operaciones primitivas. Como mejora en la optimizacin de las consultas, propone la reordenacin del orden de evaluacin de los operadores y el uso de indexacin utilizando R -Tree para minimizar el nmero de objetos que se analizan en la evaluacin de las consultas.
Ejemplo
Un ejemplo presentado en [59] para aclarar esta aportacin, es una base de datos donde est almacenada el movimiento de un huracn sobre una regin. Consiste en tres relaciones cuyos esquemas son:
Parcela:[IdParcela:cadena; x,y:restriccin] PropietarioParcela:[nombre:cadena; t:restriccin; IdParcela:cadena] Huracn: [x,y,t:restriccin]
77
Este esquema dene un conjunto de parcelas denidas sobre x y y , y sus propietarios a lo largo del tiempo (denido por la variable t). La informacin Huracn dene la posicin con respecto a x e y de un huracn a lo largo del tiempo, tambin representando el tiempo con la variable t. Y algunos ejemplos de consulta sern: Obtener todas las parcelas por las que pas el huracn:
Obtener los nombres de los propietarios de las parcelas que fueron azotadas por el huracn entre los instantes 4 y 9.
R0 = join PropietarioParcela and Parcela R1 = select t>= 4, t<= 9 from Huracn R2 = join R0 and R1 R3 = project R2 on nombre
Inconvenientes
Entre los inconvenientes de esta propuesta se encuentran: No hace una referencia expresa a qu modelo lgico utiliza para almacenar la informacin. Aunque CQA/CDB permite diferenciar los datos clsicos de las restricciones, ignora las caractersticas propias del lgebra relacional de Codd [32]. Pese a que la sintaxis tiene elementos en comn con SQL, aparecen operadores nuevos como PROJECT, y cambia la semntica de otros como SELECT, como ocurre en el segundo ejemplo mostrado para la sentencia R1. No describe de forma explcita que se cia a soluciones exclusivamente espaciotemporales, aunque los ejemplos que se presentan en la la bibliografa no tratan restricciones de otra naturaleza.
78
La denicin de la seleccin y la proyeccin se hace sobre un conjunto de restricciones denidas sobre las misma variables, pero no se establece su comportamiento cuando las restricciones tienen distintas variables.
3.5.6. DeCoR
La porpuesta DeCoR [67][66] presenta una implementacin de BDdR apoyndose en Bases de Datos Deductivas. Esta propuesta es de especial inters por la presentacin de un conjunto de transformaciones y reescrituras de la base de datos en tiempo de compilacin [68]. A esta reescritura se le denomina Constraint Lifting, mejorando la eciencia en la evaluacin de las consultas. Las BDdR de este sistema slo permite trabajar con restricciones lineales sobre el dominio de los reales.
Sintaxis
Al estar soportada por bases de datos Datalog, las restricciones estn descritas mediante reglas y hechos pero con una sintaxis que intenta acercarse a un lenguaje de bases de datos. Por ejemplo utiliza la palabra create para la creacin de relaciones (tablas),
79
Evaluacin de Consultas
El Constraint Lifting Algorithm (CLA) consiste en una transformacin donde el objetivo es mejorar los tiempos de evaluacin de consultas. Esta transformacin consiste en reescribir las clusulas para que durante la evaluacin slo los hechos relevantes para la consulta sean analizados. La idea principal es manipular y simplicar las restricciones contenidas en la base de datos, de manera que no sea necesaria su manipulacin en tiempo de evaluacin, salvo para instanciar las variables en funcin de la consulta y comprobar si las restricciones son satisfactibles. Un ejemplo fcil de transformacin de las restricciones es el siguiente:
Ejemplo
Un ejemplo de creacin de tablas y consulta es:
80
open test/test // apertura de la base de datos deductiva create scale(str, float, float, float, float) //creacin de tabla assert scale(str, 'sg', 0, 5000, 0, 0) //rellena la tabla scale
...
create persons(str, float) //crear la tabla persons assert persons('Tom', 80000) //rellenar la tabla persons
...
create taxes(str, float, float) //crear la tabla taxes assert persons(Kt, Sal, Taxes) //rellenar la tabla taxes scale(Kt, Min, Max, X, Y) &//crea relaciones entre las tablas Sal>=Min & Sal<Max & //establece restricciones Taxes = XSal+Y //establece restricciones
Y un ejemplo de consulta podra ser: qu impuestos deben pagar las personas de cualquier departamento? Cuya sentencia sera:
Inconvenientes
DeCor al utilizar Datalog, compartiendo todos los inconvenientes comentados en DISCO y MLPQ/PReSTO. Junto a los inconvenientes propios a Datalog se pueden aadir, al igual que las dems, que no es posible inferir nuevas restricciones partiendo de las almacenadas.
81
1.
2.
Programacin Lgica: Algunas propuestas de BDdR incorporan las Programacin Lgica, permitiendo denir estructuras y lenguajes recursivos. Las propuestas que que permiten la Programacin Lgica son las cercanas a Datalog y por lo tanto a las Bases de Datos Deductivas, combinando en las clusulas tanto predicados como restricciones. Este aspecto no se trata en esta tesis, slo permitiendo trabajar con Programacin con Restricciones, sin aadir todas las caractersticas de la Programacin Lgica.
3.
82
relativa a restricciones. Esto hace posible que aplicaciones sobre bases de datos ya existentes fueran compatibles con su ampliacin a BDdR. 4.
Tipos de Restricciones: Pese a que en la teora de BDdR se contempla la posibilidad de trabajar con restricciones polinmicas, la mayora de las soluciones, al trabajar con problemas espacio-temporales, denen operaciones exclusivamente para restricciones lineales. Pese a que en muchos casos ser suciente con utilizar las restricciones lineales ya que pueden aproximar la solucin, en general las restricciones lineales no son sucientes. Por esta razn se propone ampliar los tipos de restricciones tambin a polinmicas.
5.
Independiente de la Aplicacin: Los ejemplos para los cuales se han desarrollado estos prototipos son mayoritariamente los datos espacio-temporales, como MLPQ/PReSTO o CQA/CDB. Eso enfoca la sintaxis y la semntica de las consultas a la aplicacin, no siendo soluciones generales sino dependiente del problema. Por esta razn en esta tesis se propone la denicin de un lenguaje que no sea dependiente del problema, pero que se pueda adecuar a l.
6.
3.7. Resumen
En este captulo se muestran los formalismos que se han establecido para denir las Bases de Datos de Restricciones. Este anlisis va desde la denicin de qu es una Res-
Resumen
83
Modelo Lgico MLPQ/ PReSTO DISCO DEDALE CCUBE CQA/CDB DeCor LORCDB Archivo BDOO BDOO ? Archivo BDOR Archivo
Similar a SQL S No S S S No S
Tipo de Restriccin Lineales Lineales Lineales Lineales Lineales Lineales Lineales y Polinmicas
Independiente de la Aplicacin No No No No No S S
Variable de Restriccin No No No No No No S
triccin utilizando la lgica de primer orden, hasta la combinacin de las restricciones para
dar origen a las BDdR. Para denir los nuevos lenguajes de consultas sobre dichas bases de datos, se propuso una extensin del lgebra relacional adaptada a las nuevas necesidades, todo ello haciendo posible realizar la evaluacin de consultas sobre restricciones. Basndose en esas deniciones, se ha originado un conjunto de propuestas con distintas caractersticas: en funcin del modelo lgico de almacenamiento; si utilizan Programacin Lgica o slo Programacin con Restricciones; tipo de lenguaje de consulta y si estos permiten trabajar sobre un dominio de aplicacin genrico; tipos de restricciones a las que dan soporte (lineal o polinmica); y denicin de operaciones sobre mltiples variables de restricciones. Todas estas caractersticas se presentan en una comparativas de las distintas propuestas, detectando las deciencias que se mitigarn en la propuesta LORCDB, la que se detalla en esta memoria de tesis.
4.1.
Introduccin
La propuesta que se presenta en esta tesis cambia la denicin de BDdR, introduciendo nuevos conceptos fundamentados en la idea de que una relacin formada por un conjunto de tuplas puede ser representada como una combinacin de restricciones y atributos clsicos (de dominios atmicos). Esta idea es la presentada en la gura 4.1, que utiliza un ejemplo que muestra la equivalencia semntica entre un conjunto de tuplas de una relacin y una restriccin (4.1.a y 4.1.b), cuya transformacin se explic en la seccin 3.2.
86
La redenicin de las BDdR aborda el tratamiento de las tuplas como atributos de valores extensivos (aquellos donde las variables se puedan representar mediante restricciones de igualdad entre variables y valores constantes) y atributos intensivos, que representarn relaciones entre variables en forma de restriccin. Esto da origen a relaciones cuyos atributos pueden ser de dos tipos, siendo equivalentes a una relacin extendida o a una relacin restrictiva, como se presenta en la gura 4.1.c.
x 5 5 5 ... 6 6 6 ... a 1 1 1 ... 1 1 1 ... b 1 2 3 ... 1 2 3 ... (a) c 2 3 4 ... 3 4 5 ... (b) (c)
( x = 5 a + b = c) ( x = 6 a + b + 1 = c)
para a, b, c, x: Natural
x 5 6
Figura 4.1: Equivalencia entre una relacin extendida, una relacin restrictiva y una relacin con atributos clsicos y restricciones La nueva denicin de las BDdR radica en la caracterstica de dualidad de los datos, extensivos e intensivos, para que ambos tipos puedan formar parte de una misma relacin. Aquellos que pueden ser representados como atributos clsicos no deben participar en la restriccin, mientras que los que toman un nmero de valores muy grandes o incluso innitos sern representados mediante variables pertenecientes a restricciones. Esta diferencia viene promovida porque el tratamiento de los datos intensivos, pese a su capacidad expresiva, es ms complejo que en el caso de los extensivos. Utilizando las dos formas de representacin ser posible minimizar el tamao de la base de datos haciendo posible que la informacin sea completa, a la vez que se pueden aprovechar todas las ventajas del lgebra relacional respecto a los atributos que toman un nico valor, manteniendo la primera forma normal que establece que los dominios de los atributos deben ser atmicos [32].
Una relacin de una BDdR est formada por dos tipos de atributos: atributos clsicos, que tienen una relacin de igualdad con un valor determinado, por lo que el atributo es a su vez una variable (como x en el ejemplo de la
Formalizacin
87
gura 4.1.c); y atributos que describen la relacin entre un conjunto de variables mediante una frmula (como el atributo Restriccin de dicha gura). El atributo Restriccin representa a su vez una relacin, pero en este caso una relacin restrictiva.
El nombre de la variable que tenga una relacin de igualdad con una constante, corresponder al nombre del atributo, mientras que el nombre del atributo restriccin tendr una relacin semntica con las variables, no sintctica. Por ejemplo, si se representa mediante una restriccin el recorrido de un vehculo utilizando las variables x, y y t, se le puede dar el nombre al atributo Recorrido, que es independiente de las variables que lo representan. Las variables que forman una restriccin no pueden formar parte de los atributos clsicos de dicha relacin, por ejemplo la variable x del atributo Recorrido, no puede ser a su vez un atributo clsico llamado x. Esta nueva denicin de equivalencias entre relaciones restrictivas y relaciones con atributos clsicos y restricciones, se origina para encontrar un nivel intermedio entre expresividad y optimizacin en la evaluacin de consultas, donde no toda la informacin sea representada de forma extensiva, ni toda de forma intensiva como una restriccin. Esta es la misma losofa que origin las Bases de Datos Objeto-Relacionales, para poder almacenar datos ms complejos sin perder las ventajas de los avances en el rea de las bases de datos relacionales.
4.2.
Formalizacin
Para redenir las BDdR, junto a las diferentes operaciones sobre las mismas, es necesario reformular algunas de las deniciones dadas en el captulo 3 relativas a restriccin,
4.2.1. Restriccin
Una restriccin es una relacin entre variables denidas sobre un dominio [42], donde existe una limitacin sobre el espacio de posibilidades o valores que pueden tomar dichas variables. El tipo Restriccin denido en esta tesis ser: Restriccin numrica denida como una combinacin conjuntiva de ecuaciones e inecuaciones, lineales y polinmicas.
88
2 de [130] con algunas variantes, utilizando una gramtica donde se denen las variables
y constantes de un dominio (Natural, Flotante o Entero). Una restriccin para la nueva denicin de DBdR ser de la forma:
;
Donde una restriccin atmica es:
restriccin atmica :=expresin PREDICADO expresin ; expresin := trmino OPERADOR BINARIO expresin
| trmino | ''trmino
;
De forma general, los predicados y los smbolos de los operadores son:
PREDICADO := '=' | '<' | '' | '>' | '' ; OPERADOR BINARIO := '+' | '' | '' ;
La redenicin de las Bases de Datos de Restricciones que aqu se propone se basa en cuatro tipos de restricciones, tambin analizadas en [57]: restricciones lineales de igualdad, polinmicas de igualdad, inecuaciones lineales e inecuaciones polinmicas. Dependiendo del tipo de restriccin se utilizarn tcnicas y algoritmos diferentes para un tratamiento ms eciente, por lo que es necesario reformular la denicin de PREDICADO, expresin y OPERADOR BINARIO para detectar a cul de estos cuatro tipos pertenece:
Formalizacin
89
; trmino := Variable
| Constante
;
Donde los trmino y los smbolos para las restricciones lineales son:
SMBOLO LINEAL := '+' | '' ; trmino Lineal := Constantes '' Variable '' Constantes
| Constantes '' Variable | Variable '' Constantes | Variable
90
Constante := I R | N | Z ; Variable := I R | N | Z ;
Basadas en estos tipos de expresiones y predicados, se denen los cuatro tipos de restricciones soportadas:
Restricciones
lineales
de
Formalizacin
91
que se representan mediante igualdad de variables y constantes (atributos clsicos o univaluados), y la informacin representada mediante restricciones (atributos restriccin). Una k-tupla restriccin con las variables x1 , . . . , xk es una conjuncin nita de la forma 1 . . . N donde cada i , para 1 i N , es una restriccin de la forma {xj =Constante} donde xj {x1 , . . . , xk } a los que se denominar Atributo Clsico
11 21 ... n1
2
...
12 22 ... n2
...
1m 2m ... nm
92
En la gura 4.2 se presenta la equivalencia entre una relacin restrictiva y las ktuplas restriccin que la forman. Para que en dicha relacin existan tanto atributos univaluados como atributos restriccin, tiene que cumplirse que: Siendo ij una i 1 . . . N y j 1 . . . M , tal que j = 1j . . . N j , una relacin restrictiva tendr atributos univaluados (x) si:
relacin restrictiva
Restriccin
5 5 7 9
Por lo tanto, una Base de Datos de Restricciones es una coleccin nita de relaciones restrictivas formadas por atributos univaluados y atributos restriccin. Un aspecto que an queda abierto es denir si todas las restricciones irn en un mismo atributo restriccin o en diferentes. Aunque a lo largo de este trabajo se tratar este tema
Formalizacin
93
otra vez, ahora es oportuno hacer algunas puntualizaciones. Una de las razones por la cual un conjunto de restricciones debe pertenecer al mismo atributo restriccin puede ser por las variables que las componen. Un ejemplo puede ser cuando se describen caractersticas de personas como nombre, edad, . . . (atributos univaluados), junto a la situacin geogrca de la parcela que posee sobre las variables (x, y ), que describen la latitud y longitud de los distintos puntos que la forman. En este caso se utilizar un atributo restriccin para almacenar todas las parcelas, ya que todas las restricciones estn denidas sobre las mismas variables y describen una misma caracterstica. Sin embargo existen otros dos casos de anlisis relativos a este tema:
Restricciones denidas sobre las mismas variables pero que describen distintas caractersticas. Un ejemplo puede ser: sean dos tipos de restricciones,
ambas sobre (x, y ), una que describe las parcelas y otra las casas. Pese a estar denidas sobre las mismas variables, describen dos caractersticas de las posesiones de la persona y desde el punto de vista de las bases de datos relacionales clsicas, no sera conveniente almacenarlas en un mismo atributo ya que no tienen relacin semntica.
Restricciones denidas sobre distintas variables pero que describen la misma caracterstica. Un ejemplo de esto es el que precisamente ocurre en la
diagnosis de fallos basada en modelos, que es uno de los casos de estudio analizados en esta tesis. En la diagnosis basada en modelos cada componente puede ser descrito mediante una restriccin, que estar denida sobre variables que no tiene que ser iguales a las variables de las restricciones. De hecho, lo ms usual es que los componentes tengan distintas entradas y salidas para conformar los sistemas, pero que a nivel semntico las restricciones describen una misma caracterstica: el comportamiento de los componentes. En este caso las restricciones de los componentes pertenecern a un mismo atributo.
94
95
x 5
y 2
a 1 2 3 4 ...
Asociacin
b 1 1 2 2 ... b 2 1 3 2 ... c 1 1 3 2 ... b 1 2 3 1 ... c 1 1 4 4 ... c 1 1 2 2 ... d 5 6 2 2 ... c 3 2 1 2 ... d 6 5 3 3 ... e 2 0 1 0 ...
a 1 2 1 2 ...
a 1 1 1 2 ...
a 1 1 1 2 ...
para un conjunto de variables. Sin embargo analizado desde el punto de vista de que un atributo restriccin es a su vez una relacin de variables, se podra denir como una referencia a una relacin. Esto mantendra conceptualmente la primera forma normal, a la vez que permite la inclusin del atributo restriccin. Los valores de los atributos tienen que pertenecer a un determinado dominio. Sobre esto es necesario hacer alguna aclaracin para la nueva denicin de las BDdR, ya que un atributo restriccin puede estar denido sobre distintas variables, aunque s es necesario que todas las variables de un mismo atributo restriccin estn denidas sobre el mismo dominio (Naturales, Enteros o Flotantes). Cada relacin tiene un nombre diferente para poder diferenciar una de otra, lo que
96
tambin ocurre en las BDdR, a lo que en la teora de las BDdR se le llama esquema de la base de datos. Cada atributo de una relacin tiene un nombre nico dentro de dicha relacin, lo que tambin ocurre en las BDdR. La diferencia es que s es posible que la misma variable pertenezca a atributos restriccin diferentes, de forma que dos restricciones puedan denir relaciones sobre la misma variable. Cada tupla es diferente, no pudiendo estar duplicadas. Esto tambin tiene algunos detalles en las BDdR, donde hay que evitar que dos restricciones que estn representadas de una manera sintcticamente diferente no representen el mismo conjunto de valores. El orden de los atributos y de las tuplas no es importante, ni en las bases de datos relacionales ni en las BDdR. Para denir las consultas es necesario apoyarse en las cinco operaciones primitivas del lgebra relacional, con las cuales se pueden denir las restantes. Dichas operaciones son: seleccin ( ), proyeccin ( ), producto cartesiano (), unin de conjuntos () y diferencia de conjuntos (). Adems del tipo de operacin, hay que tener en cuenta qu tipos de atributos estn involucrados en dicha operacin, lo que depender de cada caso.
a1 c1 a2 c2 . . . an cn
donde ai representa un atributo (de cualquier tipo de los tres propuestos) y ci constantes del mismo tipo que ai u otro atributo. Tambin se pueden denir las condiciones mediante negaciones , de la forma (ai ci ). Cuando nos referimos a esta operacin en las BDdR, es necesario replantear la parte del predicado del operador de seleccin, ya que podra hacer referencia a
97
atributos clsicos, atributos restriccin o a atributos variable de restriccin. Los detalles relativos a las BDdR se muestran en la seccin 4.5.
98
las tuplas no estn incluidos en otra. Los detalles relativos a las BDdR se muestran en la seccin 4.7.
Problemas de Satisfaccin u Optimizacin de Restricciones: Esto es necesario ya que la evaluacin de las consultas relacionadas con algunos de estos operadores se basan en la construccin y resolucin de problemas de satisfaccin de restricciones. Los problemas de satisfaccin de restricciones ayudarn a: evaluar si se cumple el predicado de la operacin de seleccin; obtener valores de las variables en la operacin de proyeccin; y conocer si dos restricciones comparten las mismas soluciones en las operaciones de unin y diferencia de conjuntos. Un ejemplo para la seleccin podra ser obtener todas las tuplas de una relacin donde las soluciones de un atributo restriccin At estn incluidas en otra restriccin C. En este caso se construir un problema de satisfaccin de restricciones con cada restriccin del atributo At y C para conocer si existe alguna solucin de At que no sea solucin de
C.
En el caso de los problemas de optimizacin de restricciones, se puede encontrar un ejemplo en la proyeccin para obtener el mayor o el menor valor que puede tomar una variable contenida en las restricciones de un atributo restriccin para una determinada relacin.
99
Eliminacin o Sustitucin de Variables: Estas tcnicas se utilizarn en el operador de proyeccin, para obtener de manera simblica nuevas restricciones eliminando un conjunto de las variables de las restricciones almacenadas en la base de datos. Este tipo de tcnicas se basa en la sustitucin de variables, apoyndose en las Bases de Grbner, y la eliminacin de variables utilizando la Descomposicin Algebraica Cilndrica.
(Vi , Ri ) limita los valores simultneos que pueden tomar las variables para que satisfagan
las restricciones donde estn involucradas. Sea Vk = {xk1 , xk2 , . . ., xkl } un subconjunto de
X , una l-tupla (xk1 , xk2 , . . ., xkl ) de d(xk1 ), d(xk2 ), . . ., d(xkl ) se denomina instanciacin
de variables en Vk . Una instanciacin es consistente si son satisfactibles todas sus restricciones para los valores de Vk . Una instanciacin consistente de todas las variables en
100
durante la bsqueda, de manera que se realiza eliminacin local de valores inconsistentes para las variables del dominio [14][102]. En teora, si un CSP tiene una nica solucin, aplicando un determinado grado de consistencia se puede reducir el dominio de las variables a un solo valor; si un CSP tiene ms de una solucin, o incluso innitas, todos los valores que permanezcan en el dominio despus de aplicar la consistencia sern parte de la solucin. En la prctica, una resolucin eciente de un CSP consiste en aplicar varios niveles de consistencia como la arco consistencia [103][112][113] a cada nodo del rbol de bsqueda. Normalmente la resolucin de problemas de satisfaccin de restricciones se realiza utilizando combinaciones de bsqueda y tcnicas de consistencia. Esta bsqueda tambin se ha analizado con tcnicas de bsqueda local, con el objetivo de utilizar tcnicas ms ecientes [122][121][29]. La bsqueda exhaustiva no siempre trabaja bien con problemas complejos, ni siquiera incluyendo tcnicas de ramicacin y acotacin o vuelta atrs ms inteligentes. Para los problemas de gran tamao, en algunas ocasiones es ms eciente usar bsqueda local donde no se analizan todas las soluciones, pero se pueden encontrar algunas en un tiempo menor.
A para el cual f(A ) > f(A). De esta forma slo las soluciones del CSP que maximicen o
minimicen el objetivo, sern consideradas soluciones del COP [38][76].
101
mltiples variables en polinomios de igualdad. Dicha teora se plantea como una generalizacin del mtodo de eliminacin de Gauss para mltiples variables en ecuaciones lineales, y el algoritmo de Euclides para ecuaciones polinmicas de una variable. Mediante las bases de Grbner se transforma un conjunto de restricciones polinmicas en otro conjunto equivalente que tiene las mismas soluciones que el original, pero eliminado unas determinadas variables. Partiendo de un conjunto de polinomios de igualdad de la forma P = 0, y las variables que se desean eliminar, se obtiene un sistema equivalente
102
a una sentencia con el operador de proyeccin cuando la sustitucin simblica no es suciente. La Descomposicin Algebraica Cilndrica de I Rk es una secuencia S1 . . . Sk donde, para cada 1 i k, Si es una particin nita de I Ri en subconjuntos semi-algebraicos, llamados
-1 -1/2 0
Figura 4.5: Ejemplo de Descomposicin Algebraica Cilndrica Al realizar la Descomposicin Algebraica Cilndrica sobre la variable x, se crearn las celdas mostradas con las lneas discontinuas marcadas es dicha gura. Dichas divisiones se generan segn los valores de x donde ambas restricciones se cortan entre si, lo que signicar que son los puntos donde hay que analizar su comportamiento conjunto. En este caso se obtendr la restriccin: 1 < x < 1/2 1 x2 < y < 1 x2
103
1 < x < 0
El mayor problema de la Descomposicin Algebraica Cilndrica es la complejidad, ya que el algoritmo para realizarla es doblemente exponencial en funcin del nmero de celdas. Algunos trabajos han analizado dicha complejidad para mejorar los tiempos de eliminacin de cuanticadores [35][144]. Junto a la limitacin ya comentada sobre que no se puede asegurar la eliminacin de variables para restricciones con variables del dominio de los enteros o los naturales.
4.5.
Como se ha expuesto anteriormente, el operador seleccin obtiene un subconjunto horizontal de las tuplas de la relacin de entrada en funcin de las condiciones que se denen en un predicado. En el predicado para la seleccin sobre las BDdR pueden aparecer los tres tipos de atributos:
104
comparacin entre atributos restriccin que se proponen hacen referencia a la relacin entre las soluciones que pueden tomar las dos restricciones involucradas en la comparacin. Entre los operadores, se denirn los analizados en el captulo 2 de [107] con respecto a que las soluciones que hacen satisfactible una restriccin estn incluidas en las soluciones de otra (, , , ), o que tienen al menos una solucin en comn (&). Adems se denirn, para atributos restriccin, la semntica de los operadores de comparacin ya existentes en el lgebra relacional clsica ( =(<, , >, , =, <>)). Estos operadores informarn de si todas las soluciones de una restriccin son mayores, menores, iguales o distintas de las soluciones de otra restriccin. Un ejemplo de seleccin para atributos de tipo restriccin puede ser:
105
representa el recorrido de un vehculo, todas las restricciones estarn denidas sobre las variables x, y y t. Pese a esto, los valores de dichas variables que hacen satisfactible cada restriccin no tienen que ser los mismos, lo que signica que son sintcticamente iguales pero no semnticamente iguales. Sin embargo, si se estableciera como condicin obtener los vehculos que se encuentran en su recorrido en un punto (x, y ) para un instante de tiempo t, se estara deniendo la igualdad semntica entre dichas variables, ya que necesariamente tienen que compartir soluciones.
xi X , yj Y | xi S yj (xi < yj )
ser transformada en:
(xi X , yj Y | xi S yj xi > yj xi = yj ).
Esta trasformacin evita tener que analizar todo el espacio de bsqueda de las soluciones del CSP, slo teniendo que resolver un CSP con el objetivo de encontrar
106
Cx x
Este tipo de seleccin puede ser utilizada en las consultas sobre sistemas de informacin geogrca, por ejemplo para conocer qu parcelas estn al suroeste de otra.
107
X = {x1 , x2 , . . ., xn } Y = {y1 , y2 , . . ., yn }
(Cx Cy ) (Cy Cx )
Si existe alguna solucin para el CSP, entonces Cx =Cy devolver falso, y cierto en caso contrario. Para el operador <>, que describe si dos restricciones no son iguales, se puede utilizar esta misma forma de construir el CSP. La diferencia radica que si el existe alguna solucin devolver cierto, y falso en caso contrario. Aqu no acaba la complicacin de estos operadores de comparacin, ya que la operacin de negacin para los reales tiene una problemtica aadida. En los problemas de satisfaccin de restricciones sobre reales, el nmero de soluciones es muy grande, tericamente innita, lo que hace que la bsqueda de soluciones sea muy costosa. Esto ha generado soluciones que abordan el problema mediante aproximaciones con una determinada precision utilizando intervalos que contienen las soluciones. Esta utilizacin de intervalos provoca que una restriccin y su negacin compartan soluciones en la prctica, aunque de forma terica no tendran que compartirlas [12][64]. Para evitar esto, la creacin de CSP que se propone en esta tesis se apoya en la reescritura de la negacin de las restricciones, cuando stas estn denidas sobre reales, construyendo una nueva restriccin. Para obtener de manera prctica, no exclusivamente terica la operacin de negacin, ser necesario que dicha negacin no tome los valores derivados de la aproximacin, construyendo la negacin con la separacin de una constante . El valor de depender de la aproximacin que se haga, siendo de un orden mayor que la aproximacin que utilice el resolutor de CSP, por ejemplo si la aproximacin llega hasta reales de 104 , ser 103 . La reescritura para una restriccin de forma trmino1 trmino2 , donde puede ser uno de los operadores <, , >, o =, ser de la forma:
108
trmino1 trmino2 trmino1 > trmino2 + trmino1 > trmino2 trmino1 + trmino2 trmino1 trmino2 trmino1 + < trmino2 trmino1 = trmino2 trmino1 + < trmino2 trmino1 >
trmino2
En la gura 4.7 se muestra grcamente un ejemplo donde partiendo de la restriccin
(x 5,5)2 + (y 5,5)2 4, se construye su negacin obteniendo la nueva restriccin (x 5,5)2 + (y 5,5)2 > 4 + 103 .
Cx Cx
Cx
Cx
103
Figura 4.7: Ejemplo de reescritura de la negacin Slo cabe aclarar que si las restricciones estn denidas sobre el dominio de los enteros o los naturales, no ser necesario incluir el factor de aproximacin en la negacin de las mismas.
Cx & Cy ser cierto si existe alguna solucin que haga satisfactible ambas restricciones, siendo todas las variables sintcticamente iguales entre ambas. En este caso el CSP ser de la forma:
X = { x1 , x2 , . . . , xn } Cx Cy
Si se encuentra una solucin para este CSP, la operacin Cx & Cy devolver cierto, y falso si no encuentra solucin.
Cx < (Cy FOR {yd , . . ., yh }) es una variante para la operacin < que devolver
cierto si para todas las variables xi S yj tal que yj {yd , . . ., yh } el mximo valor
de xi es menor que el mnimo valor de yj . Esta operacin realiza una proyeccin
109
sobre las variables que aparecen en el predicado {yd , . . ., yh }, lo que conlleva que las variables de Cx que no pertenecen a {yd , . . ., yh } no son relevantes en esta operacin. En este caso, las restricciones Cx y Cy no tienen que tener todas las variables sintcticamente iguales entre ellas, y slo se incluirn comparaciones entre aquellas variables que aparezcan en la condicin. El CSP que se construye es de la forma:
y z Cy Cx
y
Cy Cx
x
(b)
Figura 4.8: Ejemplo de proyeccin sobre variables Si existe alguna solucin para el CSP, la comparacin devolver falso, y cierto en caso contrario. Un ejemplo para esto es el que se muestra en la gura 4.8.a donde la proyeccin se hace sobre la variable y , y el predicado es Cx <(Cy FOR {y }). Dicho predicado pregunta si todos los valores de la variable y en Cx son menores que en
110
Otra variante de este tipo de comparacin es la que se basa en conocer si las soluciones de una restriccin son menores que otra para un valor establecido de una variable o varias variables. En la gura 4.8.b se muestra un ejemplo, donde para los valores de x donde
Cx < (Cy FOR {yd ,. . .,yh } AND Cx .v1 =Cy .v1 AND . . . AND Cx .vi =Cy .vi
X = { x1 , x2 , . . . , xn } Y = {y1 , y2 , . . ., ym } Cx Cy x i X y j { y d , . . . , y h } | x i S y j aadir al CSP {(xi > yj xi = yj )} v {v1 , . . . , vk } | v S xi v S yj aadir al CSP {xi = yj } Cx Cy ser cierto si todas las soluciones de Cx lo son tambin de Cy . Para la
inclusin, es necesario que las restricciones estn denidas sobre las mismas variables, de forma que sean Cx y Cy dos restricciones donde X = {x1 , x2 , . . ., xn } son las variables de Cx y Cy , Cx Cy es igual que la implicacin (Cx Cy ) [107]. Esta operacin determina si todas las soluciones de Cx son tambin soluciones de Cy , aunque es posible que Cy tenga soluciones que no pertenezcan a Cx . Para evitar analizar todas las soluciones de Cx , comprobando que stas tambin lo son de Cy , se buscar una solucin donde esto no ocurra, de forma que la evaluacin de la condicin Cx Cy corresponde con la frmula:
(xi X (Cx Cy ))
Y el CSP que se crear es:
111
X = { x1 , x2 , . . . , xn } C x C y
Si se encuentra alguna solucin para el CSP devolver falso, y cierto si no encuentra ninguna. En este caso tambin es necesario la misma reescritura de la negacin de restricciones que se ha explicado para la operacin '='. En la gura 4.9 hay un ejemplo donde la restriccin Cx est incluida en la restriccin Cy . Esta denicin puede ser extendida a Cx Cy .
v2 Cx Cy
v1
X = { x1 , x2 , . . . , xn } Cy Cx
Si existe alguna solucin para el CSP, entonces Cx Cy devolver cierto y falso en otro caso. Esta denicin es extensible a Cx Cy .
112
Sea xi una variable perteneciente a las variables X = {x1 , x2 , . . . , xn } de un atributo restriccin Cx y {Cx .xi c} una parte del predicado de la seleccin, donde c es un valor del dominio de xi , y = {<, >, , , =}. Se cumplir la condicin para aquellas restricciones donde la variable xi puede tomar valores relativos a c en funcin de . Para realizar dicha seleccin, se proponen dos alternativas que se analizarn ms en profundidad en el siguiente captulo. Una posibilidad es crear un CSP, o ampliar el que se construya con el resto del predicado, incluyendo la restriccin {xi c}. Si el CSP encuentra alguna solucin, signicar que la variable puede tomar algn valor relativo a c que cumpla la condicin. La otra opcin es almacenar en la base de datos los valores mximos y mnimos para cada variable en cada restriccin, de manera que en la seleccin primero se comprobar si el valor
c puede cumplir la condicin, en funcin del mximo y el mnimo de la variable Cx .xi y lo establecido por . Si esto es posible, se construir un CSP para asegurar
que realmente existe un valor que cumple la condicin. Si no est dentro de dichos lmites, se podr asegurar que la restriccin Cx no cumple la condicin del predicado. Sea xi una variable que pertenece a las variables X = {x1 , x2 , . . . , xn } de la restriccin Cx , y {Cx .xi Cy .yj } perteneciente al predicado de la seleccin, donde yj es una variable del atributo restriccin Cy . La variable yj puede ser sintcticamente igual o diferente a Cx .xi , aunque obligatoriamente del mismo dominio, y = {<,
d, por lo que no se puede denir la relacin entre variables, y en la tercera aparece d > c c + 1, que nunca cumplir la condicin.
113
Relacin
a+b > cd +a <8 a + b 1 > c e + a < 3 d > c *c +1 d + a < 7
Re lacin.c>Re lacin.d
5 2 5 3 7 3 9 8
Relacin
5 2
a+b+c = 5
4.6.
El operador de proyeccin realiza una seleccin vertical de una relacin, devolviendo un subconjunto de los atributos que la conforman. Como en la nueva denicin de las BDdR existen tres tipos de atributos, existirn tres tipos de seleccin vertical o proyeccin: Para atributos univaluados o clsicos (at) no es necesario redenir el operador de proyeccin, ni a nivel sintctico ni semntico, ya que es el descrito para en el lgebra relacional clsica. Para atributos restriccin (atc i ), pese a que a su vez representan una columna que es una relacin, no conllevar mayor problema ya que ser obtener las restricciones tal como estn almacenadas. El nico proceso que se tendra que realizar sera comprobar que no existen tuplas duplicadas, como se explicar en la seccin 4.7 para la unin de conjuntos que tiene la misma problemtica. Los atributos variable de restriccin (atc i .vj ), hacen referencia a una columna de una columna de la relacin, se analizar en la subseccin 4.6.1, ya que la evaluacin de este atributo para el operador de proyeccin necesita profundizar en diferentes aspectos.
114
es obtener una representacin intensiva (o simblica), mediante restricciones que describa todos los valores que pueden tomar las variables involucradas en la proyeccin. La sentencia para la proyeccin sobre variables de restriccin ser de la forma:
c (atc (R) i .vj ,...,atk .vl )
Informacin Intensiva: En este caso, se obtendrn nuevas restricciones que desc criben el conjunto de valores que pueden tomar las variables (atc i .vj , . . . , atk .vl ).
donde la palabra CONSTRAINTS se utiliza para denotar que se quiere obtener una
c representacin simblica de los valores de las variables (atc i .vj , . . . , atk .vl ).
Estas restricciones, equivalentes a los valores extensivos de las variables, se pueden obtener utilizando diferentes tcnicas, sustitucin simblica de variables, o eliminacin de cuanticadores:
Eliminacin simblica de cuanticadores: Existen casos de consultas sobre BDdR donde para obtener un subconjunto de variables de forma intensiva no es suciente con la sustitucin simblica, bien por el tipo de las restricciones involucradas, o porque no existan sucientes variables para sustituir las no deseadas. En estos casos, ser necesario recurrir a la eliminacin de cuanticadores. La eliminacin de los cuanticadores ( y ) [101][152] se basa en la Descomposicin Algebraica Cilndrica [110] orientada a la proyeccin sobre aquellas variables que formarn parte de la solucin, tal como se presenta en
115
la seccin 4.4.4. Desafortunadamente, el peor caso de complejidad para la eliminacin de cuanticadores reales es doblemente exponencial en funcin del nmero de bloques de cuanticadores [153][39][27]. Los tipos de restricciones con los que se trabaja en esta tesis, sobre las cuales se puede asegurar que se obtendr una solucin a la eliminacin de cuanticadores se presentan en la tabla 4.1. En dicha tabla se puede observar que slo para las soluciones sobre el dominio de los reales es posible asegurar dicha eliminacin, por lo que es posible que la proyeccin devuelva una relacin vaca, para mantener la propiedad de cierre, cuando dicha eliminacin no sea posible.
Restriccin Dominio Tiene eliminacin de cuanticadores
S No No S No No
Informacin Extensiva: Cuando se realiza la proyeccin sobre las variables, tambin se ofrecer la posibilidad de obtener los valores extensivos de las variables, no su representacin simblica. Este caso tambin es de proyeccin en funcin de las variables, pero no ser necesario eliminar cuanticadores, ya que la salida ser extensiva. Para obtener dichos valores se construir un CSP con todas las restricciones y variables involucradas, aunque slo se mostrar como evaluacin de la proyeccin aquellas variables denidas en la sentencia del operador de proyeccin. La forma de la sentencia ser:
c V ALU ES [N ](atc (R) i .vj ,...,atk .vl )
donde de utiliza la palabra reservada VALUES para describir que se quieren obtener valores instaciados de las variables, y N representa el nmero de tuplas que se quieren obtener, ya que puede ser que las posibilidades sean innitas. Si no se establece en valor de N , por defecto se presentar una sola tupla.
116
Siendo C1 , . . ., Cn las restricciones de la relacin R involucradas en la proyeccin, el CSP que se crear para obtener el valor de las variables ser de la forma:
Maximizar(x) Minimizar(x)
C1 C2 . . . Cn //para las Ci donde x Xi
La gura 4.11 resume lo presentado en esta seccin, donde se muestra la divisin del tipo de proyeccin en funcin de la salida que se quiere obtener (intensiva o extensiva). En el caso de la extensiva o numrica, se construirn problemas de satisfaccin u optimizacin de restricciones para obtener valores concretos de las variables. En el caso de la salida intensiva, representado mediante restricciones, se eliminarn las variables no deseadas.
117
Si dichas variables pueden ser sustituidas por otras y las restricciones son polinmicas o lineales de igualdad, se recurrir a la obtencin de las Bases de Grbner. Si esto no es posible, se necesitar eliminar cuanticadores utilizando la Descomposicin Algebraica Cilndrica, cuya salida slo se puede asegurar para restricciones denidas sobre el dominio de los reales. En el caso de la proyeccin extensiva, se obtendrn tuplas con los valores concretos que pueden tomar las variables, como atributos univaluados. En el caso de la obtencin extensiva no existen limitaciones con respecto al tipo de restriccin o dominio de sus variables.
Proyeccin Extensiva (numrica) CSP COP Sustitucin Simblica Bases de Groebner
(Independiente del Dominio de las Variables, pero slo para ecuaciones lineales o polinmicas)
(Independiente del (Independiente del Dominio de las Dominio de las Variables y el tipo de Variables y el tipo de restricciones (lineales, restricciones polinmicas, (lineales, inecuaciones o polinmicas, ecuaciones) ) inecuaciones o ecuaciones) )
4.7.
Otra de las operaciones primitivas del lgebra relacional es la unin de conjuntos (R1 R2 ), la cual obtiene para dos relaciones de entrada, la unin vertical de las tuplas de ambas sin repeticin. La problemtica de este operador radica en que una tupla es una restriccin denida como una combinacin conjuntiva de atributos univaluados y atributos restriccin. En funcin de las soluciones que compartan dichas tuplas, se obtendrn distintas relaciones de salida. Analizando la unin entre dos restricciones denidas sobre las mismas variables, se pueden encontrar los cuatro casos, como se muestra en la gura 4.12, donde Cx y Cy representan las restricciones:
118
Si Cx
Cy y Cy
restriccin {Cx Cy }. Esto es lo que se muestra en las guras 4.12.a y 4.12.b. Si se cumple que Cx Cy o su equivalente Cy Cx , entonces la unin de ambas restricciones ser {Cy } o {Cx } respectivamente. Esto es lo que se muestra en las guras 4.12.c y 4.12.d.
Cx Cy Cx Cy Cx Cy Cx Cy
Cy
d. Cy incluida en Cx
Para obtener la relacin de salida para la operacin de unin, hay que tener en cuenta que las relaciones pueden estar formadas por varios atributos clsicos y restriccin. De esta forma, se compara cada tupla t1 R1 , con cada tupla t2 R2 , analizando si dichas tuplas son iguales o comparten soluciones. Sean las tuplas t1 y t2 , donde xi representa atributos univaluados, consti los valores de los atributos univaluados, y Ci atributos restriccin:
Ci Ci | Ci
Ci
119
4.8.
Por ltimo, queda por analizar la diferencia de conjuntos (R1 R2 ), la cual obtiene para dos relaciones de entrada las tuplas de R1 que no pertenecen a R2 . La problemtica de este operador tambin radica en que una tupla es una restriccin denida como una combinacin conjuntiva de atributos univaluados y atributos restriccin. En funcin de las soluciones que compartan dichas tuplas, se obtendrn distintas relaciones de salida. Analizando la diferencia entre dos restricciones, se pueden diferenciar cuatro casos, presentados en la gura 4.13, donde Cx y Cy representan restricciones: Si Cx y Cy no tienen ninguna solucin en comn, entonces la diferencia de las restricciones ser Cx , como se presenta en la gura 4.13.a. Si se cumple que Cx y Cy tienen alguna solucin en comn pero Cx tiene soluciones que no pertenecen a Cy , entonces la diferencia de las restricciones ser {Cx Cy }. Estos casos son los presentados en las guras 4.13.b y 4.13.c. Si se cumple que Cx Cy , entonces la diferencia entre las restricciones ser la restriccin vaca, como se muestra en la gura 4.13.d.
Cx Cy Cx Cx Cy Cx Cy
c. Cy incluida en Cx
d. Cx incluida en Cy
La negacin de las restricciones tambin conllevar la reescritura de las mismas en los trminos explicados en la seccin 4.5.1. Para obtener la relacin de salida para la operacin de diferencia, hay que tener en cuenta que las relaciones pueden estar formadas por varios atributos clsicos y restriccin. De esta forma, se compara cada tupla t1 R1 , con cada tupla t2 R2 , analizando si dichas tuplas son iguales o comparten soluciones. Sean las tuplas t1 y t2 , donde xi
120
representa atributos univaluados, consti los valores de los atributos univaluados, y Ci atributos restriccin:
t1 t2 t1
En otro caso: Si Ci | Ci Ci
4.9. Resumen
En este captulo se reformula la denicin de Bases de Datos de Restricciones para diferenciar los atributos clsicos o univaluados y los atributos restriccin. Esta divisin genera tres diferentes tipos de atributos: atributo clsico, atributo restriccin y atributo variable de restriccin. Esto hace necesario que las operaciones primitivas del lgebra relacional, tengan que ampliar tanto su sintaxis como su semntica. Las operaciones que se revisan en este captulo son:
La seleccin, ya que la condicin del predicado puede incluir restricciones y variables de restricciones.
La proyeccin, ya que se podr realizar proyeccin sobre las variables de los atributos restriccin, tanto de forma extensiva como intensiva.
Resumen
121
Estas operaciones se pueden redenir gracias a dos familias de tcnicas: por una parte, la construccin y resolucin de problemas de satisfaccin y optimizacin de restricciones para el tratamiento numrico de las restricciones; y por otra, la sustitucin de variables y eliminacin de cuanticadores para el tratamiento simblico de la informacin. En la tabla 4.2 se presenta un resumen del tratamiento de los distintos tipos de atributos en funcin de las distintas operaciones. En dicha tabla se reeja cundo se utiliza el lgebra relacional clsica (AR), cundo es necesario crear y resolver un CSP o un COP, o en qu circunstancias hay que tratar de forma simblica las restricciones.
ati atc i atc i .vj
Igual que AR Igual que AR Igual que AR Igual que AR Igual que AR
Creacin de CSP Igual que AR Igual que AR Creacin de CSP Creacin de CSP Creacin de CSP
5.1.
Introduccin
La utilizacin de restricciones permite una mayor expresividad, pero tambin implica procesos ms complejos para su tratamiento. Por esta razn, en esta memoria de tesis se propone una arquitectura que permita que los datos en forma de restriccin sean fcilmente almacenables, y por supuesto se puedan recuperar de una manera lo ms eciente posible.
124
Como tambin se ha presentado en esta tesis, las restricciones se almacenarn como un tipo nuevo (atributo restriccin), de manera que el lgebra relacional es extendida para dichas restricciones y las variables que las componen. Aunque existen trabajos [30] donde se analizan las variables que forman las restricciones, no abordan el problema de las variables como un atributo nuevo que puede participar en las operaciones de seleccin y proyeccin, siendo necesario enriquecer el lenguaje de consulta para este nuevo tipo de atributo. Pese a ampliar el modelo relacional con las restricciones, la propuesta aqu presentada mantiene las reglas relacionales descritas por Codd [33]. La idea principal es mantener todas las ventajas del lgebra relacional junto a la expresividad que permiten las restricciones. La combinacin de ambas reas es benecioso tanto para las bases de datos como para las construccin y resolucin de problemas de satisfaccin de restricciones, ya que las ventajas de una representan las deciencias de otra. En la tabla 5.1 se muestran las ventajas e inconvenientes de cada uno de los paradigmas utilizados, la combinacin de ambos dar como resultado una nueva arquitectura para gestores de Bases de Datos de Restricciones.
Ventajas
Desventajas
Representacin extensiva Almacenamiento nito Consultas por extraccin
Restricciones
Gran expresividad Datos innitos en espacio nito Inferencia de nueva informacin Representacin Intensiva Tcnicas de Inferencia
Tabla 5.1: Ventajas e Inconvenientes de Restricciones y BD Relacionales La teora de bases de datos relacionales es aceptada tanto por la comunidad de investigadores como por las empresas que desarrollan soluciones comerciales genricas e independientes de las aplicaciones que las utilizan, siendo la mejor solucin para el almacenamiento de gran cantidad de datos siempre que stos puedan ser representados de
125
forma nita. Para los datos clsicos se han desarrollado diferentes algoritmos, minimizando los tiempos de acceso a los registros. Por otro lado, la programacin con restricciones tiene gran capacidad expresiva, pero entre sus inconvenientes se encuentran que no existen soluciones generales que permitan crear problemas de satisfaccin u optimizacin de restricciones de forma automtica, lo que signica que cada modelo para resolver un problema tendr que ser construido a medida de las necesidades. Sin embargo, la construccin y resolucin de problemas de satisfaccin de restricciones necesita de conocimientos ms expertos y complejos, no existiendo un lenguaje estndar. Si ambos paradigmas se combinaran, se obtendra un sistema con gran capacidad de almacenamiento y gran capacidad expresiva, donde los modelos se puedan construir partiendo de la informacin almacenada de una manera fcil mediante un lenguaje sencillo y conocido como es SQL. Para el tratamiento de la informacin almacenable de forma nita se utilizarn las mejoras relacionadas con el lgebra relacional, mientras que el tratamiento de restricciones se har utilizando tcnicas y algoritmos de la programacin con restricciones y eliminacin simblica. El siguiente paso es denir una forma de almacenar las restricciones en una base de datos relacional, por lo que se propone utilizar Bases de Datos Objeto-Relacionales. Como se muestra en el captulo 2, las Bases de Datos Objeto-Relacionales permiten almacenar objetos manteniendo las caractersticas del lgebra relacional, por lo que ser la alternativa de soporte lgico utilizada en esta tesis.
5.2.
Las restricciones que se tratarn son las expresadas en la gramtica mostrada en la seccin 4.2, por lo que presentan una estructura compleja que no se puede almacenar en una base de datos relacional clsica. Por dicha razn, se utilizan las Bases de Datos ObjetoRelacionales para dar soporte a las restricciones numricas. De esta forma, las restricciones se describen en base a objetos como rboles sintcticos, donde los nodos internos son los operadores booleanos, operadores de comparacin y operadores numricos, mientras que las hojas sern las variables y las constantes que forman cada restriccin. De todas formas, en las siguientes secciones se presenta ms extensamente cmo son estos objetos, y cmo se harn persistentes en la base de datos. Sobre dichos objetos se construir un conjunto de mtodos para su obtencin, tratamiento y modicacin, produciendo una ampliacin
126
del gestor de bases de datos clsico aadindoles la capacidad de trabajar con restricciones y las variables que las forman.
Variables
Constante
En esta gura se representa una Restriccin como una Restriccin Atmica, o una conjuncin lgica de restricciones atmicas. A su vez, una Restriccin Atmica es la comparacin de dos Expresiones usando los comparadores (=, <, >, , ). Cada Expresin
127
es una combinacin de operadores aritmticos de variables y constantes denidas sobre enteros, naturales o otantes. En la gura 5.2 se muestra un ejemplo de cmo se representa la restriccin {a + b > c d + a < 8} como un objeto en forma de rbol sintctico. De esta forma, a una restriccin representada como un objeto mediante un rbol sintctico se le denominar objeto-restriccin.
> + a b c d +
< 8 a
Un rbol sintctico es una estructura recursiva que viene denida por una raz y dos rboles sintcticos (hijo izquierdo e hijo derecho) si es un operador binario, o una raz y un rbol sintctico si es unario. Cada uno de estos rboles se representarn mediante objetos que representan las distintas restricciones, donde cada uno de estos objetos tiene un identicador, OID (Object Identication), que lo hace nico y diferenciable de todos los dems. El tipo de restricciones a las cuales se les da soporte en esta nueva arquitectura son las restricciones lineales de igualdad, las inecuaciones lineales, las polinmicas de igualdad y las inecuaciones polinmicas, todas ellas sobre el dominio de los naturales, enteros y los otantes, las cuales se describieron en la seccin 4.2.1. Este soporte debe ser ofrecido de una manera eciente, y con una implementacin modular y fcil de adaptar a nuevos requisitos. Todo esto, presentando una arquitectura independiente de la naturaleza de los datos que se estn tratando, pudiendo crear modelos en funcin de las consultas y de los datos almacenados en la base de datos. Como ya se ha comentado en el captulo anterior, la forma de evaluar una consulta depender de qu quiere obtener el usuario (informacin intensiva o extensiva), del tipo de restricciones involucradas y del dominio de las variables que las constituyen. En funcin del tipo de las restricciones se utilizar un motor de inferencia u otro, por lo que cuando una restriccin es insertada, se analizar y se etiquetar de una de las cuatro formas: 'Lineal
128
de Igualdad' (LinEQ), 'Inecuacin Lineal' (LinIN), 'Polinmica de Igualdad' (PolEQ) o 'Inecuacin Polinmica' (PolIN). Dos de los problemas de las Bases de Datos Objeto-Relacionales son la complejidad que conlleva el almacenamiento y tratamiento de objetos, y el coste computacional que ello provoca. Para paliar dichos problemas, se propone una arquitectura con ciertas caractersticas que ayuden a que el proceso de evaluacin de las consultas sea ms fcil y eciente. Las sentencias sobre las BDdR ms costosas, computacionalmente hablando, son las relacionadas con las restricciones y sus variables, ya que ser necesario trabajar con objetos en lugar de con informacin exclusivamente extensiva acorde con el lgebra relacional clsica. En el caso de las restricciones, se almacenar informacin adicional relacionada con ellas, con el objetivo de facilitar su posterior tratamiento. Este anlisis se realizar cuando las restricciones son aadidas a la base de datos (en tiempo de compilacin), mejorando as los tiempos de la evaluacin de consulta (en tiempo de ejecucin). Pese a que este tratamiento har ms lenta la insercin de restricciones, se compensa con la ganancia en las consultas, que son procesos que se suelen repetir ms en una base de datos. Para cada restriccin se almacenarn distintas caractersticas:
129
heurstica de resolucin de problemas de satisfaccin de restricciones, comenzar la bsqueda por las variables con tamaos de dominios ms pequeos.
Figura 5.3: Indexacin entre variables y restricciones Cuando se crea una Base de Datos de Restricciones se crean tambin estas tres tablas (Restricciones, Variables y Restricciones/Variables), que mantienen las relaciones entre las variables y las restricciones. Estas tablas disminuyen la complejidad computacional de las consultas ya que con una sola consulta se puede conocer qu restricciones tienen qu variables y viceversa. Estas tablas permiten identicar cada restriccin (tabla Res-
tricciones), cada variable (tabla Variables) y establecer la relacin entre ambas (tabla Restricciones/Variables), lo que ayuda a detectar las restricciones relacionadas con una
consulta sin necesidad de tratarlas todas. Estas tablas no son visibles ni accesibles por el usuario de una forma directa, pero s de una manera implcita cuando se aaden, modican, borran o consultan restricciones de la base de datos. La tabla Restricciones almacena
130
el idRestriccin que corresponde al identicador del objeto (OID) generado por el sistema, y la Etiqueta acorde con el tipo de restriccin que representa. La tabla Variables almacena, para cada variable, su identicador, su nombre y el dominio (Natural, Entero o Flotante) al que pertenece. La tabla Restricciones/Variables almacena la relacin entre las variables y las restricciones, y sobre qu rango (Rango Inicio, Rango Fin) estn denidas cada una de las variables para cada una de las restricciones en las que participan. A su vez, las restricciones necesitarn una tabla donde los objetos (rboles sintcticos) se almacenarn de forma persistente, la cual tendr los campos presentados en la gura 5.4. Dicha gura presenta una tabla que permite serializar la informacin relativa al objeto-restriccin para poderla hacer persistente en una base de datos basado en el teorema de Cayley y Prfer revisado en [108]. Un objeto-restriccin se almacenar como un conjunto de tuplas con el mismo Id Restriccin. Cada una de estas tuplas representa un subrbol sintctico cuyo identicador se almacena en el atributo Id rbol. Cada uno de estos rboles tiene como atributos: una Raz, que puede tomar como valor uno de los operadores (, <, >, , , =, +, , ); el Hijo Izquierdo, que puede ser a su vez un subrbol con un determinado Id rbol, un identicador de variable o una constante; y el Hijo Derecho con la misma semntica que el hijo Izquierdo. Los atributos Hoja Izquierdo y Hoja Derecho describirn si los subrboles, Hijo Izquierdo e Hijo Derecho respectivamente, representan un subrbol (si toma el valor 0), el identicador de una variable (si toma el valor 1) o una constante (si toma el valor 2). De esta manera, pese a que los rboles sintcticos son por denicin una estructura recursiva, no es necesario hacer consultas recursivas para obtener un objeto-restriccin completo, ya que todas las tuplas de los subrboles que lo forman se caracterizan por tener un mismo
Id Restriccin.
rbol Sintctico Restriccin Id_Restriccin: Entero Identificador de la Restriccin Id_rbol: Entero Identificador del rbol Raiz: Cadena con la raiz del rbol Hijo_Izquerdo: Entero Identificador del rbol Izquierdo, variable o constante Hoja_Izquerdo: 0, 1 2 dependiendo de si es rbol, variable o constante Hijo_Derecho: Entero Identificador del rbol Derecho, variable o constante Hoja_Derecho: 0, 1 2 dependiendo de si es rbol, variable o constante
131
Para la restriccin anterior ({a + b > c d + a < 8}), una forma de serializarla para almacenarla en una tabla es la mostrada en la gura 5.5. Aunque en el ejemplo se muestran los nombres de las variables, en realidad se almacenar el identicador de cada una de ellas establecido en la tabla interna Variables, lo que facilitar el cambio de nombre y dominio de las variables, ya que slo se almacenan en un lugar, cumpliendo as la segunda regla de Codd sobre el acceso garantizado [33][51].
rbol Sintctico Restriccin Id_Restriccin Id_rbol Raiz 1 1 1 1 1 ... 1 2 3 4 5 ... AND > < + + ... Hijo Izquerdo 2 4 5 a d ... Hoja Hijo Hoja Izquerdo Derecho Derecho 0 0 0 1 1 ... 3 c 8 b a ... 0 1 2 1 1 ...
Las restricciones sern tratadas de diferente manera en funcin de cmo se especique en las sentencias de consulta a la base de datos, dependiendo de si su tratamiento es numrico o simblico. Al representarse la informacin como un objeto, se permite denir un conjunto de mtodos pertenecientes a dicho objeto-restriccin que har posible crear diferentes modelos dependiendo de las restricciones involucradas y de la evaluacin de la consulta necesaria.
5.3.
En este documento se propone una arquitectura que trata la optimizacin temporal de las consultas cuando hay involucradas restricciones en ellas. Dicha arquitectura est basada en la utilizacin de un gestor de Bases de Datos Objeto-Relacional, junto a la construccin de las tres tablas internas comentadas y la denicin del objeto-restriccin. El principal objetivo es aadir una capa que haga lo ms transparente posible el uso de restricciones por parte del usuario, ampliando la sintaxis y la semntica de SQL, cambiando
132
Construccin de Modelos
Modificacin de la estructura de la base de datos Modificacin del contenido de la base de datos
Resolutores
Resolutores de restricciones
Resolutores Simblicos
BDdR
Datos
Figura 5.6: Arquitectura de la Base de Datos de Restricciones su sintaxis lo menos posible y siguiendo la losofa del estndar. Dicha ampliacin conlleva mantener toda la semntica de SQL de forma que si no existiesen atributos del tipo restriccin, sera un gestor de bases de datos relacional clsico, lo que facilita la adaptacin progresiva de bases de datos ya existentes a una Base de Datos de Restricciones. Esto signica que, con respecto al tratamiento de los datos clsicos y no del tipo restriccin, ni la semntica ni la sintaxis de SQL sufrirn ningn cambio, slo se ampliarn para el tratamiento de las restricciones y las variables que las forman. La arquitectura propuesta toma como nombre LORCDB, derivado de algunas de sus caractersticas expresadas en ingls (Labelled Object-Relational Constraint Database). La arquitectura, esquematizada en la gura 5.6, se divide principalmente en cuatro capas:
133
necesario el tratamiento de restricciones para la evaluacin de la consulta. Si no tiene restricciones involucradas, la consulta ser tratada por el gestor de Base de Datos Objeto-Relacional y devolver la informacin obtenida al usuario sin necesidad de un tratamiento especial. En caso de que la consulta implique el tratamiento de restricciones, el mdulo Construccin de Modelos construir el modelo necesario para tratar la consulta.
Modicacin del contenido de las tablas de la base de datos: Este mdulo se comunicar con la base de datos y necesitar construir problemas de satisfaccin y optimizacin de restricciones. Entre las acciones que integra se encuentra la Insercin de Tuplas en una Tabla y la Modicacin del Contenido
de una Tabla, tal como se muestra en la gura 5.7. La Insercin de Tuplas en una Tabla aade una tupla con restricciones en una tabla determinada, construyendo el rbol sintctico, obteniendo la envolvente (Rango Inicio, Rango Fin) con un COP para conocer los valores mximos y mnimos que pueden tomar cada una de las variables, y etiquetando la restriccin en funcin de su tipo. Tambin es necesario comprobar la integridad de la restriccin (que tiene al menos una solucin), ya que no tendra que permitirse introducir restricciones como por ejemplo {x < y y < x}, ya que no existe ningn valor de x e
y donde dicha restriccin se cumpla. Por otro lado, el submdulo de Modicacin de Contenido de una Tabla se encarga de modicar aquellas tuplas de
una relacin que cumplen una determinada condicin, por lo que en caso de que
134
Insercin de Tuplas en una Tabla Comprobar si la tupla ya existe (Creando y resolviendo un CSP si es necesario)
Modificacin del Contenido de una Tabla Comprobar si la tupla ya existe (Creando y resolviendo un CSP si es necesario)
Obtener la Relacin
Figura 5.7: Modicacin del contenido de una Bases de Datos de Restricciones existan restricciones involucradas, necesitar construir y resolver un CSP tal como se ha explicado en la seccin 4.5 para la seleccin de tuplas que cumplan una condicin.
Resolutores: Est formado por las herramientas que resolvern, siempre que la
sentencia lo requiera, los modelos construidos en la capa Construccin de Mode-
los. Como ejemplo de herramientas en esta tesis se han utilizado JSolverT M [78] y
MathematicaT M v.5 [128], donde JSolverT M evaluar las sentencias de forma numrica y MathematicaT M v.5 lo har de manera simblica, aunque podran ser sustituidas por otras herramientas equivalentes.
135
Al ser una arquitectura modular, permite el intercambio de los resolutores de modelos, de esta forma provee de mayor capacidad de adaptacin a nuevos tipos de restricciones, nuevos dominios de variables, aadir otras operaciones denidas para la consulta, y ampliar las herramientas que resuelvan los modelos. Esto es posible ya que se utiliza el patrn
Seleccin: La operacin de seleccin se realiza sobre una relacin que puede ser
una tabla de la base de datos o la relacin de salida de otra operacin, lo cual se hace en Obtener las relaciones involucradas. De entre las tuplas de dicha relacin, formarn parte de la salida de la operacin de seleccin aquellas que cumplan una determinada condicin. En el submdulo Seleccionar las restricciones se obtendrn aquellas tuplas que cumplan la condicin en funcin del lgebra relacional sobre los atributos clsicos, que puedan cumplir la condicin en funcin de los valores mximos y mnimos que puedan tomar las variables (envolvente), y que tengan variables relacionadas con el predicado. Para conocer cules de estas tuplas cumplen el predicado, siempre que estn involucrados atributos restricciones, ser necesario construir un CSP de la forma que se ha explicado en el captulo anterior (seccin 4.5).
136
Consulta
Seleccin
Obtener las Relaciones involucrada Obtener Relacin
Proyeccin
Producto Cartesiano
Obtener Relaciones
Unin
Obtener Relaciones
Diferencia
Obtener Relaciones
Seleccin de Restricciones
Realizar combinaciones
Creacin Creacin de Creacin y Creacin y de Modelo Modelo resolucin resolucin para la para la de COP de CSP Sustitucin Eliminacin de de Variables Variables
Proyeccin: Esta es la operacin ms compleja, ya que la proyeccin es una seleccin horizontal de los atributos que forman la relacin, por lo que tambin pueden ser restricciones o variables de restriccin. La mayor problemtica la establece la obtencin de las variables de restriccin, que pueden ser conjuntos de valores instanciados de las variables (obtenidos mediante CSP o COP), o nuevas restricciones inferidas de las originales por la eliminacin o sustitucin de variables, como se explic en el captulo anterior (seccin 4.6). Al igual que en la seleccin, se tendr que obtener primero la relacin de entrada de la operacin (tabla de la base de datos o relacin de salida de otra operacin) y los atributos restriccin relacionados con la proyeccin que se pretende realizar.
Unin: En el caso de que las tuplas contengan atributos restriccin hay que cerciorarse de que no existan dos tuplas repetidas en la relacin de salida como se analiz
137
en la seccin 4.7. Si los atributos clsicos toman valores diferentes, o las envolventes de las distintas restricciones no tienen valores en comn, no ser necesario crear y resolver un CSP.
Diferencia: Tiene las mismas caractersticas que la unin, analizando si las restricciones no tienen valores en comn o las soluciones de una estn incluidas en la de otra (seccin 4.8), por lo que tambin en algunos casos ser necesario crear y resolver un CSP.
5.4.
Una vez introducidos los distintos mdulos de la arquitectura, esta seccin presenta la sintaxis y la semntica de las sentencias que hacen uso de ellos. Este conjunto de sentencias denirn una ampliacin de SQL para Bases de Datos de Restricciones que recibir el nombre de CORQL (Constraint Object-Relational Query Language).
Como se ha explicado en este captulo, las restricciones se almacenarn como objetos en una Base de Datos Objeto-Relacional, pero con una estructura de tablas internas que permite indexar las variables y almacenar los valores mximos y mnimos de cada variable para hacer las consultas ms ecientes. Esto signica que cuando una LORCDB es creada con la sentencia anterior, tambin estas tres tablas son creadas. Estas tablas estarn protegidas ante el acceso de los usuarios de forma explcita, slo permitiendo que se modiquen por el sistema cuando las restricciones son aadidas, modicadas o borradas.
138
con la nica diferencia de poder crear columnas (atributos) de tipo restriccin (Atributo Restriccin). Un ejemplo de creacin de tablas puede ser:
CREATE TABLE Parcelas(IdPropietario Integer, Nombre String, Parcela Constraint)
Aunque tambin es posible crear una tabla con varios atributos restriccin. Por ejemplo, las parcelas y las casas que contiene las parcelas:
CREATE TABLE ParcelasYCasas(IdPropietario Integer, NombrePropietario String, Parcela Constraint, Casa Constraint)
139
Como se muestra en el ejemplo, es posible denir el dominio de cada variable, teniendo en cuenta que si una variable participa en varias restricciones, es necesario que en todas est denida sobre el mismo tipo, aunque el rango de sus valores pueda tomar diferentes valores. Tambin es posible acotar los posibles valores que puede tomar una variable utilizando la sintaxis Rango Inicio..Rango Fin, que en caso de no especicarse ser .. + que corresponder por defecto con {Integer.MIN VALUE..Integer.MAX VALUE} para las variables de Enteros, {0..Integer.MAX VALUE} para las variables de Naturales, y {Float.MIN VALUE..Float.MAX VALUE} para las variables de Flotantes. Estos valores son los denidos en el lenguaje JavaT M usado para la implementacin del lenguaje CORQL. Cuando una restriccin se aade a la base de datos, se comprueba su consistencia, ya que si no existe ninguna solucin para ella no se realizar su insercin, por ejemplo
x2 > 2x2 .
Resumiendo, los pasos para almacenar una tupla con atributos restriccin en una LORCDB son: 1. 2. Comprobar que la sintaxis de la sentencia es correcta. Comprobar que ninguna de las variables de la restriccin de entrada est ya en la base de datos con otro tipo. En caso de que esto ocurra se mostrar un error y no se realizar la insercin. 3. 4. 5. Comprobar que dicha tupla no est ya almacenada. Crear un objeto con la restriccin y almacenarlo en la tabla Restricciones. Rellenar el campo de la etiqueta en la tabla Restricciones en funcin del tipo de restriccin que sea (LinEQ, LinIN, PolEQ, PolIN). 6. Si la variable ya est en la base de datos no se volver a incluir a la tabla Variables, s se incluir en caso contrario.
140
7.
Crear tuplas en la tabla Restricciones/Variables para la nueva restriccin y todas las variables, tanto las nuevas como las que estaban.
8.
Crear un COP, al que se le incluir el rango denido en la insercin, para conocer para cada variable de la restriccin su valor mayor y menor, y almacenarlos en los campos Rango Inicio y Rango Fin de la tabla Restricciones/Variables. Tras realizar estos pasos, las tablas para la insercin anteriormente mostradas quedarn
como se muestra en la gura 5.9, donde la tabla ParcelasYCasas tiene dos atributos de tipo restriccin. Los atributos restriccin contienen el identicador del objeto que se almacena en la tabla Restricciones, a la vez que sus variables son almacenadas en la tabla Variables para denir la indexacin con las restricciones mediante la tabla Restricciones/Variables. Pese a que el rango de la variable x denida en la sentencia es 10..10, el mximo valor que puede tomar para que la restriccin {x2 + y 2 49} sea satisfactible es 7..7, que sern los almacenados en la tabla Restricciones/Variables. Con respecto a la etiqueta, en este caso las restricciones son inecuaciones polinmicas (PolIN) y lineales (LinIN). Estas etiquetas ayudarn a escoger qu herramienta es ms adecuada para evaluar las distintas consultas sobre las diferentes tuplas.
ParcelasYCasas
Id 101 Nombre J. Pineda Parcela 1 Casa 2
Restricciones
Id 1 2 Restriccin x2+y2=<49 x>0 & x=<5 & y>0 & y=<6.5 Etiqueta PolIN LinIN IdRes 1 1 2 2
Restricciones/Variables
IdVar 1 2 1 2 Rango_Ini -7 -7 0 0 Rango_Fin 7 7 5 6.5 Id 1 2
Variables
Nombre Tipo x y Float Float
141
El parmetro <lista de atributos(ti )> representa diferentes tipos de proyeccin realizada sobre los atributos pertenecientes en la tabla ti , que pueden ser atributos clsicos, restricciones o variables de restricciones. Si se quieren obtener atributos de distintas tablas (t1 , t2 , . . .) conllevar la realizacin del producto cartesiano entre la relacin resultante de cada tabla. El parmetro predicado hace referencia al operador de seleccin, deniendo las condiciones que tienen que cumplir los atributos de la relacin. Por ltimo UNION y
142
| 'CONSTRAINTS' '('listaAtVariables')' | 'FULL CONSTRAINTS' '('listaAtVariables')' | 'VALUES'[n] '('listaAtVariables')' | ['MIN' | 'MAX'] 'VALUE' '('atc .variable')' | 'BOOLEAN VALUE' '('atc ')'
;
Cuando la proyeccin se realiza sobre atributos variables de restriccin, existen diferentes alternativas en funcin de cmo y qu tipo de informacin se quiere obtener: Para determinar qu restricciones de la relacin est involucradas en la operacin de proyeccin, se utilizan palabras reservadas del lenguaje VERTICAL y HORIZONTAL. Dichas palabras representan si la relacin entre las variables se pueden hacer entre restricciones de la misma tupla (VERTICAL), o del mismo atributo pero entre distintas tuplas (HORIZONTAL). Si no se especica, la opcin por defecto es HORIZONTAL. Cuando se quiere obtener como salida otra restriccin, se utiliza la palabra reservada CONSTRAINTS, pero cuando se quiere especicar que se quiere hacer sustitucin simblica y no simplemente eliminacin, se utiliza la sentencia FULL CONSTRAINTS. Cuando se quiere hacer una proyeccin sobre atributos variable de restriccin, pero obteniendo valores instanciados de las variables, se utiliza la palabra VALUES, lo que devolver una tupla con valores de las variables. En caso de querer obtener ms de una tupla, se utilizar VALUES [n], donde n representa el nmero de tuplas que se quieren obtener. Si se quiere obtener slo un valor de una variable, el mnimo o el mximo, ser ['MIN' | 'MAX'] 'VALUE' la sentencia utilizada. Cuando se quiere conocer si existe un valor que hace satisfactible cada una de las restricciones de un atributo restriccin, se utiliza la sentencia BOOLEAN VALUE, donde la salida ser true o false.
143
Con respecto al predicado, y siguiendo la denicin introducida en 4.5, la sintaxis ser de la forma:
predicado := condicin
| condicin ['AND' | 'OR'] predicado
[atc | restriccin]
| atc ['<' | '' | '>' | '' | '=' | '<>' | '&' | '' | '' | '' | '']
144
<tipo de la columna>
donde la columna aadida puede ser un atributo restriccin. La otra opcin es borrar una columna que tambin puede ser un atributo restriccin. En ese caso, se eliminarn todas las restricciones que estn en la tabla Restricciones, las variables que no pertenezcan a otras restricciones de Variables, y por supuesto las entradas que relacionen las variables y restricciones de Restricciones/Variables. La sintaxis sera:
ALTER TABLE <nombre de la tabla> DROP <nombre de la columna>
WHERE predicado
donde la columna de la sentencia tiene que estar involucrada en el predicado. Con esta operacin ser posible cambiar el contenido de un atributo clsico, un atributo restriccin, o el nombre de una variable de una restriccin. Cambiar el nombre de una variable no es ms que modicar un registro de la tabla Variables. Con respecto al borrado de una tupla, la sintaxis ser:
5.5. Resumen
En este captulo se presenta la arquitectura que da soporte a la nueva denicin de Base de Datos de Restricciones. La arquitectura LORCDB tiene caractersticas que ayudarn a que la evaluacin de consultas sea ms fcil y eciente, almacenando informacin
Resumen
145
sobre las restricciones. La informacin que almacena est relacionada con el rango del dominio donde est denida, el tipo de restriccin y la relacin entre restricciones y las variables que las conforman. Para trabajar con atributos del tipo restriccin, se ha denido una extensin de SQL llamado CORQL, deniendo la gramtica relativa a las distintas operaciones que se pueden realizar sobre una Base de Datos de Restricciones, como su creacin, creacin de tablas, insercin de tuplas, consultas, modicaciones y borrados. Para ello se ha utilizado la redenicin de las cinco primitivas del lgebra relacional, teniendo en cuenta los atributos restriccin y atributos variable de restriccin, propuestos en el captulo anterior.
6.1.
Como ejemplo para hacer ms claros los pasos que conforman los distintos algoritmos relacionados con la implementacin de cada una de las operaciones del lgebra relacional para BDdR, se utiliza la base de datos mostrada en la gura 6.1. Dicha base de datos almacena las provincias (tabla Provincia) de fabricacin de distintos productos (tabla Pro-
ducto). Cuando se realiza la venta de dichos productos ser necesario pagar unos impuestos
provinciales si se venden dentro de su misma provincia (tabla ImpuestosProvinciales), impuesto nacionales si se venden a otra provincia del mismo pas, donde se pagarn los impuestos en funcin de la provincia donde se realice la venta (tabla ImpuestosNacionales), o impuestos internacionales si se venden a otro pas (tabla ImpuestosInternacionales) lo que depender del pas donde se haga dicha venta. Algunas de estas tablas tienen atributos de tipo Restriccin, donde se denir una relacin entre variables. En el caso de la tabla Provincia se establecer la relacin entre las
148
Precio ImpuestosInterNacionales (k)IdPas: int Impuestos: Constraint ImpProv Producto (k)IdProducto: int Nombre: String Precio: float IdProvincia: int 1..1 0..n Provincia (k)Id: int Nombre: String Superficie: Constraint 1..1 1..n ImpuestosProvinciales (k)IdProvincia: int Impuestos: Constraint ImpProv ImpuestosNacionales 1..n (k)IdProvincia: int Impuestos: Constraint ImpNac
Precio
Figura 6.1: Diagrama de Tablas del ejemplo variables espaciales x e y en el atributo restriccin Supercie. Algunos ejemplos concretos de estas restricciones son los presentos en la gura 6.2.
Id 1 2 Nombre Sevilla Cdiz Provincias Superficie -27 x +39 y < 5682 AND 8x+67 y < 14656 AND 75 x +19 y < 15575 28 x +9 y < 6053 AND 5 x -42 y < -3149 AND -33 x +33 y < -1683 34 x +80 y < 14050 AND 16 x -13 y < 3421 AND -41 x -67 y < -13481 AND -9 x < -1665
Huelva
-24x +10y < -7298 AND 28x +30 y < 12806 Crdoba AND 18x -24 y < 4986 AND -22x -16 y < -8678 Mlaga Jaen Granada ... 7 x +36 y < 20488 AND 39 x -22 y < -10270 AND -46 x -14 y < -8660 88 y < 50776 AND 57 x < 7980 AND -39 x -88 y < -51220 AND -18 x < -936 39 x +88 y < 51220 AND -110 y < -57200 AND -39 x +22 y < 10270 ...
5 6 7 ...
Figura 6.2: Ejemplo de tabla Provincias Otro ejemplo de atributo restriccin es ImpuestosNacionales.Impuestos, que relaciona las variables ImpNac, ImpProv y Precio. Al igual que en las bases de datos relacionales clsicas, se pueden denir relaciones entre los atributos univaluados de distintas tablas mediante la denicin de claves ajenas, como la que existe entre Provincias.id e Im-
puestosNacionales.IdProvincia. Aunque en las BDdR se crean relaciones entre las variables de las restricciones de forma implcita, por ejemplo entre los atributos restriccin
Implementacin de la Seleccin
149
nacionales. Dicha relacin se representa en la gura 6.1 con lneas discontinuas junto al
nombre de las variables. Cabe destacar el atributo Precio, que puede representar tanto un atributo clsico, cuando se denota como Producto.Precio, como un atributo variable de restriccin ImpuestosNacionales.Impuestos.Precio. Un ejemplo del contenido de las tablas ms relevantes, ya que tienen atributos de tipo restriccin, se muestra en la gura 6.3. Como se puede observar, las restricciones tienen variables que las relacionan, las cuales estarn almacenadas e indexadas en las tablas Restricciones, Restricciones/Variables y
ImpuestosProvinciales Impuestos
0<Precio<3.000 AND ImpProv=0.05*Precio+50 3.000<=Precio<6.000 AND ImpProv=0.06*Precio+53 12.000<=Precio AND ImpProv=0.07*Precio+61 0<Precio<24.000 AND ImpProv=0.09*Precio 0<Precio<38.000 AND ImpProv=0.10*Precio+50 0<Precio<12.000 AND ImpProv=0.02*Precio+50 12.000<=Precio<41.000 AND ImpProv=0.13*Precio+50 ...
IdProvincia 1 1 2 2 3 4 4 ...
ImpuestosNacionales Impuestos
0<=ImpProv<500 AND ImpNac=ImpProv + 0.02Precio 500<ImpProv AND ImpNac=ImpProv + 0.01Precio 0<=ImpProv<200 AND ImpNac=Precio*Precio*0.05 200<=ImpProv AND ImpNac=Precio*0.07 ImpNac=ImpProv *ImpProv+99 0<=Precio<2000 AND ImpNac=ImpProv + 0.01Precio 2000<=Precio<=5000 AND ImpNac=0.11*Precio + 54 ...
Figura 6.3: Ejemplo de tablas que almacenan Restricciones Sobre estas tablas se presentarn distintos ejemplos para las cinco operaciones primitivas del lgebra relacional, donde se reejar cmo se incorporan distintas estrategias para el tratamiento de restricciones, junto a los detalles de cada uno de los algoritmos necesarios para que la evaluacin de dichas operaciones sea eciente.
6.2.
Implementacin de la Seleccin
Para que la implementacin de la seleccin sea eciente, se dene una estrategia para tratar, en un determinado orden, cada una de las condiciones del predicado. La estrategia de evaluacin de la seleccin consistir en, partiendo de una relacin de entrada (R), obtener un subconjunto horizontal RSalida . Para obtener la salida, se ejecutar una secuencia de pasos donde en cada uno de ellos se eliminarn las tuplas que no cumplan una parte de
150
la condicin. Esto vendr determinado por el tipo de atributo involucrado en el predicado, tal como se muestra en la gura 6.5. 1.
2.
3.
Implementacin de la Seleccin
151
en la comparacin cumplen o no una condicin. Por ejemplo si se comparan dos restricciones Cx y Cy , ambas denidas sobre las variables v1 e v2 , donde los rangos son Cx (v1 :[5..15], v2 :[20..30]) y Cy (v1 :[20..25], v2 :[40..55]). Si el predicado fuera Cx <Cy , se puede asegurar que la tupla a la que pertenecen ambas restricciones formar parte de la relacin de salida, mientras que si el predicado fuera Cx Cy , la tupla a la que pertenecen las restricciones no formara parte de la relacin de salida.
v2 :[10..55]), y el predicado Cx Cy , pese a que los dominios de las variables en Cx estn incluidas en los dominio de las variables en Cy , no se puede asegurar
que se cumple el predicado para las restricciones. Un ejemplo donde los rangos de las variables estn incluidos dentro de otra, pero no sus soluciones, es el mostrado en la gura 6.4. En esos casos ser necesario crear y resolver un problema de satisfaccin de restricciones con ambas restricciones de la forma presentada en la seccin 4.5.1.
v2 Cy Cx
v1
Cy
Un ejemplo de consulta con seleccin sobre las tablas de la gura 6.3, y siguiendo los pasos descritos anteriormente puede ser:
Obtener los impuestos provinciales, impuestos nacionales e impuestos internacionales que tienen que pagar los productos de la provincia con identicador igual a 1. Adems se
152
R'
R'
R''
R''
Atributos Restriccin: Satisfactibilidad de las envolventes con lgebra relacional
R'''
R'''
RSalida
desea que de entre todas las posibilidades de impuestos provinciales, slo presentar los impuestos para los productos cuyos precios son mayores de 4.000 y menores de 5.000, y que para cada impuesto nacional (ImpNac) el impuesto internacional siempre sea menor que ImpN ac 1.25.
La sintaxis de consulta para el ejemplo ser de la forma:
SELECT * FROM ImpuestosProvincial, ImpuestosNacionales, ImpuestosInternacionales WHERE ImpuestoProvinciales.idProvincia = 1 AND ImpuestoNacionales.idProvincia = 1 AND
Implementacin de la Seleccin
153
ImpuestoProvincial.Impuestos.Precio > 4000 AND ImpuestoProvincial.Impuestos.Precio < 5000 AND ImpuestosInternacionales.Impuestos < (ImpInterN ac = ImpN ac 1,25 FOR {ImpInterN ac} AND ImpuestosInternacionales.Impuestos.ImpNac=ImpNac)
Este ejemplo muestra un predicado donde hay involucrados atributos clsicos, como es el caso de ImpuestoProvinciales.id =
ImpuestosInternacionales.Impuestos < (ImpInterN ac = ImpN ac 1,25), y variables de restriccin como ImpuestoProvincial.Impuestos.Precio > 4000. Todos estos tipos de atributos ayudarn a explicar la problemtica del tratamiento de los datos de tipo restriccin y cmo son evaluados en la seleccin. Para cada una de las relaciones (tablas) que aparezcan en el predicado de la consulta se resolvern de forma independiente, al menos que existan condiciones que comparen dos relaciones. El orden de resolucin ser el mostrado en la gura 6.5, que para este ejemplo sern: 1.
Atributos Clsicos (univaluados). Eliminar todas aquellas tuplas que no cumplan las condiciones relativas a los atributos univaluados.
Esta eliminacin es la que hacen las bases de datos relacionales clsicas, evitando el tratamiento de dichas tuplas mediante problemas de satisfaccin de restricciones para saber si se cumple una condicin. Si no se almacenaran los atributos restriccin y los univaluados de forma independiente esto no sera posible, con el consecuente gasto computacional. En el caso del ejemplo, no pertenecern a la relacin de salida aquellas tuplas de la tabla ImpuestoProvinciales, cuyo atributo id sea distinto de 1, junto a las tuplas de
154
IdProvincia 1 1 1
ImpuestosProvinciales Impuestos
0<Precio<3.000 AND ImpProv=0.05*Precio+50 3.000<=Precio<6.000 AND ImpProv=0.06*Precio+53 12.000<=Precio AND ImpProv=0.07*Precio+61
IdProvincia 1 1
ImpuestosNacionales Impuestos
0<=ImpProv<500 AND ImpNac=ImpProv + 0.02Precio 500<ImpProv AND ImpNac=ImpProv + 0.01Precio
IdPas
1 2 3 4 5 6 7 8 9 10 11 12 13
ImpuestosInternacionales Impuestos
ImpInterNac=ImpNac +10 ImpInterNac=ImpNac+12 ImpInterNac=ImpNac*1.02 ImpInterNac=ImpProv + 100 ImpInterNac=ImpProv + 0.01Precio ImpInterNac=ImpProv + 0.02Precio ImpInterNac=ImpNac*1.20 ImpInterNac=ImpNac*1.0545 ImpInterNac=ImpProv ImpInterNac=ImpProv + 26 ImpInterNac=ImpProv + 98 ImpInterNac=Precio*0.025 ImpInterNac=Iva*Valor*0.025
Figura 6.6: Relaciones tras la eliminacin por atributos univaluados (Paso I) Esto tambin se transformar en una consulta clsica sobre la base de datos, ya que la envolvente est almacenada como dos atributos numricos de la relacin Res-
ciales cuyo valor de la variable Precio no contenga valores entre 4.000 y 5.000.
De forma que nalmente podrn formar parte de la relacin de entrada las tuplas que contienen la restriccin del atributo ImpuestosProvinciales.Impuesto: 3.000
P recio < 6.000 AN D ImpP rov = 0.06 P recio + 53. Tras esta eliminacin, las
tuplas que hasta el momento estarn involucradas en la consulta son las mostradas en la gura 6.7. 3.
Implementacin de la Seleccin
155
IdProvincia 1
ImpuestosProvinciales Impuestos
0<Precio<3.000 AND ImpProv=0.05*Precio+50
IdProvincia 1 1
ImpuestosNacionales Impuestos
0<=ImpProv<500 AND ImpNac=ImpProv + 0.02Precio 500<ImpProv AND ImpNac=ImpProv + 0.01Precio
IdPas
1 2 3 4 5 6 7 8 9 10 11 12 13
ImpuestosInternacionales Impuestos
ImpInterNac=ImpNac + 10 ImpInterNac=ImpNac+12 ImpInterNac=ImpNac*1.02 ImpInterNac=ImpProv + 100 ImpInterNac=ImpProv + 0.01Precio ImpInterNac=ImpProv + 0.02Precio ImpInterNac=ImpNac*1.20 ImpInterNac=ImpNac*1.0545 ImpInterNac=ImpProv ImpInterNac=ImpProv + 26 ImpInterNac=ImpProv + 98 ImpInterNac=Precio*0.025 ImpInterNac=Iva*Valor*0.025
Figura 6.7: Relaciones tras la eliminacin por atributos variables de restriccin (Paso II) necesario analizar las restricciones que la forman. Tambin las envolventes de las variables, donde se aproxima su comportamiento con los valores mximos y mnimos que pueden tomar, ayudan a conocer si una tupla con restricciones va a formar o no parte de la solucin. Para dos restricciones Cx y Cy , donde al menos una de ellas formar parte de una relacin de la base de datos, la relacin del rango entre una de las variables que tienen en comn puede ser de diferentes formas, como se muestra en la gura 6.8, lo que puede ayudar a conocer si cumplen o no un predicado. En el caso de que ambas restricciones formen parte de una relacin, el anlisis se realiza comparando cada una de las restricciones de una de las relaciones con todas las restricciones de la otra, lo que conllevar nm combinaciones, donde n y m representan el nmero de tuplas de cada una de las relaciones respectivamente. Un ejemplo podra ser un predicado que incluyera entre sus condiciones ImpuestosProvinciales.Impuestos
ImpuestosNaciones.Impuestos, donde se tendran que comparar todas las restricciones de los impuestos provinciales con cada una de las restricciones de los impuestos nacionales.
Cx
(a)
Cy
Cx
(b)
Cy
Cx
(c)
Cy
Cy
Cx (d)
Cx Cy
(e)
Figura 6.8: Tipos de relaciones entre los rangos de las variables de dos restricciones
156
En el trabajo de P. Veltri [150] se introdujo esta idea de aproximacin mediante cajas de consistencia, para mejorar los tiempos de evaluacin de consulta en las BDdR. Pero dicho trabajo tiene ciertas limitaciones, ya que slo dene las operaciones y tipos de relacin entre restricciones lineales que representan polgonos en dos dimensiones. Esta tesis se basa en dicha propuesta, pero extendiendo su uso a todo tipo de restriccin polinmica, que no tienen que representar un polgono, y para un nmero indeterminado de dimensiones. Adems, dicho trabajo aade las restricciones que describen la caja de consistencia a la restriccin que acota, mientras que una de la propuestas de esta tesis radica en no almacenar las envolventes como restriccin, sino como datos numricos clsicos con caractersticas relacionales, evitando as tener que construir y resolver el problema de satisfaccin de restricciones. Las opciones de relacin entre dos restricciones con respecto a sus envolventes, y para cada una de sus variables (v ), las mostradas en gura 6.8, son:
(a) Todos los valores que la variable v puede tomar en Cx son siempre menores
que los que puede tomar en Cy .
(b) El mayor valor que la variable v puede tomar en Cx es igual que el menor que
puede tomar en Cy .
(c) La variable v puede tomar un conjunto de valores que hacen satisfactible tanto
la restriccin Cx como la Cy , y los que exclusivamente hacen que Cx sea satisfactible son menores que los que pueden hacer Cy satisfactible.
(d) Para la variable v , todos los valores que puede tomar en Cx tambin son
solucin en Cy , aunque en Cy puede tomar ms valores.
(e) Todos los valores que v puede tomar en Cx tambin son soluciones de Cy , y
viceversa. Estas relaciones entre dominios ayudarn a conocer las relaciones entre restricciones descritas con las operaciones denidas en la seccin 4.5, evitando en algunos casos construir y resolver problemas de satisfaccin de restricciones. Generalizando dicha relacin para n variables, siendo v1 . . . vn las variables de las restricciones Cx y Cy , y sea Rango InicioCx (v1 ), . . ., Rango InicioCx (vn ) los menores valores que pueden tomar las variables en la restriccin Cx , Rango FinCx (v1 ), . . ., Rango FinCx (vn ) los valores mayores que puede tomar las variables en la restriccin
Cx , Rango InicioCy (v1 ), . . ., Rango InicioCy (vn ) los valores menores que puede
tomar las variables en la restriccin Cy , y Rango FinCy (v1 ), . . ., Rango FinCy (vn )
Implementacin de la Seleccin
157
los valores mayores que pueden tomar las variables en la restriccin Cy . En los casos donde se aade la clusula FOR en la condicin, para determinar sobre qu conjunto de variables se realiza la comparacin, slo se analizarn dichas variables. Mientras que si tambin se utiliza la palabra reservada AND junto a FOR, se denir la igualdad semntica entre las variables involucradas en la condicin. Los distintos casos dependiendo de la operacin entre las restricciones Cx y Cy , y los rangos de sus variables son: Si v v1 , . . ., vn o v vi , . . . , vj (i 1 . . . n, j 1 . . . n y i = j ) en caso de que se utilice la clusula FOR {vi , . . . , vj }, se cumple que:
Cx son menores que los valores de dicha variable que hacen satisfactible Cy .
Si v v1 , . . ., vn o v vi , . . . , vj (i 1 . . . n, j 1 . . . n y i = j ) en caso de que se utilice la clusula FOR {vi , . . . , vj }, se cumple que:
158
V2
V2
Cy
Cy
Cx
Cx
V1 C x (v1 3) + (v 2 2) 1 (v1 4) + (v 2 2) 2 1
2 2 2
V1 C x (v1 5 ) + (v 2 2) 1 (v1 6) + (v 2 2) 2 1
2 2 2
Cx <>Cy : cierto Cx &Cy : No se tiene suciente informacin, hay que crear un CSP tal como
se explic en la subseccin 4.5.1
Cx Cy y Cx Cy : falso Cx Cy y Cx Cy : falso
Si v v1 . . . vn o v vi . . . vj (i 1 . . . n, j 1 . . . n y i = j ), en caso de que se utilice la clusula FOR {vi , . . . , vj }, se cumple que:
Rango FinCx (v ) > Rango InicioCy (v ) y Rango InicioCx (v ) < Rango InicioCy (v ) (Figura 6.8.c), entonces:
Cx <Cy y Cx Cy : falso Cx >Cy y Cx Cy : falso Cx =Cy : falso Cx <>Cy : cierto Cx &Cy : No se tiene suciente informacin, hay que crear un CSP tal como
se explic en la subseccin 4.5.1
Cx Cy y Cx Cy : falso Cx Cy y Cx Cy : falso
Si v vi , . . . , vj (i 1 . . . n, j 1 . . . n y i = j ) en caso de que se utilice la clusula (FOR {vi , . . . , vj } AND Cx .var=Cy .var AND . . .), se cumple que:
Rango FinCx (v ) > Rango InicioCy (v ) y Rango InicioCx (v ) < Rango InicioCy (v ) (Figura 6.8.c), entonces:
Implementacin de la Seleccin
159
Cx =Cy FOR {vi , . . . , vj } AND . . .: falso Cx <>Cy FOR {vi , . . . , vj } AND . . .: cierto Cx Cy FOR {vi , . . . , vj } AND . . . y Cx Cy FOR {vi , . . . , vj } AND . . .:
falso
<
(Cy
F OR {v2 }) ser cierta exclusivamente para el caso 6.10.a, mientras que F OR {v2 } AN D Cx .v1 = Cy .v1 ) ser cierto para
los casos a y b de dicha gura. El problema es que para poder asegurar que
Cx < (Cy
F OR {v2 } AN D
6.10.b, ser necesario crear y resolver un CSP, no siendo suciente con analizar las envolventes (marcada con lnea discontinua en la gura).
v2
v2
Cy Cy Cx Cx
(a)
v1
(b)
v1
Figura 6.10: Ejemplo de comparacin entre restricciones Si v v1 , . . . , vn o v vi , . . . , vj (i 1 . . . n, j 1 . . . n y i = j ) en caso de que se utilice la clusula FOR {vi , . . . , vj }, se cumple que:
Rango InicioCx (v ) > Rango InicioCy (v ) y Rango FinCx (v ) < Rango FinCy (v ), lo que signica que el dominio de Cx est incluido en el Cy (Figura 6.8.d), entonces:
160
Cx <Cy y Cx Cy : falso Cx >Cy y Cx Cy : falso Cx =Cy : falso Cx <>Cy : cierto Cx &Cy : No se tiene suciente informacin, hay que crear un CSP tal como
se explic en la subseccin 4.5.1
Rango InicioCx (v ) = Rango InicioCy (v ) y Rango FinCx (v ) = Rango FinCy (v ) (Figura 6.8.e), entonces:
Cx <Cy y Cx Cy : falso Cx >Cy y Cx Cy : falso Cx =Cy y Cx <>Cy No se tiene suciente informacin, hay que crear un
CSP tal como se explic en la subseccin 4.5.1
Implementacin de la Seleccin
161
V2 Cy Cx
V2 Cy
Cx
V1 (a) (b)
V1
Figura 6.11: Ejemplo de restricciones de las restricciones involucradas en el predicado. Si no existe la variante F OR se har para todas las variables, hasta que se encuentra una con la que la evaluacin devuelva falso, o se hayan estudiado todas las variables involucradas en las restricciones. En caso de que nalmente devuelva cierto, signica que las tuplas a las que pertenecen las restricciones formarn parte de la relacin de salida. Continuando con el ejemplo de la gura 6.7, se analizarn las tuplas de la relacin
puestosInternacionales. Analizar dichas restricciones para seleccionar aquellas que cumplan ImpuestosInternacionales.Impuestos < (ImpInterN ac = ImpN ac 1,25 FOR {Im-
pInterNac} AND ImpuestosInternacionales.Impuestos.ImpNac=ImpNac), signica encontrar las restricciones donde para un valor de la variable ImpNac, siempre su impuesto internacional ImpInterNac ser menor que el que pueda tomar en la restriccin {ImpInterN ac = ImpN ac 1,25}. En este caso es posible discriminar las restricciones de las tuplas con idPas 1 y 2, ya que el mnimo valor que puede tomar la variable
ImpInterNac en ambas, es mayor que el que puede tomar la misma variable en la restriccin de entrada {ImpInterN ac = ImpN ac 1,25}. Para las restantes restricciones, no ser suciente analizar exclusivamente las envolventes, siendo necesario construir un CSP comparando cada una de las restricciones de ImpuestosInternacionales.Impuestos con {ImpInterN ac = ImpN ac 1,25}, para conocer las tuplas donde se cumple la condicin. La resolucin de los CSP informar que las restricciones que cumplen la condicin son las que pertenecen a las tuplas con idPas igual a 3, 7 y 8, que son las mostradas en la gura 6.13.
162
35 Impuestos Internacionales 30 25 20 15 10 5 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Impuestos Nacionales ImpInterNac=ImpNac+10 (idPas 1) ImpInterNac=ImpNac+12 (idPas 2) ImpInterNac=ImpNac*1.25 (Restriccin de Entrada) ImpInterNac=ImpNac*1.02 (IdPas 3) ImpInterNac=ImpNac*1.20 (idPis 7) ImpInterNac=ImpNac*1.0545 (idPas 8)
IdProvincia 1
IdProvincia 1 1
ImpuestosNacionales Impuestos
0<=ImpProv<500 AND ImpNac=ImpProv + 0.02Precio 500<ImpProv AND ImpNac=ImpProv + 0.01Precio
IdPas
3 7 8
ImpuestosInternacionales Impuestos
ImpInterNac=ImpNac*1.02 ImpInterNac=ImpNac*1.20 ImpInterNac=ImpNac*1.0545
Figura 6.13: Relaciones tras la eliminacin por construccin de CSP (Paso III y IV)
Implementacin de la Proyeccin
163
ImpuestosProvinciales. idProvincia
1 1 1 1 1 1
ImpuestosProvinciales. Impuestos 0<=Precio<3.000 AND ImpProv=0.05*Precio+50 0<=Precio<3.000 AND ImpProv=0.05*Precio+50 0<=Precio<3.000 AND ImpProv=0.05*Precio+50 0<=Precio<3.000 AND ImpProv=0.05*Precio+50 0<=Precio<3.000 AND ImpProv=0.05*Precio+50 0<=Precio<3.000 AND ImpProv=0.05*Precio+50
ImpuestosNacionales. idProvincia
1 1 1 1 1 1
ImpuestosNacionales. Impuestos 0<=ImpProv<500 AND ImpNac=ImpProv + 0.02Precio 0<=ImpProv<500 AND ImpNac=ImpProv + 0.02Precio 0<=ImpProv<500 AND ImpNac=ImpProv + 0.02Precio 500<ImpProv AND ImpNac=ImpProv + 0.01Precio 500<ImpProv AND ImpNac=ImpProv + 0.01Precio 500<ImpProv AND ImpNac=ImpProv + 0.01Precio
ImpuestosInterNacionales. idPais
3 7 8 3 7 8
6.4.
Implementacin de la Proyeccin
La operacin de proyeccin obtiene un subconjunto vertical de la relacin de entrada, lo que signica un subconjunto de los atributos de la relacin. Dependiendo del tipo de atributo sobre el cual se realice la proyeccin (clsicos (univaluados), atributos restriccin o variable de restriccin), se obtendrn diferentes salidas y se tratarn de diferente manera. En el caso de la proyeccin sobre atributos de tipo restriccin o de tipo clsico, el comportamiento de la proyeccin ser igual que en el lgebra relacional clsica, la diferencia fundamental est cuando la proyeccin hace referencia a las variables atributos restriccin. Para obtener un subconjunto de las variables que aparecen en las restricciones, no slo es necesario tratar las restricciones en las que dichas variables aparecen, tambin es necesario conocer las restricciones con variables que a su vez estn relacionadas con ellas. Volviendo al ejemplo de la gura 6.14, si se quiere obtener el Im-
puesto Internacional que se paga en funcin del Precio, signicar hacer una proyeccin
donde se obtienen las variables ImpuestosProvinciales.Impuestos.Precio e ImpuestosIn-
164
resolucin numrica, ser necesario encontrar todas las restricciones que estn involucradas con las variables de la proyeccin directa o indirectamente. Mientras que para la proyeccin simblica se buscarn los conjuntos de restricciones que permitan realizar eliminacin o sustitucin de variables, lo que signica que ser posible devolver nuevas restricciones donde slo las variables de la proyeccin estn involucradas. En este tesis se denen dos tipos de proyeccin con respecto a cmo se realiza esta bsqueda de restricciones relacionadas con los atributos variable de restriccin: Proyec-
G1 . . . Gm .
Relacin Relacin
G1
...
Gn G1
(a) Proyeccin Horizontal
...
(b) Proyeccin Vertical
Gm
Figura 6.15: Tipos de Proyeccin: Horizontal y Vertical Los atributos variable de restriccin que participen en la proyeccin, denirn si la operacin se realiza con las restricciones de una misma tupla (horizontal), o con las restricciones de una misma columna (vertical). Si todas las variables pertenecen a un mismo atributo restriccin, la proyeccin ser vertical por defecto, mientras que si pertenecen a ms de un atributo restriccin se realizar la proyeccin horizontal. En el caso de que aparezca una sola variable como atributo en la proyeccin, se denir horizontal por de-
Implementacin de la Proyeccin
165
fecto. Estas deniciones por defecto se pueden variar utilizando las palabras reservadas
HORIZONTAL y VERTICAL.
El objetivo primero en la proyeccin ser obtener todos los conjuntos de restricciones que contengan las variables que aparezcan en la consulta, o que estn relacionadas con dichas variables. La denicin formal de qu es un Conjunto de Restricciones Rela-
G1 . . .Gi . . .Gn conjuntos de restricciones, donde cada Gi est formado por todas las
restricciones de la tupla i-sima de la relacin, para sus n tuplas.
166
simblica de la variable R2 .ImpNac trabajando con las restricciones R2 y R3 , obteniendo una nueva restriccin {49.0196ImpInterN ac + 50 ImpP rov + P recio = 0}, en este caso utilizando las Bases de Grbner. Pero si se quiere conocer los valores instanciados de dichas variables es necesario incluir R1 entre las restricciones relacionadas, ya que la variable ImpNac depende de la variable ImpProv, cuyos valores no slo estn restringidos por la restriccin R2 , tambin por R1 .
R1 0<Precio<3.000 AND ImpProv=0.05*Precio+50 R2
Precio, ImpProv
ImpInterNac=ImpNac*1.02
Figura 6.16: Ejemplo de conjunto de restricciones El algoritmo propuesto para encontrar todas las restricciones relacionadas con las variables de una proyeccin numrica, est basado en la representacin de cada conjunto de restricciones Gi , independientemente de que sea proyeccin vertical y horizontal, como un grafo. Las restricciones se representan como nodos y las variables como aristas, de forma que existir una arista entre dos nodos si las restricciones que representan dichos nodos tienen una variable en comn, y dicha variables no est instanciada en el predicado. De esta idea de deriva la denicin:
Denicin 6.1: Conjunto de Restricciones Relacionadas por Variables (CRRV) para la Proyeccin Numrica. Mximo conjunto de restricciones donde al menos
una variable de cada restriccin afecta directa o indirectamente a las variables de la proyeccin. O lo que es lo mismo, una componente conexa en los trminos anteriormente expuestos.
Implementacin de la Proyeccin
167
Antes de denir qu es un grupo de restricciones relacionadas por variables en una proyeccin simblica, son necesarias algunas notaciones previas. Siendo c1 , . . ., cn todas las restricciones de un conjunto Gi , e independientemente de que dicho grupo est formado por restricciones de la misma tupla o del mismo atributo restriccin, y ci , . . ., cj un subconjunto de dichas restricciones:
Variables(Q, {ci , . . . , cj }). La unin de las variables sin repeticin de las restricciones ci , . . ., cj que aparecen en la consulta Q. Partiendo de dicha notacin, se buscar un conjunto de restricciones que estn relacionadas entre s por compartir variables que tengan que ser eliminadas. Para un conjunto de restricciones Gi formado por todas las restricciones de una tupla {c1 , . . ., cn }, un subconjunto Gi ' formada por las restricciones {ci , . . ., cj } {c1 , . . ., cn }, se le denominar
Conjunto de Restricciones Relacionadas por Variables (CRRV) para la Proyeccin Simblica si, cada variable de las restricciones de Gi ': aparece en la proyeccin; o
est al menos en dos restricciones de Gi '; o slo pertenece a una restriccin de Gi . Adems este conjunto debe ser mnimo, lo que signica que no puede existir ningn CRRV incluido dentro de otro.
Denicin 6.2: Conjunto de Restricciones Relacionadas por Variables (CRRV) para la Proyeccin Simblica. Gi ' ser un Conjunto de Restricciones Relacionadas por Variables si:
Siendo Gi ' {ci , . . ., cj } Gi {c1 , . . ., cn } Gi 'Gi
Variables(Q,{ci , . . ., cj }) =
168
Lo que signica que un CRRV estar formado por un conjunto de restricciones de una misma tupla, donde sus variables pertenecen a las variables de la proyeccin Q, o aparecen en otra restriccin de dicho conjunto, o no aparecen en ninguna restriccin de dicha tupla. El algoritmo que obtendr los CRRV para la proyeccin simblica tambin se basa en la representacin de cada conjunto de restricciones Gi como un grafo, donde las restricciones se representan como nodos y las variables como aristas, de forma que existir una arista entre dos nodos si las restricciones que representan dichos nodos tienen una variable en comn que no pertenezca a la proyeccin. Para buscar la similitud con la teora de grafos, al igual que para la proyeccin numrica, primero se buscarn las componentes conexas pero con la diferencia de que las variables de la proyeccin no se representarn como aristas. El segundo paso ser buscar los subconjuntos mnimos de componentes que permitan eliminar las variables que no aparecen en la proyeccin. En la gura 6.17 se muestran los conjuntos de restricciones para cada una de las tuplas del ejemplo de la gura 6.14, junto a la relacin entre las distintas restricciones y las variables que las relacionan. Los CRRV del ejemplo para las variables de la proyeccin Precio e ImpIn-
terNac sern: {R1 , R7 , R13 }, {R2 , R8 , R14 }, {R3 , R9 , R15 }, {R4 , R10 , R16 }, {R5 , R11 , R17 }
y {R6 , R12 , R18 }, ya que forman un conjunto de restricciones donde todas las variables que no aparecen en la consulta pertenecen a otra restriccin de dicho conjunto. Los detalles relativos al algoritmo estn descritos en el apndice A.
Implementacin de la Proyeccin
169
R1 0<Precio<3.000 AND ImpProv=0.05*Precio+50 R2 0<Precio<3.000 AND ImpProv=0.05*Precio+50 R3 0<Precio<3.000 AND ImpProv=0.05*Precio+50 R4 0<Precio<3.000 AND ImpProv=0.05*Precio+50 R5 0<Precio<3.000 AND ImpProv=0.05*Precio+50 R6 0<Precio<3.000 AND ImpProv=0.05*Precio+50
R7
Precio, ImpProv
R13
ImpNac
ImpInterNac=ImpNac*1.02
Precio, ImpProv
R8
ImpNac
R14
ImpInterNac=ImpNac*1.20
R9
Precio, ImpProv
R15
ImpNac
ImpInterNac=ImpNac*1.0545
10 Precio, ImpProv
ImpNac
R16
ImpInterNac=ImpNac*1.02
ImpNac
R17
ImpInterNac=ImpNac*1.20
ImpNac
R18
ImpInterNac=ImpNac*1.0545
Figura 6.18: Ejemplo para realizar proyeccin Vertical Un ejemplo de proyeccin sobre la relacin de la gura 6.18 puede ser:
170
En la gura 6.19 se muestra el grafo donde se representan las restricciones como nodos y las variables que las relacionan como aristas.
{ImpNac} {Precio, ImpProv} {ImpNac, ImpProv, Precio}
R2
Na c}
{Im pN
R4
{ImpNac, ImpInterNac}
}
R1
p {Im
ac
{Precio, ImpProv}
R3
{ImpNac}
R5
Figura 6.19: Grafo del Ejemplo para la proyeccin Vertical Pese a que slo hay una componente conexa en este grafo, existen diferentes CRRV, ya que cumplen la denicin 6.2. Los CRRV para este ejemplo son: {R1 , R2 , R4 }, {R1 , R2 , R5 }, {R1 , R3 , R4 } y {R1 , R3 , R5 }.
(CCRRV), y ser de la forma: Denicin 6.3: Conjunto Completo de Restricciones Relacionadas por Variables (CCRRV). G' ser un Conjunto Completo de Restricciones Relacionadas por
Variables si:
Siendo Gi ' {ci , . . ., cj } Gi {c1 , . . ., cn } Gi 'Gi
ck Gi '
Implementacin de la Proyeccin
171
v Variables(ck ) | v / Variables(Q, ck )
(v Variables(Gi '{ck }))
Variables(Q,{ci , . . ., cj }) =
Esta nueva denicin permite diferenciar al usuario cundo quiere hacer eliminacin de variables, y cundo quiere hacer sustitucin de variables siempre que sea posible. Si aparece la palabra reservada FULL y se obtienen los CCRRV, signicar que se quiere hacer sustitucin de variables, ya que todas las variables que no aparecen en la proyeccin pueden ser sustituidas por variables de la proyeccin. Mientras que si no aparece dicha palabra reservada, signicar que al usuario no le importa obtener nuevas restricciones simplemente haciendo eliminacin de variables, utilizando Descomposicin Algebraica Cilndrica y eliminacin de cuanticadores. Esta operacin es especialmente interesante en casos de estudios como la diagnosis basada en modelos, el cual se explicar con detalle en el siguiente captulo.
172
Las palabras reservadas MIN y MAX, denotarn la construccin de un problema de optimizacin de restriccines, mientras que la palabra reservada VALUES denir el deseo del usuario de conocer los valores instanciados de las variables. Por otra parte, la palabra reservada CONSTRAINTS describe la necesidad de utilizar tcnicas simblicas para mostrar el resultado en forma de restriccin. Para conocer qu tcnica es necesaria, y cmo construir el modelo con ms detalle, se utiliza el rbol de decisin presentado en la gura 6.20, en funcin de la proyeccin de entrada y a los CRRV obtenidos en la seccin 6.4.1 y 6.4.2.
Se pide el mnimo o el mximo de una variable? SI Se construye un COP que ser resuelto con JSolver NO Es una proyeccin Extensiva? SI Se construye un CSP que ser resuelto con JSolver SI Todas las restricciones son de igualdad? SI Se resuelve utilizando las Bases Grbner NO Se resuelve con Descomposicin Algebraica Cilndrica NO Se puede hacer sustitucin simblica (es un CCRRV)? NO Se resuelve con Descomposicin Algebraica Cilndrica
Figura 6.20: rbol de decisin para construir el modelo y decidir qu tcnica lo resolver La secuencia de decisiones que se reejan en dicho rbol son:
Implementacin de la Proyeccin
173
lo que signica que todas las variables o estn al menos en dos restricciones o pertenecen a la proyeccin y pueden participar en la solucin. Si se utiliza la palabra reservada FULL slo los CCRRV sern tratados, y los CRRV sern ignorados. Si no aparece dicha palabra, se tratarn tanto los CRRV como los CCRRV.
Todas las restricciones son de igualdad? Si todas las restricciones estn etiquetadas como LinEq o PolEq, signica que se pueden utilizar las Bases de Grbner para obtener la nueva restriccin como resultado, en caso contrario se utilizar la Descomposicin Algebraica Cilndrica junto a la eliminacin de cuanticadores.
Denindose Lista CRRV como la lista con los CRRV obtenidos en la seccin 6.4.1 (CRRV1 . . . CRRVn ), y teniendo en cuenta si existen variables instanciadas en el predicado de la forma relacin.AtribRestriccin.variable=constante o
relacin.AtribRestriccin.variable=relacin.AtribRestriccin.variable,
se construir un COP. Se nombrarn las restricciones de cada CRRV de la lista de la forma CRRV1 .Restricciones . . . CRRVn .Restricciones. El COP que se construye ser una combinacin disyuntiva de cada CRRV, mientras que entre las restricciones de un mismos CRRV existir una relacin conjuntiva. Esto har posible obtener el
174
mximo o mnimo valor de la variable analizando todos los CRRV. La estructura del COP ser de la forma:
aadir al COP
(Maximize(atributo variable de restriccin)
...
relacin.AtribRestriccin.variable=relacin.AtribRestriccin.variable
Este COP se resolver con JSolverT M [78], aunque como se ha comentado en el captulo anterior se podra utilizar otro resolutor. La salida que se mostrar al usuario ser slo el valor de la variable objetivo de la proyeccin. 2.
Al sario do
igual
que en
en
la
optimizacin si existen
de
variables,
Lista CRRV
en el
represenpredicao
ta la lista de CRRV obtenidos en la seccin 6.4.1. Tambin es necetener de la cuenta variables instanciadas forma
relacin.AtribRestriccin.variable=constante
Implementacin de la Proyeccin
175
relacin.AtribRestriccin.variable=relacin.AtribRestriccin.variable.
Con toda esta informacin, se construir un CSP de la forma:
...
relacin.AtribRestriccin.variable=relacin.AtribRestriccin.variable
Para la arquitectura que se propone en esta memoria de tesis, este CSP se resolver con JSolverT M [78] y la salida que se mostrar al usuario ser el valor de las variables que pertenecen a la lista de Variables. Como es posible que el nmero de soluciones sea muy grande o incluso innito, por defecto se presentar slo una solucin, aunque se podr modicar en la misma sentencia para N tuplas, de la forma:
SELECT VALUES[N](<lista de Variables>) FROM relacin WHERE predicado
3.
Siendo Lista CRRV el conjunto de restricciones relacionadas obtenido en la seccin 6.4.2 en funcin de la lista de variables de la proyeccin, se construir una funcin que ser resuelta con Mathematica v.5 T M . El prototipo de la funcin es el siguiente:
176
En este caso, para cada CRRVi {CRRV1 , . . ., CRRVn }, los cuales son los CRRV que forman Lista CRRV, se construir:
Reduce [ Exists
[{Variables(CRRVi .Restricciones)Variables(Q, CRRVi .Restricciones)},
]
La construccin de esta sentencia se genera de forma automtica y transparente para el usuario, como en el resto de los modelos. La salida que se mostrar al usuario ser el valor de salida de dicha funcin. 4.
TM
, es:
La salida que se mostrar al usuario ser el valor de salida de dicha funcin para cada uno de los CCRRV, ya a los CRRV que no sean completos no se les puede hacer sustitucin de variables.
177
6.5.
Esta operacin tiene dos relaciones como parmetros de entrada (R1 , R2 ) donde ambas relaciones tienen que ser equivalente con respecto a la unin. La relacin que se obtiene como salida tendr todas las tuplas de R1 y R2 sin repeticin. En el caso de que las relaciones que se vayan a unir tengan atributos restriccin, ser necesario una comprobacin especial de dichos atributos para que no aparezcan tuplas duplicadas en la relacin de salida. Para hace ms eciente la implementacin, se separar el tratamiento de los atributos univaluados de los atributos restriccin. Los pasos de dicha comprobacin se realizar entre todos los pares de tuplas t1 R1 y t2 R2 , y sern: 1. Si todos los atributos clsicos entre dos tuplas son iguales, se pasa al paso 2, en caso contrario ambas tuplas formarn parte de la solucin. Esta comprobacin se har mediante el lgebra relacional clsica. 2. Si todas las restricciones de ambas tuplas tienen las mismas variables, se pasar al paso 3, en caso contrario ambas tuplas formarn parte de la solucin. Esta comprobacin se har utilizan exclusivamente el lgebra relacional clsica, ya que dicha informacin est almacenada en la tabla Restricciones/Variables. 3. Entre las tuplas se comparan sus atributos restriccin como se ha explicado en la seccin 4.7. En dicha seccin se analiza la unin de tuplas utilizando la operacin de inclusin entre restricciones (), lo que gracias a tener almacenado el mnimo y mximo valor de cada variable se puede hacer de una manera ms eciente, evitando la creacin de CSP. Si existe ms de un atributo restriccin en las relaciones R1 y
178
Cx
Cy
Cx
Cy
Cx
Cy
Cx
Cy
Cy
d. Cy incluida en Cx
Resumen
179
Si existe alguna restriccin del atributo restriccin de t1 (Cx ) que tenga una solucin no perteneciente al atributo restriccin de t2 (Cy )(los casos a, b y c de la gura 6.22): Una nueva tupla formar parte de la relacin de salida. Dicha tupla tendr como atributos clsicos los mismos que t1 y t2 , y como atributos restriccin la restriccin de t1 (caso a) o una nueva restriccin con las soluciones de t1 que no pertenecen a t2 (caso b y c). En caso contrario, signicar que todas las relaciones sern de la forma d de la gura 6.22: La tupla t1 no formar parte de la salida.
Cx
Cy
Cx
Cx
Cy
Cx
Cy
c. Cy incluida en Cx
d. Cx incluida en Cy
6.7.
Resumen
En este captulo se presenta, para cada una de las cinco operaciones primitivas del lgebra relacional, los detalles de implementacin necesarios para evaluarlas de una manera eciente y acorde con la arquitectura propuesta. Para la seleccin se propone utilizar el lgebra relacional clsica para los atributos univaluados, las envolventes para la parte del predicado relacionada con atributos variables de restriccin y para los atributo restriccin, y por ltimo construir un CSP en los casos en que sea necesario, dada la elevada complejidad de resolucin stos. Todas estas decisiones son tomadas con el objetivo de conocer las tuplas que cumplen un determinado predicado con el menor gasto computacional posible. Para la proyeccin se divide el problema en dos etapas: bsqueda de restricciones de manera horizontal o vertical; y bsqueda de restricciones relacionadas por variables en funcin de si la evaluacin es simblica o numrica. Para cada uno de estos casos, se
180
describe cmo se crearn cada uno de los modelos dependiendo del tipo de restricciones involucradas y el tipo de consulta. Por ltimo se presenta la diferencia y la unin, minimizando el nmero de CSP que se tienen que construir para la evaluacin gracias a: el anlisis de las envolventes de las variables de cada una de las restricciones; aprovechando el lgebra relacional clsica para los atributos univaluados; y analizando los rangos de las variables para conocer las soluciones que comparten las restricciones.
182
En la diagnosis de sistemas slo se conocen los valores de las variables que tienen sensores, de forma que pese a que el sistema puede ser el mismo, las restricciones que representan su funcionamiento dependen de la localizacin de dichos sensores. Esta es la misma idea desarrollada en la proyeccin sobre atributos variable de restriccin, donde sobre una misma relacin de entrada es posible realizar diferentes proyecciones dependiendo de los atributos que se quieran obtener. Dependiendo del tipo de restriccin que describa el comportamiento del componente y del tipo de informacin que se quiera obtener, es necesario utilizar diferentes tcnicas. La accin de decidir y ejecutar dichas tcnicas se ve facilitada por la utilizacin de la arquitectura LORCDB y el lenguaje CORQL. Esto signica que un proceso tan complejo como es el de la diagnosis de fallos, se puede realizar simplemente mediante un conjunto de consultas a la base de datos. Para introducir la problemtica de la diagnosis basada en modelos, en principio se utiliza un sistema sencillo y muy difundido en el rea de la diagnosis de fallos. Este ejemplo ayudar a explicar las deniciones relativas al paradigma de la diagnosis basada en modelos. Una vez que el problema y los pasos de la diagnosis han sido introducidos, se presenta un sistema ms complejo, tanto en el nmero de componentes, como en el tipo de restricciones que lo describen y por lo tanto el tipo de consultas que se pueden realizar. Sobre este ejemplo ms complejo, se introducir cmo las distintas tcnicas sobre problemas de satisfaccin de restricciones y eliminacin de variables hacen posible el proceso de la diagnosis de fallos.
183
tricciones (componentes) relacionadas mediante variables (uniones entre componentes). Analizando un sistema de componentes como un conjunto de datos relacionados mediante las variables que contiene, sera posible obtener el comportamiento de una parte del sistema en funcin de sus variables, o saber qu valores de salida tendra el sistema para una entrada determinada, facilitando la labor del ingeniero. Heredando toda la potencia de las bases de datos relacionales, y utilizando BDdR tambin sera posible alterar o ampliar el sistema almacenado con pocas modicaciones, facilitando el acceso a sistemas formados por gran cantidad de componentes. Antes de continuar con los detalles que relacionan las BDdR y la diagnosis de fallos, es necesario hacer una introduccin a las dos propuestas de diagnosis en las que se basan los ejemplos utilizados en este captulo, FDI y DX. FDI (Fault Detection and Isolation) [80][115] consiste en el anlisis de un modelo para identicar las relaciones entre los componentes que lo forman, determinando qu componentes del sistema afectan a cada variable observable (con sensores), utilizando el anlisis estructural [142][123]. De esta forma, FDI dene una rma de fallo para cada uno de los posible errores del sistema, slo teniendo en cuenta los fallos simples, lo que signica que slo puede fallar un componente del sistema al mismo tiempo. FDI realizar dicho anlisis estructural dependiendo de la conguracin del sistema, por lo que dicho proceso se har fuera de lnea (informacin precompilada). DX, al contrario que FDI, da cabida a la deteccin de fallos mltiples cuyos primeros desarrollos se publicaron en los trabajos [40][127][89]. Estos trabajos tratan de descubrir discrepancias entre el comportamiento observado de un sistema y el comportamiento esperado segn un modelo. La propuesta DX se caracteriza por la diagnosis de un sistema deniendo un conjunto mnimo de componentes que pueden fallar en funcin del comportamiento observado (sntomas), por lo que ser un proceso en lnea. Sin duda fueron los trabajos de De Kleer y Williams [90] y Reiter [127] los que formalizaron el problema de la diagnosis de fallos, junto a la denicin de propuestas para hacer el proceso ms eciente evitando bsquedas innecesarias. El tipo de diagnosis sobre la que se basan los ejemplos de las consultas que se describirn en este captulo, utiliza una combinacin de ambas tcnicas (DX y FDI) [55] seleccionando las caractersticas ms ventajosas de ambas. Tambin hay que tener en cuenta que entre las soluciones dadas para la diagnosis, se suele pasar por alto la importancia del almacenamiento del sistema a diagnosticar. El inconveniente es que no existen aportaciones que permitan tratar las restricciones y sus variables como un dato consultable en una base de datos relacional, por lo que la creacin
184
y la diagnosis de sistemas de gran tamao resulta engorroso y complicado. El uso de las BDdR en el campo de la diagnosis hace los sistemas ms verstiles, conlleva persistencia, facilita la composicin de los sistema, disminuye la utilizacin de memoria y hace ms eciente el proceso de diagnosis ya que agiliza el acceso a la informacin. Como se ha expuesto con anterioridad, el uso de SQL sobre restricciones hace posible obtener diferentes modelos en funcin de la consulta, en este captulo se presenta cmo la arquitectura LORCDB puede almacenar las restricciones que describen el comportamiento y la relacin entre los componentes de un sistema. Junto a esto se presentan qu consultas ayudan a realizar la diagnosis sin necesidad de crear una aplicacin especca para su tratamiento, ya que toda la tcnicas y lgica de inferencia de conocimiento est incluida en la arquitectura. La localizacin de los sensores denir qu variables son observables y cules deben ser inferidas en funcin del resto (no observables). La arquitectura LORCDB permite consultar estos sistemas equivalentes, simulando la colocacin de los sensores en lugares diferentes e inriendo nuevas restricciones. La colocacin de los sensores denir qu parte del sistema se conoce, o lo que es lo mismo, qu variables se quieren obtener mediante la proyeccin.
x y A1 A2 f g
M3
Deniciones y Notacin
185
Denicin 7.1. Modelo del Sistema Polinmico - MSP (System Polynomial Model - SPM). Puede ser denido como un conjunto nito P de restricciones polinmicas o lineales las cuales describen el comportamiento del sistema. Para diagnosticar dicho sistema es necesario denir qu variables sern no observables (Vnob ) y cuales observables (Vob ), que sern las que tengan sensores. De esta forma, un MSP est formado por la tupla {P, Vob , Vnob }. Para el ejemplo de la gura 7.1, las restricciones sern las descritas en la tabla 7.1, donde las variables observables son {a, b, c, d, e, f, g}, y las no observables {x, y, z}. Nombre M1 M2 M3 A1 A2 restriccin
Denicin 7.3. Red de Contextos (RC). Un grafo formado por todos los Contextos del sistema, acorde con ATMS [88]. Los nodos del grafo son los Contextos y existir una arista entre dos Contextos si los componentes de uno de ellos est contenido en el otro, y el contexto menor tiene slo un elemento menos que le otro contexto. La creacin de estas aristas facilitar la diagnosis nal. La Red de Contextos es la mostrada en la gura 7.2, donde se muestra un grafo donde los nodos son todos los Contextos.
186
M1M2M3A1A2
M1M2M3A1
M1M2M3A2
M1M2A1A2
M1M3A1A2
M2M3A1A2
M1M2
M1
M2
M3
A1
A2
[]
{M1 , M2 , A1 }
CARC2 {g = b d + c e}: Generado con las restricciones de los componentes
{M2 , M3 , A2 }
CARC3 {f g = a c c e}: Generado con las restricciones de los componentes
{M1 , M3 , A1 , A2 }
Donde las restricciones asociadas a dichos PCCM se obtendrn mediante la eliminacin de las variables no observables, utilizando en este caso las Bases de Grbner por ser restricciones polinmicas de igualdad. Los PCCM estn marcados en la gura 7.2 mediante crculos, donde se puede observar que por ejemplo {M2, M3, A2} {M2, M3, A1, A2}, ambos tienen la CARC2 asociada, pero se selecciona {M2, M3, A2} como PCCM por ser mnimo.
Deniciones y Notacin
187
Aquellos contextos cuyas Restricciones de Contextos con Redundancia Analtica no sean vacas, y no estn en otro contexto menor, sern los Posibles Contextos Conictivos Mnimos. Para obtener los PCCM no es necesario estudiar las 2nComp 1 combinaciones, slo aquellas de las cuales se puedan obtener las restricciones de contextos con redundancia analtica [55].
Denicin 7.8. Hitting Set (HS). Sea una coleccin de conjuntos de componentes
C los Contextos Conictivos Mnimos para un modelo observable, un hitting set es un
conjunto H
SC
single minimal hitting set a un hitting set formado por un solo componente.
Siendo los distintos hitting set minimales {HS 1 , . . ., HS i , . . ., HS n }, la cardinalidad de HS i (|HS i |) es el nmero de componentes que forman HS i . Reiter [127] present una de las primeras soluciones para la determinacin de los hitting sets mnimos utilizando los llamados HS-trees. Este trabajo fue mejorado por Greiner [65] en el llamado HS-DAG, evitando que el tamao del rbol de combinaciones creciera exponencialmente con el nmero de componentes. Otras soluciones relativas a la obtencin de hitting sets minimales fueron BHS-trees mediante la utilizacin de rboles binarios, o los HST-trees de Wotawa [155]. Aunque tambin existen las soluciones que utilizan programacin con restricciones en lugar de rboles [41], basadas en encontrar el mximo conjunto de restricciones satisfactibles para una modelo observable determinado.
Denicin 7.9. Diagnosis mnima. Est formada por los hitting sets mnimos
del sistema para un modelo observable. En caso de que se utilicen distintos modelos observables, la diagnosis mnima ser la interseccin entre todos los hitting sets mnimos obtenidos para cada modelo observable.
188
Por ejemplo, para el modelo observable {a=1, b=2, c=2, d=3, e=2, f=9, g=11} no son satisfactibles las Restricciones de Contextos con Redundancia Analtica CARC1 y CARC2 . Lo que signica que los Contextos Conictivos Mnimos para este modelo observable sern:
nes/Variables para que las futuras bsquedas de restricciones relacionadas por variables
sean ms ecientes.
INSERT INTO COMPONENTES(Id, Nombre, Comportamiento) VALUES
(3, 'M1', {'a c = x'(Float 10..10 a, Float 10..10 c, Float x)})
189
En este caso, pese a que no se establece el valor mnimo y mximo que puede tomar la variable x de forma explcita, se puede inferir de los rangos de a y c, obteniendo los valores 100..100. Esto es posible gracias a utilizar la gramtica intervalar [11].
A3 False True
190
Nombre M1 A1 M2 M1 A1 A2 M3 M2 A2 M3
Comportamiento(a, b, c, d, e, f, g)
(a c) b d + f = 0 (a c) b d + f = 0 (a c) b d + f = 0 (a c) + c e + f g = 0 (a c) + c e + f g = 0 (a c) + c e + f g = 0 (a c) + c e + f g = 0 (b d) c e + g = 0 (b d) c e + g = 0 (b d) c e + g = 0
191
Donde se obtendr como salida la tabla 7.2. Sobre la relacin de salida R1 se puede obtener por una parte los componentes que forman el PCCM, y por otra parte cada CARC para cada PCCM. Para ello se crearn dos tablas, PCCM y CARCS, de la forma:
carc como el conjunto de componentes que forman parte del PCCM con el identicador
almacenado en el atributo idPCCM. Dicho identicador se generar de forma automtica con un campo autonumrico. Para almacenar las CARCs en dicha tabla se realizar la sentencia sobre la relacin R1 anteriormente obtenida de la forma:
- (a * c) - b * d + f = 0
- (a * c) + c * e + f - g = 0 - (b * d) - c * e + g = 0
Figura 7.4: Tablas de las CARCs y los PCCM para el ejemplo introductorio Y para obtener los componentes del PCCM se crear una tabla donde sern almacenados. La creacin de la tabla ser de la forma:
INSERT INTO PCCM(idPCCM, Componente) VALUES (Select CARCS.idPCCM, R1 .Nombre from CARCS, R1 WHERE CARCS.carc=R1 .Comportamiento)
192
Tras la insercin de esta informacin, la tabla PCCM quedar como se muestra en la gura 7.4.b.
true o false. Dicha operacin se realiza sobre restricciones, siendo equivalente a VALUES,
pero con la nica diferencia que devuelve true si encuentra un valor de las variables que hace satisfactible la restriccin, renombrando dicho atributo con el nombre Satisfactible. La sentencia ser de la forma:
R2 = SELECT idPCCM, CARC, BOOLEAN VALUE (CARC) as Satisfactible FROM CARCS WHERE (CARC.a=1 AND CARC.b=2 AND CARC.c=2 AND CARC.d=3 AND CARC.e=2 AND CARC.f=9 AND CARC.g=11)
Obteniendo la relacin mostrada en la tabla 7.3, donde se aade un nuevo atributo que indica si cada CARC es o no satisfactible en funcin de la instanciacin de un conjunto de variables. IdPCCM 1 2 3 CARC Satisfactible false true false
(a c) b d + f = 0 (a c) + c e + f g = 0 (b d) c e + g = 0
Para realizar la diagnosis mnima habr que obtener slo aquellos conjuntos de componentes asociados a las CARCs no satisfactibles, los cuales se obtendrn realizando la consulta:
Ms ejemplos de Consultas
193
IdPCCM 1 3
CARC
(ac) bd + f = 0 (bd) ce + g = 0
SELECT PCCM.Componente, PCCM 1.Componente FROM PCCM, PCCM AS PCCM 1 WHERE PCCM.idPCCM=1 AND PCCM.idPCCM 1.id=3
Se obtendr una tupla por cada hitting set mnimo, en este caso las representadas en la tabla 7.5. O lo que es lo mismo, la tabla 7.6. En la tabla se observan hitting sets mnimos de uno y dos componentes, que corresponde con el nmero de CCM. El caso de M 2 es un single minimal hitting set, ya que el fallo del componente M 2 explicara el comportamiento del sistema para el modelo observable descrito. Las tuplas restantes representan hitting sets mnimos de dos componentes {M 1, M 2}, {A1, M 2}, {M 1, A3}, {A1, A3}, . . .
7.4.
Ms ejemplos de Consultas
En las secciones anteriores se ha presentado un ejemplo y las consultas que hay que realizar para obtener la diagnosis de un sistema. El ejemplo estaba formado por cinco componentes, todos ellos con restricciones polinmicas de igualdad, por lo que la eliminacin de variables se realiza utilizando la teora de las Bases de Grbner. En esta seccin
194
PCCM.Componente M1 A1 M2 M1 A1 M2 M1 A1 M2
PCCM 1.Componente M2 M2 M2 A2 A2 A2 M3 M3 M3
Tabla 7.5: Obtencin de los Hitting Sets Mnimos Hitting Set HS1 HS2 HS3 HS4 HS5 HS6 HS7 HS8 HS9 A1 0 1 0 0 1 0 0 1 0 A2 0 0 0 1 1 0 1 0 0 M1 1 0 0 1 0 1 0 0 0 M2 1 1 1 0 0 0 1 0 1 M3 0 0 0 0 0 1 0 1 1
se analiza un ejemplo ms complejo, tanto en el nmero de componentes, que pasarn a ser 38, como en el tipo de restricciones, que sern tanto ecuaciones como inecuaciones polinmicas. Tambin se presentan nuevos tipos de consultas relacionadas con la proyeccin numrica a parte de la simblica. El conjunto de componentes del sistema y sus relaciones es el presentado en la gura 7.5, donde Mi representa multiplicadores, Ai sumadores y Ri restadores. El sistema se ha dividido en cuatro partes en funcin del tipo de restriccin
Ms ejemplos de Consultas
195
que la forman. La parte del sistema etiquetada con (1) tiene restricciones de la forma {variable1 operacin variable2 <= variable3 variable1 operacin
variable2 >= variable3 operacin constante}. La parte del sistema etiquetada con
(2) tiene restriciones de la forma {variable1 operacin variable2 <= variable3 }, mientras que los componentes etiquetados con (3) y (4) son de la forma: {variable1
operacin variable2 = variable3 }. Los detalles de todos los componentes se presentan en la seccin B.1 del apndice B.
w1 y1 a1 b1 c1 d1 e1 f1 g1 h1 2 i1 j1 k1 l1 m n o p 1 a b c d
A1
A23
m1
M6
s1
A10
x1
M4
a2
A18
R1
n1 o1
A22
A11
z1 o2
A17
h2
M9
A14
R4
b2
A19
g2
t1
R5
i2
A15
p1
A16
r2 s2
R3 M8 A20 M10
4 p2
q1
M7
A12
k2 l2
M5
R2
r1
u1
A13
c2
A21
t2
A4 A6
q r
A9
q2
h i e
M2
A5
j
A3
k
A7
A8
M1 A2
g
M3
s u
Figura 7.5: Ejemplo de Diagnosis Los componentes estn almacenados en una tabla creada de la forma:
CREATE TABLE COMPONENTES (Identificador Integer, Nombre String, Comportamiento Constraint, Subsistema Integer)
Para insertar informacin en la tabla se harn sentencias de la forma:
196
INSERT INTO TABLE COMPONENTES (IDENTIFICADOR, NOMBRE, COMPORTAMIENTO, SUBSISTEMA) VALUES (1, 'A1', {'a+b<=e AND e-1<=a+b' (Float 5..10 a, Float 5..15 b, Float e)}, 1)
los tipos de consultas. Con la combinacin del operador y seleccin se pueden realizar gran cantidad de consultas relativas a la diagnosis basada en modelos. La combinacin natural de las operaciones es de la forma: R1 = a1 ,...,an (predicate (R2 )), que con los distintos atributos que pueden participar en ellas, mostrados en la tabla 7.7, se obtendrn nueve variantes.
atributos
ati at
c i
atc i .vj
Algunos de los ejemplos de estas combinaciones relacionadas con la diagnosis basada en modelos pueden ser: 1.
at1 ...atm ((at1 ...atn ) ). Cul es el identicador del componente cuyo nombre es A1?
En esta consulta slo hay relacionados atributos clsicos, por lo que slo se har uso del lgebra relacional clsica.
197
2.
c ). Qu nombres tienen los componentes cuyo contenido del atriat1 ...atm ((atc 1 ...atn )
buto Comportamiento es igual a la restriccin x + y = z ? Esta consulta obtendr como salida todos los nombres de los componentes cuya restriccin de comportamiento sea igual a dicha restriccin. Esta operacin de comparacin es una de las denidas entre restricciones en el captulo 4, donde se describe que dos restricciones son iguales si comparten las mismas soluciones. 3.
c c c ). En qu componentes la variable c puede tomar at1 ...atm ((atc 1 .v1 ...at1 .vk ...atn .v1 ...atn .vk )
el valor 5? En este caso se buscarn las restricciones con dicha variable comprobando que el valor 5 est incluido entre los valores de las envolventes, y con aquellos que cumplan dicha condicin se crear un problema de satisfaccin de restricciones. 4.
c ((at ...at ) ). Qu restriccin es la que describe el comportamiento del com(atc n 1 1 ...atm )
ponente cuyo nombre es A1? Es una seleccin clsica, pese a que obtenga un atributo restriccin. 5.
c ((atc ...atc ) ). Qu restricciones son distintas a a + b = e? Lo que implica (atc n 1 ...atm ) 1
compara las soluciones de cada restriccin con a + b = e, y devolver aquellas que no son iguales. 6.
c ((atc .v ...atc .v ...atc .v ...atc .v ) ). Cules son las restricciones si se conocen los (atc n 1 n k 1 ...atm ) 1 1 1 k
valores de las variables {a = 5, b = 3}? La evaluacin de esta consulta consiste en sustituir las variables por constantes con los valores establecidos. 7.
c c c (atc ((at1 ...atn ) ). Cul es la relacin simblica de las variables 1 .v1 ...at1 .vk ...atm .v1 ...atn .vk )
). atc n .vk )
variables a, b y c si d = 5 y e = 6? La solucin a esta consulta se obtiene con la construccin de un problema de satisfaccin de restricciones.
198
Aunque en esta seccin se han incluido ejemplos generales sobre consultas relacionadas con la diagnosis de fallos, en las siguientes subsecciones se plantearn consultas concretas con las acciones a realizar necesarias para evaluarlas.
a+b=e
c+d=f
Para evaluar esta consulta se crear de forma automtica slo un problema de satisfaccin de restricciones, ya que slo se realiza la comparacin entre restricciones que comparten las mismas variables.
199
hi=j j+m=q jg =k
Para evaluar esta consulta primero se analiza si la variable de la seleccin, en este caso j, puede tomar valores mayores que 5 en funcin de su envolvente almacenada en las tablas de indexacin de la base de datos. Luego se construir un CSP para asegurar que esto es posible. Para el ejemplo propuesto, esto ocurre en todas las restricciones que contienen a j. En caso de que la comparacin fuera entre dos variables en lugar de entre una variable y una constante, se analizara tambin en funcin de sus envolventes estudiando si existe algn valor donde la comparacin se cumpla. Un ejemplo puede ser para la restriccin del componente A6, si en el predicado apareciera la condicin
200
...
Tabla 7.11: Salida consulta con Proyeccin (I)
En este caso para evaluar esta consulta slo se utilizar el lgebra relacional clsica, ya que no existen dos restricciones con las mismas variables, lo que signica que son diferentes. En otros casos, cuando dos o ms restricciones comparten las mismas variables ser necesario realizar la comparacin de dichas restricciones para
201
comprobar que no son iguales mediante la creacin y resolucin de un problema de satisfaccin de restricciones.
Tabla 7.13: Salida consulta con Proyeccin (III) Para evaluar esta consulta se obtiene los conjuntos de restricciones relacionadas con las variables que aparecen en la proyeccin, con lo que obtiene las restricciones del subconjunto de componentes {A23, M 6, R1, A10, M 4, A11}. En ese caso la proyeccin ser vertical por defecto, ya que todas las variables pertenecen a un mismo atributo restriccin. Con esas restricciones se construye
202
un problema de satisfaccin de restricciones, devolviendo los 10 primeros valores obtenidos al resolver dicho problema.
Proyeccin numrica para obtener valores mximos o mnimos: Obtener el mayor valor que puede tomar la variable t para los componentes {A1,
8063
Tabla 7.14: Salida consulta con Proyeccin Numrica Vertical (IV) Para evaluar esta consulta se crear un COP con las restricciones de los componentes {A1, M 1, A2, M 3, A7, A3, A8, M 2, A9, A4, A5, A6}, estableciendo
Proyeccin simblica: Obtener las restricciones de Contextos con Redundancia Analtica (CARC) y sus componentes asociados cuando los sensores estn en las variables {a1, b1, c1, d1, y1, a2}. Lo que signica obtener restricciones donde slo las variables de la proyeccin pueden aparecer. Como slo se puede conocer la informacin de las variables con sensores, relacionando entradas con salidas del sistemas, se utilizar la palabra reservada FULL, para que slo se analicen los conjuntos completos de restricciones relacionadas por variables.
SELECT NOMBRE, FULL CONSTRAINTS (COMPORTAMIENTO.a1, COMPORTAMIENTO.b1, COMPORTAMIENTO.c1, COMPORTAMIENTO.d1, COMPORTAMIENTO.y1, COMPORTAMIENTO.a2) FROM COMPONENTES WHERE SUBSISTEMA = 3
O utilizando la secuencia de consultas descritas en la seccin 7.3.4, obteniendo en una tabla las CARCs y en otra los componentes del PCCM, lo que se muestra en la gura 7.6.
203
IdPCCM Componente
1
IdPCCM 1 Comportamiento(a1, b1, c1, d1, y1, a2)
1
2
a2-a1 *c1 -a1 *c1 - b1 *c1 +a1 *d1 +2*a1 *c1 *d1+2b1 *c1d1 -a1 *d1 - b1 *d1-a1 *y1 -a1 *c1 *y1 - b1 *c1 *y1 +a1 *d1 *y1 +b1 *d1y1 =0
2
1 1 1 1
Figura 7.6: Salida consulta con Proyeccin (V) En este caso slo se obtiene un conjunto de restricciones relacionadas por variables formada por las restricciones de los componentes {A23, M 6, R1, A10,
Otro ejemplo de proyeccin simblica que tambin utiliza las Bases de Grbner pero sobre varios conjuntos de restricciones relacionadas, es obtener las restricciones de Contextos con Redundancia Analtica (CARC) y sus componentes asociados cuando los sensores estn en las variables {a2, z1, b2, r2, t1, s2, c2, g2, p2}. Lo que signica obtener restricciones donde slo las variables de la proyeccin pueden aparecer. Como slo se puede conocer la informacin relativa a los sensores se utilizar la palabra reservada FULL, para que slo se analicen los CRRV completos.
SELECT NOMBRE, FULL CONSTRAINTS (COMPORTAMIENTO.a2, COMPORTAMIENTO.z1, COMPORTAMIENTO.b2, COMPORTAMIENTO.r2, COMPORTAMIENTO.t1, COMPORTAMIENTO.s2, COMPORTAMIENTO.c2, COMPORTAMIENTO.g2, COMPORTAMIENTO.p2) FROM COMPONENTES WHERE SUBSISTEMA = 4
O utilizando la secuencia de consultas descritas en la seccin 7.3.4, obteniendo en una tabla las CARCs y en otra los componentes del PCCM, lo que se muestra en la gura 7.7.
204
IdPCCM Componente
IdPCCM 1 2 3 4 5 6
a2 * b2 + b2 2 + g2 - a2 * r2 - b2 * r2 = 0
- b2 + t1 = 0
- (b2* c2) - p2 + c2 * r2 - b2 * s2 + r2 * s2 = 0
p2 - c2 * r2 - r2 * s2 + c2 * t1 + s2 * t1 = 0
1 1 1 2 2 2 3 3 3 3 4 4 5 5 5 6 6 6
Figura 7.7: Salida consulta con Proyeccin (VI) En este caso se obtienen seis conjuntos de restricciones relacionadas por variables {A18, M9, A19}, {A18, M9, R3} y {A18, M9, M8, A20}, {A19, R3}, {A19, M8, A20}, {R3, M8, A20} cada uno de ellos con una restriccin asociada. Dichos conjuntos se obtienen de una manera eciente utilizando el algoritmo de proyeccin simblica presentado en el apndice A.
Otro ejemplo de proyeccin simblica, pero que utiliza la Descomposicin Algebraica Cilndrica por tratar inecuaciones, se basa en obtener nuevas restricciones y los componentes asociados cuando los sensores estn en las variables {a, b, c, d, u}. Se utilizar la palabra reservada FULL, para que exclusivamente se analicen los CCRRV. La consulta en este caso ser:
SELECT NOMBRE, FULL CONSTRAINTS(COMPORTAMIENTO.i1, COMPORTAMIENTO.j1, COMPORTAMIENTO.k1, COMPORTAMIENTO.l1, COMPORTAMIENTO.s2) FROM COMPONENTES WHERE SUBSISTEMA = 2
Tambin se puede obtener dicha informacin por separado en las tablas CARCS y PCCM, utilizando la secuencia de consultas descritas en la seccin 7.3.4, lo que se muestra en la gura 7.8.
Resumen
205
IdPCCM Componente IdPCCM Comportamiento(i1, j1, k1, l1, s2) 1 1 1 1 A16 M7 R2 A12
j1< - i1 j1= - i1 (l11+ k1 s2 0 l1>1+ k1) j1> - i1 (l1<1+ k1 s2 i1+ j1+ i1*k1+ j1* k1- i1*l1- j1*l1 l1=1+ k1 s2 0 l1>1+ k1)
(a) Tabla CARCs
Figura 7.8: Salida consulta con Proyeccin (VII) Como el operador OR no puede aparecer dentro de un atributo restriccin ser necesario transformar dicha restriccin a DNF (Disjunctive Normal Form) para representar cada una de las partes de la restriccin en una tupla diferente, ya que las relaciones entre las distintas tuplas es precisamente disyuntiva. La nueva relacin es por lo tanto la que se muestra en la gura 7.9.
7.6.
Resumen
En este captulo se presentan distintas deniciones relacionadas con la diagnosis de fallos basada en modelos. Este tipo de problema puede ser tratado con las BDdR, ya que el comportamiento de los componentes puede ser representado con restricciones polinmicas de igualdad o desigualdad. Esto hace posible que utilizando CORQL y LORCDB, se pueda realizar un proceso tan complejo como es la diagnosis de fallos exclusivamente mediante un conjunto de consultas. Tambin se presenta, para un ejemplo ms grande, distintos tipos de consultas relacionados con las operaciones de seleccin y proyeccin. En este captulo se puede apreciar cmo la sintaxis y la semntica de CORQL es vlida tanto para ejemplos de uso tan dispares como el econmico, mostrado en el captulo anterior, y la diagnosis de fallos, junto al tratamiento de sistemas de informacin geogrca que se presentar en el siguiente captulo. Esto facilita el desarrollo de cualquier aplicacin que necesite usar restricciones, ya que la arquitectura ofrece gran parte de la lgica de inferencia y las tcnicas que necesite utilizar. Adems cabe destacar la transparencia de cara al usuario con respecto al tipo de restricciones que se ven involucradas en la consulta, y de la tcnica necesaria para evaluarlas.
IdPCCM Componente
IdPCCM
1 2 3 4 5 6
j1 < - i1 j1= -i1l11+k1s20 j1= - i1 l1>1+ k1 j1>-i1l1<1+k1 s2i1+ j1+i1 *k1 + j1 *k1 -i1 *l1- j1 *l1 j1> -i1l1=1+ k1s20 j1> - i1 l1>1+ k1
1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 5 6 6 6 6
A16 M7 R2 A12 A16 M7 R2 A12 A16 M7 R2 A12 A16 M7 R2 A12 A16 M7 R2 A12 A16 M7 R2 A12
8.1.
Introduccin
Uno de los campos ms analizados en el rea de las bases de datos durante toda su historia, es la optimizacin de la evaluacin de consultas, entendida como la mejora de
208
los tiempos de respuesta de un sistema gestor de bases de datos. Mejorar la evaluacin de las consultas tambin implica la mejora de las operaciones de borrado y modicacin, ya que ambas operaciones consisten en seleccionar un conjunto de tuplas de una relacin que tienen que ser modicadas o borradas. Por esta razn, en este captulo se presenta cmo las decisiones de diseo de la arquitectura LORCDB han inuido en la mejora de los tiempos de evaluacin de consultas. En funcin del tipo de operacin que se ejecute en la base de datos, se recurrir a las distintas mejoras que se exponen a continuacin. Las decisiones de implementacin que estn involucradas con la mejora computacional de los tiempos de evaluacin de consultas son:
Estrategia de Optimizacin 1. Utilizacin del lgebra relacional: El modelo de Base de Datos de Restricciones propuesto, separa en atributos distintos aquellos que representan valores nicos, a los que se les ha denominado atributos univaluados, y los campos que describen restricciones. Esto permite que la Selec-
cin se realice en dos pasos, primero la obtencin de las tuplas que cumplen las
condiciones relacionadas con el lgebra relacional clsica, y luego las relacionadas con las restricciones en s. Tambin la utilizacin del lgebra relacional inuye en las operaciones de Unin y Diferencia, ya que ambas operaciones necesitan analizar si las tuplas de las relaciones involucradas son o no iguales. Para que dos tuplas sean iguales, lo tienen que ser sus atributos clsicos y sus atributos restriccin, siendo ms eciente empezar la comparacin por los atributos clsicos en lugar de por las restricciones, lo que implica la construccin y resolucin de menos problemas de satisfaccin de restricciones.
Introduccin
209
210
(nmero de restricciones en las que participa una variable). Estas cuatro estrategias se utilizarn de diferente manera para la evaluacin de las distintas operaciones. Para mostrar los distintos tiempos de evaluacin, para el operador de Proyeccin se utilizar la diagnosis basada en modelos presentada en el captulo 7. Esta eleccin es debida a que los ejemplos de sistemas de componentes a diagnosticar involucran muchas variables, enriqueciendo los tipos de proyeccin que se pueden hacer sobre las distintas variables. La bsqueda de las restricciones relacionadas por variables encuentra su caso ms desfavorable y computacionalmente complejo, cuando hay involucradas gran cantidad de variables. Para mostrar el estudio emprico de los operadores de seleccin, unin y diferencia es mucho ms apropiado utilizar como caso de estudio los sistemas de informacin geogrca, ya que su caso ms complejo y desfavorable es cuando las restricciones involucradas en la operacin comparten las mismas variables, lo que puede implicar la construccin y resolucin de problemas de satisfaccin de restricciones. Adems, el tratamiento de los sistemas de informacin geogrca es un rea de gran importancia y en auge en el campo de las BDdR. De esta forma, cada operacin se probar sobre los casos ms desfavorables, ya que la proyeccin sobre atributos variable de restriccin con las mismas variables no necesita obtener los CRRV, y la seleccin, la unin y la diferencia sobre restricciones con distintas variables, no necesita la creacin de problemas de satisfaccin de restricciones para resolverlas. En ambos casos de estudio se utilizar el dominio de los Flotante, ya que de forma general es computacionalmente ms complejo que los Enteros y los Naturales. Las pruebas temporales que se presentan en este documento sobre la evaluacin se han realizado en una mquina AMD Athlon 64 X 2 Dual Core a 2,21 Hz con 2 GB de
Memoria. Cada uno de los tiempos que aparecen en este captulo han sido obtenidos con
100 pruebas para obtener el tiempo medio de ejecucin de ellas, siempre presentado en
milisegundos.
211
que necesita de un tratamiento diferente al que hacen los gestores de bases de datos relacionales clsicas, es la obtencin de atributos variable de restriccin. Sern los distintos tipos de proyeccin en funcin de la salida y las restricciones involucradas, el objetivo de los ejemplos relacionados con este operador.
A23
m1
M6
s1
A10
x1
M4
a2
A18
R1
n1 o1
A22
A11
z1 o2
A17
h2
M9
A14
R4
b2
A19
g2
t1
R5
i2
A15
p1
A16
r2 s2
R3 M8 A20 M10
4 p2
q1
M7
A12
k2 l2
M5
R2
r1
u1
A13
c2
A21
t2
A4 A6
q r
A9
q2
h i e
M2
A5
j
A3
k
A7
A8
M1 A2
g
M3
s u
Figura 8.1: Ejemplo de Diagnosis Las restricciones se almacenarn en una tabla llamada Componentes con los campos Identicador, Nombre y Comportamiento, donde Comportamiento es un atributo restriccin. El contenido exacto de esta tabla se muestran en las guras B.1, B.2, B.3 y
212
B.4 del Apndice B, donde cada tabla representa una parte de la tabla Componentes para cada uno de sus subsistemas. Las proyecciones que se realizan sobre dicho sistema contemplan los tres tipos posibles: simblicas, numricas y numrica con maximizacin o minimizacin de variables.
Analizar todas las combinaciones de las restricciones: Este sera el caso donde
la base de datos tiene almacenadas las restricciones sin informacin adicional sobre qu variables relacionan qu restricciones. Para inferir todas las restricciones que se pueden obtener, en funcin de un conjunto de variables dadas en la proyeccin, es necesario probar las 2n 1 combinaciones, y que las tcnicas de eliminacin de cuanticadores obtuvieran las nuevas restricciones, en caso de que fuera posible.
3 y 4, por lo que se utilizarn las Bases de Grbner, mientras que los diez ltimos ejemplos
213
se harn sobre los subsistemas 1 y 2, por lo que se utilizar de Descomposicin Algebraica Cilndrica para la eliminacin de cuanticadores. Las medidas temporales que aparecen en las tablas slo tienen en cuenta el tiempo que tarda en realizarse la operacin de proyeccin, no la seleccin que ser analizada ms adelante. Las consulta con proyeccin simblica para este ejemplo tienen la sintaxis:
SELECT FULL CONSTRAINTS (Comportamiento.v1 , Comportamiento.v2 , . . .) FROM Componentes WHERE subsistema = n
donde n es el identicador del subsistema y v1 , v2 , . . . son las variables que se quieren obtener en la proyeccin pertenecientes al atributo Comportamiento. Se presentan algunos ejemplos de consultas, utilizando como variables los casos ms desfavorables, los cuales son aquellos donde estn relacionadas las variables de entrada y salida de cada uno de los subsistemas, lo que implica una bsqueda de CRRV ms compleja. Estos primero diez ejemplos son para eliminacin simblica de variables donde las restricciones involucradas son ecuaciones polinmicas, y por lo tanto utilizando las Bases de Grbner: 1. 2. Inferir las restricciones del subsistema 4 nicamente con las variables s2, t2, t, q 2. Inferir las restricciones del subsistema 4 nicamente con las variables a2, z 1, o2, r2,
g 2.
3. Inferir las restricciones del subsistema 4 nicamente con las variables r2, t1, s2, t2,
p2.
4. Inferir las restricciones del subsistema 4 nicamente con las variables a2, z 1, o2, r2,
t1, p2, q 2.
6. Inferir las restricciones del subsistema 4 nicamente con las variables s2, t2, t, a2,
z 1, o2, r2, g 2, q 2.
7. Inferir las restricciones del subsistema 4 nicamente con las variables s2, t2, t, a2,
214
8.
Inferir las restricciones del subsistema 3 nicamente con las variables a1, b1, c1, d1,
y 1, a2.
9. 10. Inferir las restricciones del subsistema 3 nicamente con las variables c1, d1, y 1, z 1. Inferir las restricciones del subsistema 3 nicamente con las variables a1, b1, c1, d1,
y 1, a2, z 1.
Los tiempos medios de evaluacin de cada una de estas consultas se presentan en la tabla 8.1. Dicha tabla muestra el nmero de veces que se hace uso de las Bases de Grbner, y el tiempo medio de ejecucin en milisegundos para cada una de las consultas. El nmero de veces que se hace uso de las Bases de Grbner ser 2n 1 si se analizan todas las posibilidades, o el nmero de CRRV dependiente del subsistema y de las variables que se quieran obtener.
Consulta Todas las Combinaciones Nmero de Combinaciones Tiempo (ms) Slo CRRV Nmero de CRRV Tiempo (ms)
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10)
210 1 = 1023 210 1 = 1023 210 1 = 1023 210 1 = 1023 210 1 = 1023 210 1 = 1023 210 1 = 1023 26 1 = 63 26 1 = 63 26 1 = 63
1,5045 105 1,2358 105 1,2386 105 1,3486 105 1,2385 105 1,2880 105 1,2399 105 8,9338 103 8,2281 103 8,2281 103
1 1 1 3 3 2 5 1 1 1
1,2871 102 1,2831 102 1,2910 102 4,5416 102 2,3815 102 4,2740 102 5,6727 102 1,3592 102 1,9431 101 2,4359 102
Tabla 8.1: Comparacin para la evaluacin de Proyecciones Simblicas utilizando las Bases de Grbner De una forma similar se realiza la comparacin entre la utilizacin o no de los CRRV cuando las restricciones involucradas en la relacin son inecuaciones polinmicas. En este caso los ejemplos de proyeccin son: 1. Inferir las restricciones del subsistema 2 nicamente con las variables w1, e1, f 1,
g 1, h1, o2.
215
2.
Inferir las restricciones del subsistema 2 nicamente con las variables e1, f 1, g 1, h1,
r2.
3. Inferir las restricciones del subsistema 2 nicamente con las variables i1, j 1, k 1, l1,
s2.
4. 5. Inferir las restricciones del subsistema 2 nicamente con las variables k 1, l1, t2. Inferir las restricciones del subsistema 2 nicamente con las variables w1, e1, f 1,
s2, t2.
8. Inferir las restricciones del subsistema 1 nicamente con las variables a, b, c, d, m,
n, o, p, r.
9. Inferir las restricciones del subsistema 1 nicamente con las variables a, b, c, d, m,
n, o, p, t.
10. Inferir las restricciones del subsistema 1 nicamente con las variables a, b, c, d, m,
n, o, p, r, t.
Los tiempos medios de evaluacin de cada una de estas consultas se presenta en la tabla 8.2. Dicha tabla muestra el nmero de veces que se hace uso de la Descomposicin Algebraica Cilndrica, y el tiempo medio de ejecucin en milisegundos para cada una de las consultas. Al igual que para los sistemas con inecuaciones polinmica, el nmero de veces que se hace uso de la Descomposicin Algebraica Cilndrica ser 2n 1 si se analizan todas las posibilidades, o el nmero de CRRV dependiente del subsistema y de las variables que se quieran obtener.
216
Consulta
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10)
210 1 = 1023 210 1 = 1023 210 1 = 1023 210 1 = 1023 210 1 = 1023 210 1 = 1023 210 1 = 1023 212 1 = 4095 212 1 = 4095 212 1 = 4095
1,3147 106 1,3329 106 1,3247 106 1,4320 106 1,5847 106 1,3250 106 1,5522 106 3,6122 106 3,4882 106 3,8114 106
1 1 1 1 3 2 2 1 1 1
1,4657 103 1,4424 103 1,5754 103 1,4273 103 3,9177 103 2,8363 103 2,9097 103 1,2838 104 2,9334 104 8,9334 104
Tabla 8.2: Comparacin para la evaluacin de Proyecciones Simblicas utilizando Descomposicin Algebraica Cilndrica 8.2 y 8.3. La gura 8.2 muestra los datos presentados en la tabla 8.1 relativos al tiempo de evaluacin, sin ningn tipo de mejora (- -) o slo analizando los CRRV (- -). La gura 8.3 presenta la comparacin de los tiempos de evaluacin presentados en la tabla 8.2, sin ninguna mejora (- -) y slo analizando los CRRV (- -). Ambas guras utilizan la escala logartmica para facilitar la presentacin de los datos, pudiendo as observar la mejora cuantitativa utilizando la bsqueda de los CRRV que puede llegar a ser hasta
1000 veces ms rpida. Dicha mejora se hace ms notable para los sistemas con muchos
componentes, ya que el nmero de combinaciones crece exponencialmente en funcin del nmero de restricciones.
217
1,00E+06 1,00E+05
Tiempo (ms)
Figura 8.2: Tiempos de Evaluacin para Proyeccin Simblica para Ecuaciones Polinmicas
1,00E+07 1,00E+06
Tiempo (ms)
1,00E+05 1,00E+04 1,00E+03 1,00E+02 1,00E+01 1,00E+00 1 2 3 4 5 6 7 8 9 10 Todas las Combinaciones Slo CRRV
Figura 8.3: Tiempos de Evaluacin para Proyeccin Simblica para Inecuaciones Polinmicas tiempos, basadas en la ordenacin de variables y valores, lo cual tiene un signicativo impacto en el tamao del espacio de bsqueda [38][43][52][53][83]. En este captulo se van a utilizar algunas de estas heursticas, comparando los tiempos de evaluacin con la resolucin del problema sin utilizar ninguna de ellas. Las pruebas relativas a las heursticas son:
218
Por el dominio de las variables: Comenzar la bsqueda con las variables con el
dominio ms pequeo, lo que se puede hacer gracias a que la arquitectura LORCBD almacena las envolventes de cada variable (Estrategia 3).
Por tipo de restriccin: Comenzar por las variables que se encuentran en restricciones lineales, analizando primero las restricciones lineales y luego las polinmicas (Estrategia 4).
Por grado de las variables: Comenzar por las variables de mayor grado, lo que
se dene como el nmero de restricciones en las que participa una variables. Gracias a utilizar las tablas de indexacin entre variables y restricciones, es muy sencillo conocer el grado de las variables (Estrategia 2). Precisamente por ser heursticas, los tiempos de evaluacin dependern del tipo de problema [148], no siendo posible denir una heurstica como la mejor de forma global.
donde n es el identicador del subsistema y v1 , v2 , . . . son las variables que se quieren obtener en la proyeccin numrica pertenecientes al atributo restriccin Comportamiento. Se ha realizado un ejemplo de proyeccin en cada subsistema, ya pese a que slo se muestra un conjunto de variables, se tiene que encontrar una solucin para las restantes aunque no formen parte de la salida. Esto implica que el tiempo de resolucin de un problema de satisfaccin de restricciones ser independiente de las variables que se presenten como solucin. Los ejemplos utilizados son: 1. Obtener 10 tuplas de valores del subsistema 4 para las variables a2, z 1, b2, r2, t1,
g 2.
219
2. 3. 4.
Obtener 10 tuplas de valores del subsistema 3 para las variables n1, m1, a1, y 1, a2. Obtener 10 tuplas de valores del subsistema 2 para las variables e1, f 1, g 1, h1, t1. Obtener 10 tuplas de valores del subsistema 1 para las variables a, b, c, d, u. La comparacin utilizando las diferentes heursticas, presentada en milisegundos, es la
220
Tiempo (ms)
40 30 20
Figura 8.4: Tiempos de Evaluacin para Proyeccin Numrica resolver un problema de optimizacin de restricciones. Dicho problema de optimizacin de restricciones se crear con todas las restricciones involucradas en la relacin como se explic en la seccin 6.4.1. En este caso se realizar la comparacin entre estudiar todo el espacio de bsqueda, o utilizar una estrategia derivada de las envolventes de las variables. La comparacin de los distintos tiempos de ejecucin se har de la forma:
Estudiar todo el espacio de bsqueda: Con el objetivo de maximizar o minimizar la variable denida en la proyeccin.
Comenzar la bsqueda por la variable objetivo con un valor de terminado (el mximo o el mnimo): De esta forma se comienza la bsqueda instanciando
la variable a maximizar por su mayor valor, o en el caso de la minimizacin por el menor valor de dicha variable (Estrategia 3). Esto implica transformar el anlisis de todo el espacio de bsqueda en la bsqueda de la primera solucin.
221
donde n es el identicador del subsistema y v la variable a maximizar perteneciente al atributo Comportamiento. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Obtener el mximo valor que puede tomar la variable u para el subsistema 1. Obtener el mximo valor que puede tomar la variable t para el subsistema 1. Obtener el mximo valor que puede tomar la variable q para el subsistema 1. Obtener el mximo valor que puede tomar la variable t1 para el subsistema 2. Obtener el mximo valor que puede tomar la variable s2 para el subsistema 2. Obtener el mximo valor que puede tomar la variable a2 para el subsistema 3. Obtener el mximo valor que puede tomar la variable y 1 para el subsistema 3. Obtener el mximo valor que puede tomar la variable g 2 para el subsistema 4. Obtener el mximo valor que puede tomar la variable q 2 para el subsistema 4. Obtener el mximo valor que puede tomar la variable p2 para el subsistema 4. Cuyos tiempos de evaluacin, utilizando las dos estrategias explicadas, se presentan en la tabla 8.4.
222
Consulta
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10)
6,8607 105 6,8607 105 6,8607 105 1,5090 106 1,5090 106 9,7087 105 9,7087 105 1,1539 106 1,1539 106 1,1539 106
7,5497 102 7,9927 102 8,1328 102 7,5943 102 8,2365 102 7,3478 102 7,5647 102 8,4934 102 7,6414 102 1,2801 102
Tabla 8.4: Comparacin para la Evaluacin de Proyecciones Numrica con Optimizacin casos, ya que la opcin del anlisis de todo el espacio de bsqueda es muy costosa en tiempo. Esto es posible gracias a almacenar el mximo y mnimo valor de cada variable en la base de datos.
1,00E+07 1,00E+06
Tiempo (ms)
1,00E+05 1,00E+04 1,00E+03 1,00E+02 1,00E+01 1,00E+00 1 2 3 4 5 6 7 8 9 10 Todas las soluciones Por Variable Objetivo
223
8.3.
El rea de los sistemas de informacin geogrca ha sido el caso de estudio ms analizado en el tratamiento de las Bases de Datos de Restricciones, ya que las restricciones son una forma natural de representar elementos geomtricos, propios de los sistemas de informacin geogrca. Es por esta razn, por la que en esta memoria de tesis se presenta cmo pueden ser tratados con la arquitectura LORCDB, y qu ventajas aade la utilizacin de dicha arquitectura. Las aplicaciones comerciales para el tratamiento de sistemas de informacin geogrca como Oracle SpatialT M , SigPacT M o ArcGisT M utilizan dos formas para almacenar dichos datos: mediante mallas o celdas de bits (raster); o de forma vectorial (puntos, lneas y polgonos). Esta representacin tiene tres claros inconvenientes: la saturacin de la base de datos con gran cantidad de informacin; la prdida de precisin, ya que se tendr que aproximar la informacin con lneas; y la falta de expresividad, ya que las ecuaciones no se almacena como tal. Derivado de estas desventajas, existe la problemtica de una mayor complicacin de las operacin de modicacin de la base de datos, ya que si para almacenar una determinado objeto son necesarios ms registros, tambin ms registros tendrn que modicarse si dicho objeto cambia o es eliminado. Con el objetivo de paliar dichos inconvenientes, las BDdR proponen sustituir las mallas y los vectores por restricciones. Otra de las razones para abordar los sistemas de informacin geogrca en esta tesis, es la realizacin de las distintas pruebas con los operadores de seleccin, unin y diferencia. Dichos operadores son ms complejos cuando en las relaciones sobre las que se opera hay involucradas restricciones con las mismas variables. Mientras que los sistemas para realizar la diagnosis basada en modelos estn formados por muchas variables, los sistemas de informacin geogrca estn formadas por muchos restricciones denidas sobre las mismas variables. Esto implica que los sistemas de informacin geogrca son un caso complejo de evaluacin de la seleccin, unin y diferencia, ya que las comparaciones entre las restricciones de las distintas tuplas conllevar, en algunos casos, construir y resolver problemas de satisfaccin de restricciones. Lo primero para poder hacer consultas sobre un conjunto de restricciones de una Base de Datos de Restricciones es almacenarlas. Para construir un conjunto de tablas relacionadas con informacin geogrca, sobre las que hacer las consultas, se ha desarrollado
224
e implementado una aplicacin que ayuda a la captura de puntos de un mapa con el objetivo de obtener las restricciones y almacenarlas en la Base de Datos de Restricciones. Toda la informacin sobre la aplicacin se encuentra en la Seccin B.2 del Apndice B. Dicha aplicacin utiliza el mtodo de Lagrange para la aproximacin mediante polinomios a un conjunto de puntos, dicho mtodo utiliza la interpolacin mediante mnimos cuadrados [54][7]. La utilizacin de polinomios tambin conlleva una aproximacin de la realizada, pero que se acerca ms a la informacin real y con menor nmero de restricciones que si se utilizan slo lneas.
Como atributos a destacar estn el campo Situacion que almacena las restricciones que describe cada calle, y el tipo que denir si es 'calle' o 'avenida' tomando estas dos cadenas como posibles valores. Para enriquecer las consultas, tambin se ha incluido la tabla Residenciales con los residenciales de la zona, creada mediante la sentencia:
CREATE TABLE Residenciales(Id Integer, Nombre String, Situacion Constraint)
En esta tabla, como atributo a destacar est el atributo restriccin Situacion que almacena una combinacin conjuntiva de inecuaciones lineales y polinmicas. El contorno de los residenciales se muestra en la gura 8.7, mientras que las restricciones de los 27 residenciales concretos se muestran en la gura B.7 del Apndice B, y las envolventes de las variables en la gura B.8 del mismo apndice.
225
Figura 8.6: Vista del Mapa Hbrida Tambin se crear en la base de datos otra tabla para almacenar los censos electorales de la zona, que se muestran en la gura 8.8, y cuyas restricciones concretas se encuentran en la gura B.9 del apndice B. La tabla Censos ser creada mediante la sentencia:
CREATE TABLE Censos(Id Integer, Nombre String, Situacion Constraint)
Cada una de las tres tablas creadas representa una capa sobre las variables (x, y), permitiendo almacenar, en poco espacio y manteniendo la simbologa, la informacin relativa a calles, residenciales y censos. Queda por describir la ltima tabla Obras, que se detallar cuando se analicen las operaciones de unin y diferencia, ya que slo se utilizan en consultas de ese tipo.
8.4.
Partiendo de una relacin donde hay involucradas restricciones, la seleccin devolver un subconjunto horizontal de dicha relacin con aquellas tuplas que cumplan una condicin dada. Dicha condicin deber estar relacionada con las restricciones que conforman la
226
Figura 8.7: Residenciales de la zona tupla, utilizando los operadores <, , >, , =, <> &, , , y , presentados en el captulo 4. En esta seccin se presenta un conjunto de consultas con estos operadores de comparacin, y las mejoras relacionadas con la evaluacin del operador de seleccin. Los casos que se compararn son:
Sin Mejora: Esto signica crear todos los CSP necesarios para la comparacin de
las restricciones. Si las restricciones estuvieran almacenadas sin informacin relativa a las envolventes de las variables, sera necesario crear un problema de satisfaccin de restricciones para cada tupla con restricciones. Si la comparacin se hiciera entre dos atributos restriccin, eso conllevar realizar n m problemas de satisfaccin de restricciones donde n y m representan el nmero de tuplas de cada una de las relaciones.
Con lgebra Relacional: Lo que signica crear los CSP slo con las tuplas que
cumplan las condiciones establecidas con el lgebra relacional sobre los atributos clsicos. Si adems de condiciones relativas a un atributo restriccin existen condiciones relativas a atributos univaluados, no ser necesario crear problemas de satisfaccin de restricciones con aquellas tuplas que no cumplan las condiciones del
227
Figura 8.8: Censos de la zona lgebra relacional clsica (Estrategia 1). Esta seleccin la realizar el gestor de bases de datos relacionales.
Analizando Envolventes: Lo que implica crear los CSP slo con las restricciones que cumplan las envolventes, derivado de la Estrategia 3. Analizando las envolventes de las restricciones se puede obtener mucha informacin sobre ella, y slo para algunos casos ser necesario crear un problema de satisfaccin de restricciones. Estos casos ya han sido enumerados en la seccin 6.2.
Aadiendo Envolventes: Incluyendo los dominios de las variables en los CSP para acotar ms la bsqueda, derivado tambin de la Estrategia 3. Ya que se
tienen almacenadas las envolventes de las variables, stas pueden ser incluidas en los problemas de satisfaccin de restricciones para acotar ms la bsqueda.
228
Qu residenciales estn al este de la Avenida de las Ciencias? La descripcin detallada de esta consulta ser: obtener todos los residenciales r tal que para todo (x, y) que sea solucin de la Avenida de las Ciencias y para todo (x', y) que sea solucin de r, siempre x x'. La consulta ser:
SELECT Residenciales.Nombre FROM Residenciales, Calles WHERE Residenciales.Situacion >= (Calles.Situacion FOR x AND Calles.Situacion.y = Residenciales.Situacion.y) AND Calle.Nombre = 'Avd de las Ciencias'
2.
Qu residenciales estn al oeste de la calle Flor de Albahaca? La descripcin detallada de esta consulta ser: obtener todos los residenciales r tal que para todo (x, y) que sea solucin de Flor de Albahaca y para todo (x', y) que sea solucin de r, siempre x x'. La consulta ser:
SELECT Residenciales.Nombre FROM Residenciales, Calles WHERE Residenciales.Situacion <= (Calles.Situacion FOR x AND Calles.Situacion.y = Residenciales.Situacion.y) AND Calles.Nombre = 'Flor de Albahaca'
3.
229
4.
Qu residenciales estn ms al norte (tienen mayor latitud) que el residencial 'Entre Parques' ? La descripcin detallada ser: obtener todos los residenciales r tal que para todo (x, y) que sea solucin de Entre Parques y para todo (x', y') que sea solucin de r, siempre y' > y. La consulta ser:
SELECT r.Nombre FROM Residenciales as r, Residenciales as r1 WHERE r1.Nombre = 'Entre Parques' AND r.Situacion > (r1.Situacion FOR y)
5.
Qu residenciales estn ms al noreste que el residencial Galileo (estn a ms latitud y longitud)? La descripcin detallada ser: obtener todos los
residenciales r tal que para todo (x, y) que sea solucin de Galileo y para todo (x', y') que sea solucin de r, siempre y' > y y x' > x. La consulta ser:
SELECT r1.Nombre FROM Residenciales as r, Residenciales as r1 WHERE r.Nombre = 'Galileo' AND r.Situacion < r1.Situacion
6.
7.
Qu residenciales pertenecen al censo 3? La descripcin detallada ser: obtener todos los residenciales r tal que para todo (x, y) que sea solucin de r tambin lo es del censo 3. La consulta ser:
SELECT Residenciales.Nombre FROM Residenciales, Censo WHERE Censos.Nombre = 'Censo 3' AND Censos.Situacion Residenciales.Situacion
230
8.
9.
Qu residenciales estn ms al norte (a mayor latitud) que la rotonda (x 177)2 + (y 288)2 222 ? Este es un ejemplo de insercin de restricciones en
la consulta que no estn previamente almacenadas en la base de datos. La consulta ser:
SELECT Residenciales.Nombre FROM Residenciales WHERE Residenciales.Situacion > ((x 177)2 + (y 288)2 222 FOR y )
10.
Qu residenciales estn ms al este que la rotonda (x 177)2 + (y 288)2 222 ? La consulta ser:
SELECT Residenciales.Nombre FROM Residenciales WHERE Residenciales.Situacion > ((x 177)2 + (y 288)2 222 FOR x)
Los datos relativos al tiempo y al nmero de CSP que se crean para cada seleccin se muestran en la tabla 8.5. En esta tabla se presentan los cuatro tipos de medias para el caso sin mejoras, y cmo el nmero de problemas de satisfaccin de restricciones y el tiempo se van decrementando cada vez que se va aadiendo cada una de las tres mejoras. Esto signica que la ltima columna contiene los resultados cuando se utilizan las tres mejoras para la evaluacin de la seleccin.
231
Tiempo Nmero
Tiempo Nmero
Tiempo Nmero
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10)
5,0745103 3,2044103 4,3165103 4,2456103 8,5145103 1,5598103 1,6373103 9,0265102 1,6808103 7,3295102
27 27 27 27 27 27 27 2 27 27
1,4755103 1,4466103 1,6655103 9,2444102 2,0255103 1,4467103 9,0247102 7,0245102 1,6808103 7,3295102
20 3 2 0 0 12 7 2 0 0
7,6475102 7,1346102 6,8030102 2,0991 2,0971 7,9477102 7,9627102 7,0236102 4,1943 3,1457
20 3 2 0 0 12 7 2 0 0
7,5334102 6,9327102 6,6032102 2,0991 2,0971 7,9453102 7,8622102 7,0277102 4,1943 3,1457
Tabla 8.5: Comparacin para la Evaluacin de la Seleccin milisegundos y utilizando la escala logartmica para mostrar ms claramente las diferencias temporales. Estas mejoras vienen derivadas de la reduccin del nmero de problemas de satisfaccin de restricciones, mostrada en la gura 8.10, tambin presentada utilizando la escala logartmica. Como se puede observar en la grca de la gura 8.9, existen consultas donde se obtienen evaluaciones del orden de hasta 1000 veces ms ecientes que sin utilizar ninguna mejora. En casos como las consultas 3, 4, 9, y 10, no es necesario construir ningn CSP ya que el simple anlisis de la envolvente, que no es ms que una consulta clsica sobre atributos numricos, es suciente. Tambin se puede observar que siempre el nmero de CSP del tercer (- -) y cuarto (--) caso son iguales, y el tiempo de evaluacin muy similar, ya que la cuarta mejora slo implica incluir las envolventes, no reducir el nmero de CSP. Si no se hiciera referencia a atributos clsicos en la condicin, el tiempo y el nmero de los CSP construidos de la primera y segunda prueba para cada ejemplo, seran iguales.
232
1,00E+04
1,00E+03 Sin Mejora Tiempo (ms) 1,00E+02 Con Algebra Relacional Analizando Envolventes Aadiendo Envolventes 1,00E+01
1,00E+00 1 2 3 4 5 6 7 8 9 10
100
Nmero de CSP creados
10
1 1 2 3 4 5 6 7 8 9 10
233
Sin Mejora: Creando todos los posibles CSP entre dos relaciones R1 , R2 con restricciones, siendo necesario crear un CSP con una restriccin de R1 y otra de R2 para conocer si comparten todas las soluciones. Esto signica que existen n m posibilidades donde m y n son el nmero de tuplas de R1 y R2 respectivamente.
Con lgebra Relacional: Creando CSP con las tuplas que tengan todos los atributos clsicos iguales, utilizando la Estrategia 1. Si una tupla de R1 y otra de R2
tienen al menos uno de sus atributos clsicos o univaluados distintos, no sera necesario crear un CSP para esa opcin ya que independientemente de las restricciones, dichas tuplas son distintas y ambas formarn parte de la relacin de salida.
Analizando las Envolventes: Creando los CSP slo con las restricciones que cumplan las envolventes, como se explica en la seccin 6.5. La envolvente de las variables de las restricciones da informacin sobre si las restricciones pueden compartir o no soluciones. Si los valores denidos por las envolventes de las restricciones no tienen ningn valor en comn o slo algunos, no ser necesario crear un CSP con esas restricciones ya que seguro que las restricciones no son iguales. Sin embargo, si las envolventes de las variables de una restriccin estn incluidas en la otra, ser necesario comprobar mediante un CSP, si realmente una restriccin est incluida dentro de otra aunque lo estn sus envolventes. Para facilitar las consultas y enriquecer los ejemplos se aade una nueva tabla Obras a la Base de Datos de Restricciones. La tabla Obras almacenar 25 zonas donde se van a realizar obras en los prximos aos, como se muestra en la gura 8.11. Los detalles de cada una de las restricciones almacenadas en la tabla Obras se muestran en la gura B.10 del Apndice B.
234
7 15 18 20 21 16 22 23 19 10 24 17 25 8 14 13 11 12
1 3
2 4
5 6
2.
Para los residenciales y la calles, obtener los identicadores de censos a los que pertenecen y su situacin. La consulta ser:
SELECT Censos.Id, Calles.Situacion FROM Censos, Calles WHERE Calles.Situacion Censos.Situacion UNION SELECT Censos.Id, Residenciales.Situacion FROM Censos, Residenciales WHERE Residenciales.Situacion Censos.Situacion
3.
Obtener los identicadores de obras y las situaciones de las calles y residenciales, ambas del censo 1, que les afecte alguna obra. La consulta ser:
SELECT Obras.Id, Calles.Situacion FROM Obras, Calles, Censos WHERE Calles.Situacion & Obras.Situacion AND Calles.Situacion Censos.Situacion AND Censoa.Id = 1
235
UNION SELECT Obras.Id, Residenciales.Situacion FROM Obras, Residenciales, Censos WHERE Residenciales.Situacion & Obras.Situacion AND Residenciales.Situacion Censos.Situacion AND Censos.Id = 1
4.
Obtener los identicadores de obras y las situaciones de las calles y residenciales que les afecte alguna obra. La consulta ser:
SELECT Obras.Id, Calles.Situacion FROM Obras, Calles WHERE Calles.Situacion & Obras.Situacion UNION SELECT Obras.Id, Residenciales.Situacion FROM Obras, Residenciales WHERE Residenciales.Situacion & Obras.Situacion
5.
Obtener los identicadores de censo y las situaciones de las obras y las calles. La consulta ser:
SELECT Censos.Id, Obras.Situacion FROM Obras, Censos WHERE Obras.Situacion & Censos.Situacion UNION SELECT Censos.Id, Calles.Situacion FROM Calles, Censos WHERE Calles.Situacion & Censos.Situacion
6.
Obtener los identicadores de censo y las situaciones de las obras y los residenciales. La consulta ser:
SELECT Censos.Id, Obras.Situacion FROM Obras, Censos WHERE Obras.Situacion & Censos.Situacion UNION SELECT Censos.Id, Residenciales.Situacion FROM Residenciales, Censos WHERE Residenciales.Situacion & Censos.Situacion
236
7.
Obtener los identicadores de censo y las situaciones de las obras del censo 1 y de las calles de cualquier censo. La consulta ser:
SELECT Censos.Id, Obras.Situacion FROM Obras, Censos WHERE Obras.Situacion & Censos.Situacion AND Censos.Id= 1 UNION SELECT Censos.Id, Calles.Situacion FROM Calles, Censos WHERE Calles.Situacion & Censos.Situacion
8.
Obtener los identicadores de censo y las situaciones de las obras del censo 2 y de los residenciales de cualquier censo. La consulta ser:
SELECT Censos.Id, Obras.Situacion FROM Obras, censo WHERE Obras.Situacion & Censos.Situacion AND Censos.Id = 2 UNION SELECT Censos.Id, Residenciales.Situacion FROM residenciales, censo WHERE Residenciales.Situacion & Censos.Situacion
9.
Obtener los identicadores de censo y las situaciones de las obras y las calles incluidas en el censo 2. La consulta ser:
SELECT Censos.Id, Obras.Situacion FROM obras, censo WHERE Obras.Situacion & Censos.Situacion UNION SELECT Censos.Id, Calles.Situaciont FROM Calles, Censos WHERE Calles.Situacion Censos.Situacion AND Censos.Id = 2
10.
Obtener los identicadores de censo y las situaciones de las obras de cualquier censo y de los residenciales incluidos en el censo 3. La consulta ser:
SELECT Censos.Id, Obras.Situacion FROM Obras, censo WHERE Obras.Situacion & Censos.Situacion UNION SELECT Censos.Id, Residenciales.Situacion FROM residenciales, censo WHERE Residenciales.Situacion Censos.Situacion AND Censos.Id = 3
237
Toda la informacin relativa a los tiempos medios de ejecucin y el nmero de CSP que se crean para cada uno de los ejemplos se muestra en la tabla 8.6.
Sin Consulta Mejora Nmero de CSP Tiempo (ms) Con lgebra Relacional Nmero de CSP Tiempo (ms) Analizando Envolventes Nmero de CSP Tiempo (ms)
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10)
5,6953103 6,0534103 1,0286103 2,4798103 4,8486103 4,9985103 2,4264103 1,4627103 2,6361103 3,2747103
5,6953103 2,3855103 8,7765102 9,4371102 1,6053103 1,7028103 9,9509102 1,0255103 1,0684103 1,2572103
28 11 3 11 7 4 4 0 2 0
9,2012102 8,7556102 7,2142102 1,4239102 7,9691102 7,9062102 7,4448102 5,1799101 7,0182102 5,3372101
238
operacin la Estrategia 1 puede realizar la evaluacin hasta tres veces ms rpido que sin mejoras. Sin embargo, para este ejemplo la mejora ms sustancial es el Anlisis de Envolventes (derivada de la Estrategia 3) que en los ejemplos, y combinndola con el lgebra relacional, ha llegado a ser hasta sesenta veces ms eciente en tiempo.
1,00E+04
1,00E+03 Sin Mejora Tiempo (ms) 1,00E+02 Con lgebra Relacional Analizando Envolventes 1,00E+01
1,00E+00 1 2 3 4 5 6 7 8 9 10
1000
100 Sin Mejora Nmero de CSP creados 10 Con lgebra Relacional Analizando Envolventes
1 1 2 3 4 5 6 7 8 9 10
239
tuplas de R2 . Cmo realizar la evaluacin de la diferencia de una manera eciente se ha explicado en la seccin 6.6. Para esta operacin se proponen 10 ejemplos, donde se muestra la comparativa aadiendo cada una de las mejoras, iguales a las de la operacin de unin. Las comparaciones se realizarn sobre los casos:
Sin Mejora: Creando todos los posibles CSP, lo que al igual que en la Unin
signica n m posibilidades, donde m y n son el nmero de tuplas de R1 y R2 respectivamente.
Con lgebra Relacional: Creando CSP slo con las tuplas que tengan todos los atributos clsicos iguales, derivado de la Estrategia 1. Si una tupla de R1 y
otra de R2 tienen al menos unos de sus atributos clsicos o univaluados distintos, no sera necesario crear un CSP para esa opcin, ya que independientemente de las restricciones, dichas tuplas son distintas, lo que signica que la tupla de R1 formarn parte de la relacin de salida.
Analizando las Envolventes: Creando slo CSP con las restricciones que cumplan las envolventes cuyos detalles se explicaron en la seccin 6.6, derivado de la
Estrategia 3.
Residenciales, Calles, Censos y Obras. Los tiempos presentados para los prximos ejemplos
slo tienen en cuenta el tiempo de ejecucin de la diferencia, una vez de las relaciones de entrada se han obtenido. 1. Obtener la situacin de las obras incluidas en el censo 1 menos la situacin de las calles, tambin del censo 1, donde hay una obra. La consulta ser:
SELECT Obras.Id, Obras.Situacion FROM Obras, Censos WHERE Obras.Situacion censos.Situacion AND Censos.Id = 1 MINUS SELECT Obras.Id, Calles.Situacion FROM Obras, Censos, Calles
240
2.
Obtener el identicador y la situacin de las obras incluidas en el censo 3 que no estn incluidas en la situacin del censo 2. La consulta ser:
SELECT Obras.Id, Obras.Situacion FROM Obras, Censos WHERE Obras.Situacion Censos.Situacion AND Censos.Id = 3 MINUS SELECT Obras.Id, Obras.Situacion FROM Obras, Censos WHERE Obras.Situacion Censos.Situacion AND Censos.Id = 2
3.
4.
Obtener el censo y la situacin de las obras incluidas en el censo 2, menos la situacin de los residenciales de cualquier censo. La consulta ser:
SELECT Censos.Id, Obras.Situacion FROM Obras, Censos WHERE Obras.Situacion Censos.Situacion AND Censos.Id = 2 MINUS SELECT Censos.Id, Residenciales.Situacion FROM Censos, residenciales WHERE Residenciales.Situacion Censos.Situacion
5.
Obtener el identicador del censo y la situacin de los residenciales incluidos en el censo 1, menos la situacin de las obras de cualquier censo. La consulta ser:
SELECT Censos.Id, Residenciales.Situacion FROM Censos, residenciales
241
WHERE Residenciales.Situacion Censos.Situacion AND Censos.Id = 1 MINUS SELECT Censos.Id, Obras.Situacion FROM Obras, Censos WHERE Obras.Situacion Censos.Situacion
6.
Obtener el identicador del censo y la situacin de las obras incluidas en el censo 1, menos la situacin de las calles incluidas en cualquier censo. La consulta ser:
SELECT Censos.Id, Obras.Situacion FROM Obras, Censos WHERE Obras.Situacion Censos.Situacion AND Censos.Id = 1 MINUS SELECT Censos.Id, Calles.Situacion FROM Censos, Calles WHERE Calles.Situacion Censos.Situacion
7.
Obtener el identicador del censo y la situacin de las obras incluidas en el censo 2, menos la situacin de las calles incluidas en cualquier censo. La consulta ser:
SELECT Censos.Id, Obras.Situacion FROM Obras, Censos WHERE Obras.Situacion Censos.Situacion AND Censos.Id = 2 MINUS SELECT Censos.Id, Calles.Situacion FROM Censos, Calles WHERE Calles.Situacion Censos.Situacion
8.
Obtener el identicador del censo y la situacin de las calles incluidas en el censo 2, menos la situacin de las obras incluidas en cualquier censo. La consulta ser:
SELECT Censos.Id, Calles.Situacion FROM Censos, Calles WHERE Calles.Situacion Censos.Situacion AND Censos.Id = 2 MINUS SELECT Censos.Id, Obras.Situacion FROM Obras, Censos WHERE Obras.Situacion Censos.Situacion
9.
Obtener el identicador del censo y la situacin de las calles, menos la situacin de las obras incluidas en cualquier censo. La consulta ser:
242
SELECT Censos.Id, Calles.Situacion FROM Censos, Calles WHERE Calles.Situacion Censos.Situacion MINUS SELECT Censos.Id, Obras.Situacion FROM Obras, Censos WHERE Obras.Situacion Censos.Situacion
10.
Obtener el identicador del censo y la situacin de los residenciales, menos la situacin de las obras incluidas en cualquier censos. La consulta ser:
SELECT Censos.Id, Residenciales.Situacion FROM Censos, residenciales WHERE Residenciales.Situacion Censos.Situacion MINUS SELECT Censos.Id, Obras.Situacion FROM Obras, Censos WHERE Obras.Situacion Censos.Situacion
Toda la informacin relativa a los tiempos medios de ejecucin y el nmero de CSP que se crean para cada uno de los ejemplos se muestra en la tabla 8.7.
Resumen
243
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10)
1,4040103 8,4934102 1,9314103 1,3004103 1,9980103 1,7909103 1,1709103 2,2668103 2,3651103 3,4534103
7,2142102 7,3610102 8,9851102 9,1654102 1,0863103 8,7665102 9,45099102 9,2458102 1,1557103 1,3179103
4 3 15 14 29 24 40 40 92 58
7,2142102 7,2771102 7,8433102 7,6751102 8,7034102 7,8852102 8,4751102 8,0264102 8,8234102 9,0085102
8.7.
Resumen
En este captulo se presentan un conjunto de ejemplos para las operaciones primitivas del lgebra relacional redenidas en esta tesis. Dichas pruebas utilizan dos casos de estudio, la diagnosis basada en modelos para la proyeccin simblica y numrica, y los sistemas de informacin geogrca para la seleccin, unin y diferencia. Se han utilizado casos de estudio diferentes para analizar los casos computacionalmente ms complejos en cada operacin, muchas variables para la proyeccin, y pocas variables en el resto de los casos. Para cada una de las operaciones se ha realizado la comparativa aadiendo las distintas mejoras propuestas derivadas del diseo de la arquitectura LORCDB: utilizacin del lgebra relacional, indexacin de variables, almacenar las envolventes de las variables, y etiquetado de restricciones. Entre las cuatro operaciones, se han realizado 176 pruebas, cada una de ellas ejecutadas
100 veces para obtener los tiempos medios de evaluacin. El anlisis de las operaciones se
ha realizado de manera separada, lo que signica que al combinar las distintas operaciones en una misma consulta, tambin se mejorar el tiempo de evaluacin global.
244
1,00E+04
1,00E+03 Sin Mejora Tiempo (ms) 1,00E+02 Con lgebra Relacional Analizando Envolventes 1,00E+01
1,00E+00 1 2 3 4 5 6 7 8 9 10
100 Sin Mejora Nmero de CSP creados 10 Con lgebra Relacional Analizando Envolventes
1 1 2 3 4 5 6 7 8 9 10
Figura 8.15: Nmero de CSP creados para la Diferencia Cabe destacar que la operacin que ms decrementa el tiempo de evaluacin es la proyeccin, tanto simblica como numrica. Esto es posible gracias a la utilizacin del algoritmo para la deteccin de los Conjuntos de Restricciones Relacionadas por Variables en el caso simblico, y el uso de las distintas heursticas en el caso de la proyeccin numrica.
9.1.
Ampliar los Gestores de Bases de Datos para el tratamiento de Informacin compleja representada mediante Restricciones
Como consecuencia de este objetivo, se derivan un conjunto de subobjetivos para conseguirlo:
Analizar las necesidades de las Bases de Datos actuales y sus deciencias con respecto al tratamiento de datos complejos
Las bases de datos relacionales tienen cualidades para el tratamiento de datos extensivos, pero existen grandes deciencias en lo concerniente a los datos intensivos.
246
De esta forma, se analizan los distintos gestores de bases de datos para dar cabida a las aplicaciones que necesitan representacin intensiva de la informacin.
Principales Aportaciones
247
restricciones almacenadas. Dentro del Sistema Gestor de Bases de Datos de Restricciones, se incluyen un conjunto de herramientas y estrategias de resolucin de consultas, para que la funcionalidad relativa a las restricciones sea resuelta por el gestor. Esto provoca que las aplicaciones queden liberadas de la complejidad y tratamiento de las restricciones.
9.2.
Principales Aportaciones
Cabe destacar un subconjunto de las propuestas de esta tesis, como las aportaciones ms relevantes en al rea de los Gestores de Bases de Datos.
248
Publicaciones
249
9.3.
Publicaciones
Durante el desarrollo de esta tesis se han publicado trabajos tanto en el rea de la bases de datos, de la diagnosis de fallos, como especcamente en el campo de las Bases de Datos de Restricciones. Dichas aportaciones presentadas cronolgicamente son:
Ttulo: Arquitectura para la Consulta a Bases de Datos Restrictivas. Autores: Mara Teresa Gmez, Rafael M. Gasca, Carmelo Del Valle y Rafael Ceballos
ndice de Aceptacin: 24.6 % Ttulo: CSP y Bases de Datos Restrictivas. Autores: Mara Teresa Gmez, Rafael M. Gasca, Carmelo Del Valle y Rafael Ceballos
Publicado en: Revista Iberoamericana de Inteligencia Articial, Volumen 20, pginas: 150-163, 2003
Ttulo: CSP aplicados a la diagnosis basada en modelos. Autores: Rafael Ceballos, Carmelo Del Valle, Mara Teresa Gmez y Rafael M.
Gasca.
Publicado en: Revista Iberoamericana de Inteligencia Articial, Volumen 20, pginas: 137-150, 2003
250
Autores: Mara Teresa Gmez, Rafael M. Gasca, Carmelo Del Valle y Antonio
Mrquez
Publicado en: X Conferencia de la Asociacin Espaola Para la Inteligencia Articial (CAEPIA), Volumen I, pginas: 469-472, 2003
Ttulo: Determination of Possible Minimal Conict Sets Using Constraint Databases Technology and Clustering.
Autores: M. T. Gmez-Lpez, R. Ceballos, R. M. Gasca y S. Pozo. Publicado en: IBERAMIA, Lecture Notes in Computer Science, Springer, Volumen: 3315, pginas: 942-952, 2004.
ndice de Aceptacin: 31 % Ttulo: Applying Constraint Databases in the Determination of Potential Minimal
Conicts to Polynomial Model-based Diagnosis.
Autores: Mara Teresa Gmez, R. Ceballos, R. M. Gasca y C. Del Valle Publicado en: Constraint Databases (CDB), Lecture Notes in Computer Science,
Springer, Volumen: 3074, pginas: 74-87, 2004.
ndice de Aceptacin: 34 % Ttulo: Constraint Databases Technology for Polynomial Models Diagnosis Autores: Mara Teresa Gmez-Lpez, Rafael Ceballos, Rafael M. Gasca y Carmelo
Del Valle
Publicaciones
251
Ttulo: Determination of Possible Minimal Conict Sets Using Components Clusters and Grbner Bases.
Autores: Rafael Ceballos, Mara Teresa Gmez-Lpez, Rafael M. Gasca y S. Pozo Publicado en: 15th International Workshop on Principles of Diagnosis (DX'04),
pginas: 21-26, 2004
[2005]: Durante este ao se crea la primera versin de la arquitectura usando el paradigma objeto-relacional. Dicha arquitectura permite crear problemas de satisfaccin de restricciones e inferir nuevas restricciones partiendo de las almacenadas en la base de datos utilizando tcnicas simblicas. El caso de estudio contina siendo la diagnosis basada en modelos, incorporando todas la mejoras obtenidas en el ao anterior. En estos trabajos las restricciones son almacenadas como objetos indexados en una base de datos relacional, para mejorar la eciencia de las consultas.
Autores: Mara Teresa Gmez-Lpez, Rafael M. Gasca y Carmelo Del Valle Publicado en: Revista CUORE. Vivat Academia, Octubre 2005, nmero 12, pginas: 3-16
Autores: Mara Teresa Gmez-Lpez, Rafael M. Gasca, Carmelo Del Valle y Victor
Cejudo
Publicado en: Jornadas de Ingeniera del Software y Bases de Datos, pginas 221229, 2005.
252
Publicado en: International Conference on Database and Expert Systems Applications (DEXA), Lecture Notes in Computer Science, Springer, volumen 3588, pginas 848-857, 2005.
Ttulo: Improving the determination of Minimal Hitting Sets in Model-Based Diagnosis using Constraint Databases.
Autores: Mara Teresa Gmez-Lpez, Rafael M. Gasca and Carmelo Del Valle Publicado en: 6th IFAC Symposium on Fault Detection, Supervision and Safety
of Technical Processes, SAFEPROCESS 2006
Autores: Mara Teresa Gmez-Lpez y Rafael M. Gasca Publicado en: XI Jornadas de Ingeniera del Software y Bases de Datos, Sitges,
Espaa, pginas: 471-476, 2006
Publicaciones
253
Autores: Mara Teresa Gmez-Lpez, Rafael M. Gasca, Carmelo Del Valle y Sergio
Pozo
Publicado en: Revista Iberoamericana de Inteligencia Articial, Volumen 31, pginas: 41-52, 2006
Ttulo: A compiled model for faults diagnosis based on dierent techniques. Autores: Rafael Ceballos, Mara Teresa Gmez-Lpez, Rafael M. Gasca y Carmelo
Del Valle
Publicado en: AI Communications, vol. 20, pginas 6-17, 2007 ndice de Impacto: 0.46 Ttulo: Developing a Labelled Object-Relational Constraint Database Architecture
for Projection Operator.
Publicado en: En la segunda fase del proceso de revisin en Data & Knowledge
Engineering. Ed. Elsevier
254
Ttulo: NMUS: Structural Analysis for Improving the Derivation of All MUSes in
Overconstrained Numeric CSPs
Publicado en: XII Conferencia de la Asociacin Espaola Para la Inteligencia Articial (CAEPIA), Lecture Notes in Articial Intelligence, Springer, volumen 4788, pginas 160-169, 2007
ndice de Aceptacin: 20,1 Ttulo: Bases de Datos de Restricciones para el tratamiento de CSP Autores: Mara Teresa Gmez-Lpez, Rafael M. Gasca y C. Del Valle Publicado en: Workshop on Planning, Scheduling and Constraint Satisfaction,
2007
Ttulo: Supervised and Distributed Model-Based Diagnosis Autores: Diana Borrego, Mara Teresa Gmez-Lpez y Rafael M. Gasca Publicado en: II Workshop on Industrial Applications of Distributed Intelligent
Systems, 2007
255
A.1.
Como se expuso en el captulo 6, para la bsqueda de las restricciones relacionadas con los atributos variable de restriccin, existen dos variantes, la proyeccin horizontal (gura A.1.a) y la proyeccin vertical (gura A.1.b). En funcin de qu tipo de proyeccin se realize, la bsqueda involucrar restricciones de la misma tupla (G1 , . . ., Gn ), o del mismo atributo restriccin (G1 , . . ., Gm ). Partiendo de la notacin introducida en el captulo 6:
258
Relacin
Relacin
G1
...
Gn G1
(a) Proyeccin Horizontal
...
(b) Proyeccin Vertical
Gm
Figura A.1: Tipos de Proyeccin: Horizontal y Vertical Y de la denicin de CRRV para la proyeccin simblica:
Conjunto de Restricciones Relacionadas por Variables (CRRV) para la Proyeccin Simblica. Gi ' ser un Conjunto de Restricciones Relacionadas por Variables si:
Siendo Gi ' {ci , . . ., cj } | (Gi {c1 , . . ., cn } Gi 'Gi )
Variables(Q,{ci , . . ., cj }) =
Estructuras de Datos
259
CRRV. Mientras que dos restricciones en un CRRV tendrn una relacin OR si tienen una variable no perteneciente a la proyeccin en comn pero que tambin est en otras restricciones de Gi , lo que signica que dichas restricciones pueden pertenecer al mismo CRRV o no. Basado en esta idea se crea un grafo donde cada nodo estar formado por una restriccin sola, o un conjunto de restricciones con una relacin AND entre ellas dos a dos, lo que provocar que el grafo tenga menos nodos, y por lo tanto el recorrido de l sea ms eciente. Cada uno de los nodos del grafo (Nodo-Restricciones) estar formado por una estructura con los siguientes atributos:
Conjunto Restricciones: Conjunto de las restricciones que forman el nodo, que tienen
una relacin AND entre ellas. Es posible que este conjunto slo tenga una restriccin.
tricciones derivado de que tengan una relacin AND. Conjunto VariablesNoResueltas: Conjunto con las variables de las restricciones del
conjunto Restricciones, que no pertenecen a las VariablesResueltas. Entre dos nodos del grafo (Nodo-Restricciones) existir una arista si comparten al menos una variable no resuelta (VariablesNoResueltas). En la gura A.2 se muestra un ejemplo donde las restricciones R1 y R2 tienen una relacin AND, ya que la variable k slo aparece en esas dos restricciones, por lo que si una pertenece a un CRRV, la otra tambin tendr que pertenecer. El resto de restricciones tienen una relacin OR. Una vez formado dicho grafo, el recorrido del grafo consiste en, partiendo de cada uno de los Nodo-Restricciones con variables pertenecientes a la consulta Q, obtener todos los conjuntos de Nodo-Restricciones que cumplan la denicin de CRRV. Para ello se utiliza una estructura llamada Estructura-CRRV, a la que se le irn aadiendo las distintas restricciones a lo largo del recorrido del grafo tal como se explicar en el algoritmo 1. La
Estructura-CRRV tiene los atributos: Conjunto Restricciones: Conjunto de los identicadores de las restricciones que hasta
el momento forman el CRRV.
260
R7
y
v2
y
R7
v2
R3
y
R3
y
x
v1
R1
R2
x
R6
z
v3
v1
R1,R2
x
R6
z
v3
R4
z
R4
z
R5
Conjunto RestCiclo: Este conjunto de restricciones evita ciclos cuando existen relaciones OR entre restricciones, y se pueden obtener CRRV repetidos resolviendo la variable con dos o ms restricciones diferentes. Un ejemplo basado en la gura A.2 es obtener dos CRRV por la relacin OR existente entre (R1 R2 , R3 ) y (R1 R2 ,
R4 ), por lo que realizando el recorrido por ambas ramas se obtendrn dos CRRV:
{R1 R2 , R3 , R6 , R4 } y {R1 R2 , R4 , R6 , R3 }. Estos CRRV son los mismos, ya que el orden de las restricciones no es determinante. Para evitar estas duplicaciones, al comenzar un recorrido OR se aadir dicha restriccin a RestCiclo, para que no pueda participar en otro recorrido. Un ejemplo de la traza completa se mostrar ms adelante.
z
v4
R5
z
v4
Estructuras de Datos
261
La idea del algoritmo consiste en, inicializando una Estructura-CRRV con un Nodo-
crrv.restricciones.aadir(rr.restricciones)
2. Poner como analizadas aquellas variables no analizadas de crrv que aparezcan como no resueltas en rr, ya que son variables que no pertenecen a la proyeccin que estn al menos en dos restricciones, una de las restricciones ya incluidas en crrv y otra de rr:
crrv.variablesAnalizadas.aadir(crrv.variablesNoAnalizadas rr.variablesNoResueltas)
3. Aadir a las variables no analizadas de crrv, las no resueltas de rr que no estn ya en las analizadas:
crrv.variablesNoAnalizadas.aadir(rr.VariablesNoResueltas crrv.VariablesAnalizadas)
Cuando una Estructura-CRRV no tiene ninguna variable en las VariablesNoAnalizadas y el conjunto es mnimo, se almacenar en una lista llamada ListaCRRV. Para conocer si un CRRV obtenido mediante el algoritmo es mnimo, se utilizar la funcin esMni-
mo(CRRV), la cual comprueba si para cada una de las restricciones del CRRV de entrada,
existe al menos una variable que slo aparece en dos restricciones del conjunto. Esto signicar que dicha restriccin es necesaria para forma el CRRV, y que si ella no formar parte del conjunto, dejara de ser un CRRV. Con el algoritmo propuesto, esta comprobacin slo ser necesaria si existen restricciones que tengan ms de una variable en comn. Como se la gura A.3, donde el conjunto de restricciones mostradas no forman un CRRV, ya que por ejemplo todas las variables de R2 (x, y ) aparecen en otras dos restricciones. Si el conjunto VariablesNoResueltas est vaco, el CRRV ser un CCRRV (Conjunto Completo de Restricciones Relacionadas por Variables).
262
R2
x
y
R1
x
R3
x,y
y,z
R4
Algoritmo 1: Obtencin de CRRV de la Proyeccin Simblica para G Entrada: Q Salida: Lista listaCRRV
Lista Gi Lista listaCRRV := Lista() Lista G := ObtenerGrafosRestricciones(Q)
Dependiendo de la consulta Q, se obtendrn los conjuntos de restricciones G1 , . . . , Gn , donde cada Gi es una lista de Nodo-Restricciones, obtenido mediante la funcin Obten-
ObtenerCRRV(Lista Gi , Lista restProyeccin, Lista listaCRRV): Este procedimiento realizar un recorrido de las restricciones de Gi , comenzando por las restricciones pertenecientes a la lista restProyeccin. Cuando se comienza la bsqueda por un Nodo-
Restricciones, el algoritmo obtiene todos los CRRV con dicha restriccin. Para evitar que
263
al comenzar la bsqueda por otro Nodo-Restricciones con variables de la proyeccin, se vuelvan a encontrar dichos CRRV, dichas restricciones se almacenarn en restriccionesVis-
itadas. Para cada una de estas Estructuras-CRRV, se analizarn sus VariablesNoAnalizadas para unir aquellas restricciones que tengan variables en comn que no pertenezcan
a las variables de la proyeccin. La funcin ObtenerCRRV es la mostrada en el algoritmo 2.
Algoritmo 2: Funcin ObtenerCRRV Entrada: Lista Gi , Lista restProyeccin, Lista listaCRRV Salida: Lista listaCRRV
Estructura-CRRV crrv Lista restricionesVisitadas
264
Algoritmo 3: Procedimiento recorridoGrafoCRRV Entrada: Estructura-CRRV crrv, Lista listaCRRV, Lista restriccionesVisitadas Salida: Lista listaCRRV si crrv.variablesNoAnalizadas.esVaca() entonces si esMnimo(crrv) entonces
listaCRRV.aadir(crrv)
sino
Para v CRRV.VariablesNoAnalizadas
crrv.VariablesNoAnalizadas.borrar(v) crrv.VariablesAnalizadas.aadir(v)
Gi , restriccionesVisitadas)
//obtiene los Nodo-Restricciones de Gi que tengan a v , pero no estn ya //incluidos en crrv.RestCiclo ni restriccionesVisitadas
//evita obtener el mismo CRRV pero recorriendo las Estructura-CRRV copiaCrrv := crrv.clonar() copiaCrrv.aadir(rr) recorridoGrafoCRRV(copiaCrrv, listaCRRV, restriccionesVisitadas)
Ejemplo de Traza
265
{x}; VariablesNoResueltas: {}; restCiclo: {}}, RestriccionesVisitadas: R1 -R2 . Para x: {R3 , R4 } := ObtenerRestYVariables(. . ., x, . . .)
crrv:{Restricciones: R1 -R2 , R3 ; VariablesAnalizadas: {k, x}; VariablesNoAnalizadas: {y}; VariablesNoResueltas: {}; restCiclo: {R3 }}, RestriccionesVisitadas: R1 -R2 . Para y : {R6 , R7 } = ObtenerRestYVariables(. . ., y, . . .)
crrv:{Restricciones: R1 -R2 , R3 , R6 ; VariablesAnalizadas: {k, x, y}; VariablesNoAnalizadas: {z}; VariablesNoResueltas: {}; restCiclo: {R3 , R6 }}, RestriccionesVisitadas: R1 -R2 . Para y : {R4 , R5 } = ObtenerRestYVariables(. . ., z, . . .) crrv:{Restricciones: R1 -R2 , R3 , R6 , R4 ; VariablesAnalizadas: {k, x, y, z}; VariablesNoAnalizadas: {};VariablesNoResueltas: {}; restCiclo: {R3 , R6 , R4 }}, RestriccionesVisitadas: R1 -R2 . Como no quedan variables por analizar, {R1 -R2 , R3 , R6 , R4 } es un
CRRV, y como no tiene variablesNoResueltas tambin ser un CCRRV. crrv:{Restricciones: R1 -R2 , R3 , R6 , R5 ; VariablesAnalizadas: {k, x, y, z}; VariablesNoAnalizadas: {};VariablesNoResueltas: {}; restCiclo: {R3 , R6 , R4 , R5 }}, RestriccionesVisitadas: R1 -R2 . Como no quedan variables por analizar, {R1 -R2 , R3 , R6 , R5 } es un
crrv:{Restricciones: R1 -R2 , R3 , R7 ; VariablesAnalizadas: {k, x, y}; VariablesNoAnalizadas: {}; VariablesNoResueltas: {}; restCiclo: R3 , R6 , R7 }, RestriccionesVisitadas: R1 -R2 . Como no quedan variables por analizar, {R1 -R2 , R3 , R7 } es un CRRV, y como no tiene variablesNoResueltas tambin ser un CCRRV.
crrv:{Restricciones: R1 -R2 , R4 ; VariablesAnalizadas: {k, x}; VariablesNoAnalizadas: {z}; VariablesNoResueltas: {}; restCiclo: {R3 , R4 }}, RestriccionesVisitadas: R1 -R2 . Para z : {R5 , R6 } = ObtenerRestYVariables(. . ., z, . . .)
266
crrv:{Restricciones: R1 -R2 , R4 , R5 ; VariablesAnalizadas: {k, x, z}; VariablesNoAnalizadas: {};VariablesNoResueltas: {v4}; restCiclo: {R3 , R4 }}, RestriccionesVisitadas: R1 -R2 . Como no quedan variables por analizar, {R1 -R2 , R4 , R5 } es un CRRV, pero como tiene variables no resueltas, no es un CCRRV.
...
Ningn CRRV obtenido desde la inicializacin con R5 incluir al Nodo-Restricciones
R1 -R2 , ya que todos los CRRV con R1 -R2 se han obtenido con la primera inicializacin de la traza, y se ha incluido en RestriccionesVisitadas. Un ejemplo de cmo se va construyendo la Estructura-CRRV en los distintos pasos de la traza presentada, se muestra en la gura A.4 en forma de rbol. Los diferentes CRRV sern todos los posibles caminos desde la raz hasta las hojas de cada uno de dichos rboles.
267
R4
R6
y
z
R3
y
R5 R7
v1
R1,R2 R5
z
x
R4
z
R6
R7
R3
z
v4
...
R5
z
R4
...
Los estados a donde puede cambiar dependern de las variables no analizadas, de lo que se derivan cuatro tipos de transiciones:
268
1.
Si {vN A1 , vN A2 , . . . , vN Ak } = , la variable crrv formar un CRRV y ser aadido a listaCRRV: listaCRRV lcrrv1 , . . . , lcrrvr , crrv El recorrido continuar con otro CRRV derivado de la utilizacin de la recursividad.
2.
Si vN A1 slo est en una restriccin, ya aadida a crrv, lo que implica que (vN A1
3.
Si todas las restricciones que tienen a la variable vN A1 , son aquellas ya incluidas en el crrv, en las restriccionesVisitadas, o en las restriccionesCiclo ((
r Gi
| Variables(r)
El recorrido continuar con otro CRRV derivado de la utilizacin de la recursividad. 4. En el caso de que la variable no analizada vN A1 est en otras restricciones que no impliquen CRRV duplicados, para (
rGi
| Variables(r) vN A1 = ) (cr-
rv.restricciones restriccionesCiclo restriccionesVisitas) = {rr1 . . . rrt }), donde {rr1 . . . rrt } = , se construirn t CRRV, con las distintas restricciones {rr1 . . . rrt }, resueltos de forma recursiva con el procedimiento recorridoGrafoCRRV.
Estructura-CRRV (crrv): restricciones r1 , . . . , rn , rr1 VariablesAnalizadas {vA1 , . . . , vAm }
269
...
Estructura-CRRV (crrv): restricciones r1 , . . . , rn , rrt VariablesAnalizadas {vA1 , . . . , vAm } {rrt.V araiblesN oAnalizadas {vN A1 , . . . , vN Ak }} VariablesNoAnalizadas ({vN A1 , . . . , vN Ak }
A.5.2. Complejidad
Para cada Nodo-Restricciones con alguna variable de la consulta, se hace un recorrido del grafo en funcin de las variables no analizadas que tengan los Nodo-Restricciones. Lo que signica que los Nodo-Restricciones de cada Gi se recorrern como mucho m (n2 ), donde m es el nmero de Nodo-Restricciones con variables de la proyeccin, y n el nmero de Nodo-Restricciones del problema. Extendido para G {G1 , . . . , Gk } ser: m1 (n2 1) +
2 . . . + mi (n2 i ) + . . . + mk (nk ), donde mi ser el nmero de Nodo-Restricciones con
A.5.3. Completitud
En esta propiedad ser necesario demostrar que: partiendo de un conjunto de grafos
270
El algoritmo analiza cada uno de los {G1 , . . . , Gn } en funcin de la consulta. Como para cada Gi se comienza la bsqueda desde cada Nodo-Restricciones con una variable de la proyeccin, se obtendrn todos los CRRV para un Gi . Lo que queda por analizar es que inicializando una Estructura-CRRV con un Nodo-Restricciones (r1 ) que contenga una variable de la consulta, se obtendrn todos los crrv que contengan dicho Nodo-Restricciones. Si las restricciones {r1 , . . . , rn1 , rn } forman un crrv signica que la estructura con las restricciones {r1 , . . . , rn1 } no ser un crrv, y tendr al menos una variable no analizada en comn con rn . Esto signica que existir una transicin tipo 4 entre el crrv {r1 , . . . , rn1 } y {r1 , . . . , rn1 , rn } tal como se explic en la seccin anterior. Esta idea se puede extender a que si las restricciones {r1 , . . . , rn1 } forman parte de una Estructura-CRRV, signica que existe una variable no analizada en {r1 , . . . , rn2 } en comn con la restriccin rn1
. . . Hasta que nalmente la Estructura-CRRV contenga tan slo a {r1 }, que es un estado
inicial si {r1 } contienen a variables de la proyeccin. Que no se obtengan todos los CRRV con el algoritmo, signica que existe un CRRV que no pertenece a la listaCRRV (crrv / {lcrrv1 , . . . , lcrrvr }), donde crrv.restricciones
A.5.4. Correccin
Para demostrar que el algoritmo es correcto ser necesario demostrar que todas las Estructuras-CRRV aadidas a listaCRRV son CRRV, lo que tambin implica que sean mnimos y existan CRRV duplicados.
271
Variables(Q,{ci , . . ., cj }) =
Una Estructura-CRRV se almacenar en la listaCRRV si no le quedan variablesNoAnalizadas (Transicin 1). Para eliminar las variables de la lista de VariablesNoAnalizadas se pueden dar dos casos: que sea una variable no resuelta (Transicin 2), por lo que cumple la condicin de la denicin
que est en otra restriccin (Transicin 4), por lo que cumple la condicin de la denicin (v Variables(Gi '{ck }). Si no existe ninguna restriccin que no est incluida ya en ret-
{r1 , . . . , ri1 , ri , ri+1 , . . . , rn }: ri {r1 , . . . , ri1 , ri , ri+1 , . . . , rn } | {r1 , . . . , ri1 , ri+1 , . . . , rn } es un CRRV.
Si {r1 , . . . , ri1 , ri+1 , . . . , rn } cumple la denicin de CRRV, signica que todas las variables que no sean de la proyeccin y que estn en ms de una restriccin de Gi , estn al menos en dos restricciones del CRRV. Por lo que el conjunto de restricciones
272
ocurrir: ri y rj tienen una relacin OR con ri1 , por lo que por la Transicin 4, se incluira
B.1.
El caso de estudio de la diagnosis basada en modelos utiliza un conjunto de componentes distribuidos en cuatro subsistemas. Las restricciones concretas se muestran en las guras: B.1, B.2, B.3 y B.4.
B.2.
Lo primero para poder hacer consultas sobre un conjunto de restricciones de una Base de Datos de Restricciones, ser obtener y almacenar dichas restricciones. En esta tesis se ha desarrollado e implementado una aplicacin que ayuda a la captura de puntos de
274
Figura B.2: Contenido de la tabla Componentes para el subsistema 2 un mapa con el objetivo de obtener las restricciones y almacenarlas en la Base de Datos de Restricciones, cuya interfaz se muestra en la gura B.5. Dicha aplicacin utiliza el mtodo de Lagrange para la aproximacin mediante polinomios a un conjunto de puntos, dicho mtodo utiliza la interpolacin mediante mnimos cuadrados [54][7]. La utilizacin de polinomios tambin conlleva una aproximacin de la realizada, pero que se acerca ms a la realidad que si slo se utilizan rectas, a la vez que necesita menos restricciones para aproximar una supercie curva.
275
276
5.
Si la zona a representar tiene que estar representada por varias restricciones, con una relacin conjuntiva, se continan aadiendo restricciones manteniendo el nombre. En caso contrario, se utiliza el botn Clear para comenzar con una nueva restriccin.
La aplicacin tambin muestra el coeciente de determinacin que se est utilizando, y el valor residual de la suma de los cuadrados de la aproximacin. Cuando una restriccin se almacena en la base de datos tambin se almacenan las envolventes para cada una de las variables, que son directamente obtenidos de los puntos aadidos por el usuario.
277
(gura B.10). En la gura B.8 se muestran las envolventes de las variables x e y para las distintas restricciones de la tabla Residenciales, informacin que se almacena en la tabla Restricciones/Variables. En realidad, no se utiliza el nombre de la variable, sino su identicador almacenado en la tabla Variables, pero en esta gura se utiliza el nombre de las variables para facilitar su entendimiento.
279
280
Bibliografa
[1] J. M. Almendros-Jimnez, A. Becerra-Tern, A Safe Relational Calculus for Functional Logic Deductive Databases, Electronic Notes on Theoretical Computer Science 86 (3). [2] W. G. Aref, H. Samet, Extending a DBMS with Spatial Operations, in: SSD '91: Proceedings of the Second International Symposium on Advances in Spatial Databases, Springer-Verlag, London, UK, 1991. [3] M. P. Atkinson, F. Bancilhon, D. J. DeWitt, K. R. Dittrich, D. Maier, S. B. Zdonik, The Object-Oriented Database System Manifesto., in: the First International Conference on Deductive and Object-Oriented Databases, 1989. [4] F. Bancilhon, S. Khoshaan, A Calculus for Complex Objects., in: PODS, 1986. [5] S. Basu, Algorithms in semi-algebraic geometry, ph D thesis (1996). [6] S. Basu, R. Dhandapani, R. Pollack, On the Realizable Weaving Patterns of Polynomial Curves in R3, in: Symposium on Graph Drawing, vol. 3383 of Lecture Notes in Computer Science, Springer, 2004. [7] B. Beckermann, E. Sa, the sensitivity of least squares polynomial approximation (1998). [8] N. Beckmann, H.-P. Kriegel, R. Schneider, B. Seeger, The R*-Tree: An Ecient and Robust Access Method for Points and Rectangles., in: SIGMOD Conference, 1990. [9] A. Belussi, E. Bertino, B. Catania, Manipulating Spatial Data in Constraint Databases, in: M. Scholl, A. Voisard (eds.), Proceedings of the 5th International Symposium on Large Spatial Databases (SSD), vol. 1262, Springer-Verlag, 1997.
282
BIBLIOGRAFA
[10] A. Belussi, E. Bertino, B. Catania, An Extended Algebra for Constraint Databases, Knowledge and Data Engineering 10 (5) (1998) 686705. [11] F. Benhamou, L. Granvilliers, Continuous and interval constraints, in: F. Rossi, P. van Beek, T. Walsh (eds.), Handbook of Constraint Programming, Foundations of Articial Intelligence, chap. 16, Elsevier Science Publishers, Amsterdam, The Netherlands, 2006. [12] F. Benhamou, P. V. Hentenryck, Introduction to the Special Issue on Interval Constraints., Constraints 2 (2) (1997) 107112. [13] M. Berler, J. Eastman, D. Jordan, C. Russell, O. Schadow, T. Stanienda, F. Velez, The object data standard: ODMG 3.0, Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2000. [14] C. Bessire, J.-C. Rgin, Arc Consistency for General Constraint Networks: Preliminary Results., in: IJCAI (1), 1997. [15] J. Bitner, E. M. Reingold, Backtracking programming techniques, Comm of the ACM 18 (11) (1975) 651656. [16] R. E. Bixby, E. A. Boyd, R. Z. Ros-Mercado (eds.), Integer Programming and Combinatorial Optimization, 6th International IPCO Conference, Houston, Texas, USA, June 22-24, 1998, Proceedings, vol. 1412 of Lecture Notes in Computer Science, Springer, 1998 (1998). [17] A. Brodsky, V. S. andJ. Chen, P. Exarkhopoulo, The CCUBE Constraint ObjectOriented Database System, International Conference on Management of Data Procceding, Philadelphia (1999) 577579. [18] A. Brodsky, Y. Kornatzky, The Lyli c language: Querying constraint object, In Int.
BIBLIOGRAFA
283
[21] A. Brodsky, X. S. Wan, On approximation-based query evaluation, expensive predicates and constraint objects, in: ILPS95 Workshop on Constraints, Databases and Logic Programming, Portland, 1995. [22] C. W. Brown, Improved projection for Cylindrical Algebraic Decomposition, J. Symb. Comput. 32 (5) (2001) 447465. [23] B. Buchberger, Grbner bases: An algorithmic method in polynomial ideal theory, Multidimensional Systems Theory, N. K. Bose, ed. (1985) 184232. [24] J.-H. Byon, P. Z. Revesz, DISCO: A Constraint Database System with Sets., in: CDB, 1995. [25] Y. Caseau, P.-Y. Guillo, E. Levenez, A Deductive and Object-Oriented Approach to a Complex Scheduling Problem, Springer, Berlin, Heidelberg, 1993. [26] R. G. G. Cattell, The Object Database Standard: ODMG-93 (Release 1.1), Morgan Kaufmann, 1994. [27] B. Caviness, J. e. Johnson, Quantier Elimination and Cylindrical Algebraic Decomposition, Springer-Verlag. [28] S. Ceri, G. Gottlob, L. Tanca, What you always wanted to know about Datalog (and never dared to ask), vol. 1, IEEE Educational Activities Department, Piscataway, NJ, USA, 1989. [29] L. Chang, A. K. Mackworth, Local Consistency in Junction Graphs for ConstraintBased Inference., in: AAAI, 2006. [30] J. Chomicki, D. Q. Goldin, G. M. Kuper, D. Toman, Variable Independence in Constraint Databases., IEEE Trans. Knowl. Data Eng. 15 (6) (2003) 14221436. [31] J. Chomicki, J. Marcinkowski, On the Computational Complexity of Consistent Query Answers, CoRR cs.DB/0204010. [32] E. F. Codd, A Relational Model of Data for Large Shared Data Banks, Commun. ACM 13 (6) (1970) 377387. [33] E. F. Codd, Relational database: a practical foundation for productivity, Commun. ACM 25 (2) (1982) 109117.
284
BIBLIOGRAFA
[34] J. Cohen, Constraint Logic Programming Languages., Commun. ACM 33 (7) (1990) 5268. [35] G. E. Collins, J. R. Johnson, W. Krandick, Interval arithmetic in Cylindrical Algebraic Decomposition, Journal of Symbolic Computation 34 (2) (2002) 145157. [36] R. M. Colomb, Deductive Databases and Their Applications, Taylor & Francis, Inc., Bristol, PA, USA, 1998. [37] A. Croker, V. Dhar, A Knowledge Representation for Constraint Satisfaction Problems, IEEE Trans. Knowl. Data Eng. 5 (5) (1993) 740752. [38] P. Dasgupta, P. P. Chakrabarti, A. Dey, S. Ghose, W. Bibel, Solving Constraint Optimization Problems from CLP-Style Specications Using Heuristic Search Techniques, IEEE Transactions on Knowledge and Data Engineering 14 (2) (2002) 353 368. [39] J. Davenport, J. Heintz, Real Quantier Elimination Is Doubly Exponential, J. Symb. Comput, 5 (1988) 2935. [40] R. Davis, Diagnostic reasoning based on structure and behavior, In Articial Intelligence 24 (1984) 347410. [41] M. G. de la Banda, P. J. Stuckey, J. Wazny, Finding all minimal unsatisable subsets, in: PPDP '03: Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming, ACM Press, 2003. [42] R. Dechter, Constraint Processing (The Morgan Kaufmann Series in Articial Intelligence), Morgan Kaufmann, 2003. [43] R. Dechter, I. Meiri, Experimental evaluation of preprocessing algorithms for constraint satisfaction problems, Artif. Intell. 68 (2) (1994) 211241. [44] J. V. den Bussche, onstraint Databases, Queries, and Query Languages", Constraint Databases, G. Kuper and L. Libkin and J. Paredaes, Springer, 2000. [45] R. S. Devarakonda, Object-Relational Database Systems - The Road Ahead, ACM Electronic Magazine (Agosto).
BIBLIOGRAFA
285
[46] F. Dumortier, M. Gyssens, L. Vandeurzen, D. V. Gucht, On the Decidability of Semi-Linearity of Semi-Algebraic Sets and its Implications for Spatial Databases, in: Proceedings of the Sixteenth ACM SIGACT-SIGMOD-SIGART Symposium on Principles of Database Systems, May 12-14, 1997, Tucson, Arizona, ACM Press, 1997. [47] R. Fagin, Normal forms and relational database operators, in: SIGMOD '79: Proceedings of the 1979 ACM SIGMOD international conference on Management of data, ACM Press, New York, NY, USA, 1979. [48] J. Faugre, A new ecient algorithm for computing Grbner bases without reduction to zero (f5), ACM Press, New York, NY, USA, 2002. [49] J.-C. Faug`ere, A new ecient algorithm for computing grbner bases (f4 ), Journal of Pure and Applied Algebra 139 (1-3) (1999) 6188. [50] L. Fergaras, D. Maier, Towards an eective calculus for object query processing, In Proc ACM SIGMOD Conf. on Management of Data, 1995. [51] R. Finkelstein, Is your database relational? Part 2 of Dr. Codd's rules for relational databases, Data Based Advis. 5 (6) (1987) 6668. [52] P. Flener, B. Hnich, Z. Kiziltan, A meta-heuristic for subset problems, in: PADL '01: Proceedings of the Third International Symposium on Practical Aspects of Declarative Languages, Springer-Verlag, London, UK, 2001. [53] E. C. Freuder, A sucient condition for backtrack-free search, J. ACM 29 (1) (1982) 2432. [54] E. Fuchs, K. Donner, Fast Least-Squares Polynomial Approximation in Moving Time Windows, in: ICASSP '97: Proceedings of the 1997 IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP '97)-Volume 3, IEEE Computer Society, Washington, DC, USA, 1997. [55] R. Gasca, C. D. Valle, R. Ceballos, M. Toro, An Integration of FDI and DX approaches to polinomial models, 14th International Workshop on principles of Diagnosis - DX.
286
BIBLIOGRAFA
[56] R. M. Gasca, J. A. Ortega, M. Toro, A framework for semiqualitative reasoning in engineering applications., Applied Articial Intelligence 16 (3) (2002) 173197. [57] F. Geerts, B. Kuijpers, On the decidability of termination of query evaluation in transitive-closure logics for polynomial constraint databases., Theor. Comput. Sci. 336 (1) (2005) 125151. [58] D. Goldin, P. Kanellakis, Constraint Query Algebras Constraints, Journal E. Freuder editor. [59] D. Goldin, A. Kutlu, M. Song, Extending the Constraint Database framework, in: PCK50: Proceedings of the Paris C. Kanellakis memorial workshop on Principles of computing & knowledge, ACM Press, New York, NY, USA, 2003. [60] D. Q. Goldin, Taking Constraints out of Constraint Databases., in: Constraint DataBases, vol. 3074 of Lecture Notes in Computer Science, Springer, 2004. [61] D. Q. Goldin, A. Kutlu, M. Song, F. Yang, The Constraint Database Framework: Lessons Learned from CQA/CDB., in: ICDE, 2003. [62] S. W. Golomb, L. D. Baumert, Backtrack programming., J. ACM 12 (4) (1965) 516524. [63] J. C. Gonzlez-Moreno, M. T. Hortal-Gonzlez, M. Rodrguez-Artalejo, Semantics and Types in Functional Logic Programming., in: Fuji International Symposium on Functional and Logic Programming, 1999. [64] L. Granvilliers, F. Goualard, F. Benhamou, Box Consistency through Weak Box Consistency, in: ICTAI '99: Proceedings of the 11th IEEE International Conference on Tools with Articial Intelligence, IEEE Computer Society, Washington, DC, USA, 1999. [65] R. Greiner, B. A. Smith, R. W. Wilkerson, A correction to the algorithm in Reiter's theory of diagnosis, Articial Intelligence 41 (1) (1989) 7988. [66] R. Gross, R. W. Marti, DeCor a Deductive Constraint Database System., in: WLP, 1994. [67] R. Gross, R. W. Marti, Managing Temporal Knowledge using a Deductive Constraint Database System., in: BTW, 1995.
BIBLIOGRAFA
287
[68] R. Gross-Brunschwiler, Implementation of Constraint Database Systems Using a Commpiler-Time Rewrite Approach, Ph.D. thesis, Swis Federal Institute of Technology , Zrich (May 1996). [69] S. Grumbach, P. Rigaux, M. Scholl, L. Segoun, DEDALE, A Spatial Constraint Database., in: Workshop on Database Programming Languages, 1997. [70] S. Grumbach, P. Rigaux, L. Segoun, The DEDALE System for Complex Spatial Queries., in: SIGMOD Conference, 1998. [71] M. Hadjieleftheriou, G. Kollios, P. Bakalov, V. J. Tsotras, Complex Spatio-Temporal Pattern Queries., in: VLDB, 2005. [72] A. Y. Halevy, I. S. Mumick, Y. Sagiv, O. Shmueli, Static analysis in Datalog extensions, J. ACM 48 (5) (2001) 9711012. [73] J. Han, Constraint-Based Query Evaluation in Deductive Databases, Knowledge and Data Engineering 6 (1) (1994) 96107. [74] J. Han, Y. Fu, W. Wang, K. Koperski, O. Zaiane, Dmql: A data mining query language for relational databases, in: Proc.oftheSIG-MOD'96 DKMD Workshop, 1996. [75] W. Hodges, Some Strange Quantiers., in: Structures in Logic and Computer Science, 1997. [76] X. Huang, A General Extension of Constraint Propagation for Constraint Optimization., in: CP, 2004. [77] T. Hulubei, B. O'Sullivan, Search Heuristics and Heavy-Tailed Behaviour., in: CP, 2005. [78] ILOG, Jsolver 2.1, Reference Manual April. [79] Ilog, Inc., Solver CPLEX, http://www.ilog.fr/products/cplex/. [80] R. Isermann, Supervision, fault-detection and fault-diagnosis methods an introduction, Control Engineering Practice 5 (1997) 639652. [81] J. Jaar, J.-L. Lassez, Constraint Logic Programming., in: POPL, 1987.
288
BIBLIOGRAFA
[82] J. Jaar, M. J. Maher, Constraint Logic Programming: A Survey., J. Log. Program. 19/20 (1994) 503581. [83] P. W. P. Jr., Search rearrangement backtracking and polynomial average time., Artif. Intell. 21 (1-2) (1983) 117133. [84] P. C. Kanellakis, G. M. Kuper, P. Revesz, Constraint Query Languages, Symposium on Principles of Database Systems (1990) 299313. [85] K. Kask, New Search Heuristics for Max-CSP, in: Principles and Practice of Constraint Programming, 2000. [86] S. Khoshaan, R. Abnous, Object-Orientation: Concepts, Languages, Databases, User Interfaces, John Wiley & Sons, New Jersey, 1990. [87] M. Kifer, W. Kim, Y. Sagiv, Querying Object-Oriented Databases., in: SIGMOD Conference, 1992. [88] J. D. Kleer, An Assumption-based Truth Maintenance System, Articial Intelligence 28 2 (1986) 127161. [89] J. D. Kleer, A. Mackworth, R. Reiter, Characterizing diagnoses and systems, Articial Intelligence 56 2-3 (1992) 197222. [90] J. D. Kleer, B. Williams, Diagnosing multiple faults, Art. Int. [91] M. Koubarakis, S. Skiadopoulos, Tractable Query Answering in Indenite Constraint Databases: Basic Results and Applications to Querying Spatiotemporal Information, in: Spatio-Temporal Database Management, 1999. [92] T. Kudrass, M. Conrad, Management of XML Documents in Object-Relational Databases., in: EDBT Workshops, 2002. [93] G. Kuper, L. Libkin, J. Paredaes, Constraint Databases, Springer, 1998. [94] G. Kuper, L. Libkin, J. Paredaes, "Introduction", Constraint Databases, G. Kuper and L. Libkin and J. Paredaes, Springer, 2000. [95] G. Kuper, L. Libkin, J. Paredaes, "The DISCO SYSTEM", Constraint Databases, G. Kuper and L. Libkin and J. Paredaes, Springer, 2000.
BIBLIOGRAFA
289
[96] H.-J. Lee, S.-W. Lee, H.-J. Kim, Design and implementation of an extended relationship semantics in an ODMG-compliant OODBMS, J. Syst. Softw. 76 (2) (2005) 171180. [97] C. K.-S. Leung, Dynamic FP-Tree Based Mining of Frequent Patterns Satisfying Succinct Constraints., in: CDB, 2004. [98] L. Libkin, Variable independence for rst-order denable constraints, ACM Trans. Comput. Logic 4 (4) (2003) 431451. [99] A. Lomonosov, Graph and combinatorial algorithms for geometric constraint solving, Ph.D. thesis, chair-Meera Sitharam (2004). [100] S. Lucas, Context-sensitive Computations in Functional and Functional Logic Programs., Journal of Functional and Logic Programming 1998 (1). [101] A. Macintyre, K. McKenna, L. van den Dries, Elimination of quantiers in algebraic structures, Adv. Math. 47 (1) (1983) 7487. [102] A. K. Mackworth, Consistency in networks of relations., Artif. Intell. 8 (1) (1977) 99118. [103] A. K. Mackworth, E. C. Freuder, The Complexity of Constraint Satisfaction Revisited, Articial Intelligence 59 (1-2) (1993) 5762. [104] D. Maier, J. B. Cushing, Treating Programs as Objects: The Computational Proxy Experience, Springer, Berlin, Heidelberg, 1993. [105] G. Maps, http://maps.google.es/maps (2007). [106] E. Marcos, B. Vela, J. M. Cavero, A methodological approach for Object-Relational Database design using uml., Inform., Forsch. Entwickl. 18 (3-4) (2004) 152164. [107] K. Marriott, P. J. Stuckey, "Programming with Constraints. An introduction", Simplication, Optimization and Implication, The Mitt Press, 1998. [108] J. L. Martin, V. Reiner, Factorizations of some weighted spanning tree enumerators, Journal of Combinatorial Theory, Series A 104 (2) (2003) 287300.
290
BIBLIOGRAFA
[109] E. Mayol, E. Teniente, Consistency preserving updates in Deductive Databases, vol. 47, Elsevier Science Publishers B. V., Amsterdam, The Netherlands, The Netherlands, 2003. [110] S. McCallum, Solving Polynomial Strict Inequalities using Cylindrical Algebraic Decomposition., Comput. J. 36 (5) (1993) 432438. [111] U. Montanari, Networks of constraints: Fundamental properties and applications to picture processing., Inf. Sci. 7 (1974) 95132. [112] B. A. Nadel, Tree search and ARC consistency in constraint satisfaction algorithms, Springer-Verlag (1988) 287342. [113] B. A. Nadel, Constraint satisfaction algorithms, Comput. Intell. 5 (4) (1990) 188 224. [114] S.ieva, F. Senz-Prez, J. Snchez, Towards a Constraint Deductive Database Language based on Hereditary Harrop Formulas, in: P. Lucio, F. Orejas (eds.), Sextas Jornadas de Programacin y Lenguajes, PROLE, 2006. [115] M.yberg, M. Krysander, Combining AI, FDI, and statistical hypothesis-testing in a framework for diagnosis, in: Proceedings of IFAC Safeprocess'03, Washington, USA, 2003. [116] A. Oliv, Integrity Constraints Checking In Deductive Databases, in: G. M. Lohman, A. Sernadas, R. Camps (eds.), 17th International Conference on Very Large Data Bases, September 3-6, 1991, Barcelona, Catalonia, Spain, Proceedings, Morgan Kaufmann, 1991. [117] E. Oomoto, M. Kamitani, T. Takamatsu, Path existence constraints in ObjectOriented Databases (2000) 4558. [118] B. O'Sullivan, P. van Beek, Introduction to the Special Issue on Principles and Practice of Constraint Programming (cp 2005)., Constraints 11 (2-3) (2006) 8384. [119] E. Pardede, J. W. Rahayu, D. Taniar, On using collection for aggregation and association relationships in XML object-relational storage, in: SAC '04: Proceedings of the 2004 ACM symposium on Applied computing, ACM Press, New York, NY, USA, 2004.
BIBLIOGRAFA
291
[120] K. Parsaye, M. Chignell, Intelligent database tools & applications, John Wiley & Sons, Inc., New York, NY, USA, 1993. [121] S. Prestwich, Stochastic local search in constrained spaces (2000) 2739. [122] S. Prestwich, Local Search and Backtracking vs Non-Systematic Backtracking Technical Report FS-01-04 (2001) 109115. [123] B. Pulido, C. Alonso, Possible conicts, ARRs, and conicts (2002). [124] V. Ramanathan, P. Z. Revesz, Constraint Database Solutions to the Genome Map Assembly Problem., in: Constraint DataBases, vol. 3074 of Lecture Notes in Computer Science, Springer, 2004. [125] S. Rasetic, J. Sander, J. Elding, M. A. Nascimento, A Trajectory Splitting Model for Ecient Spatio-Temporal Indexing., in: VLDB, 2005. [126] S. Ratschan, Approximate quantied constraint solving by cylindrical box decomposition (2002). [127] R. Reiter, A theory of diagnosis from rst principles, Articial Intelligence 32 1 (1987) 5796. [128] W. Research, Mathematica 5, Reference Manual April. [129] P. Revesz, Datalog and Constraints, Constraint Databases (2000) 155170. [130] P. Revesz, Introduction to Constraint Databases, Springer, 2001. [131] P. Z. Revesz, Problem Solving in the DISCO Constraint Database System, in: V. Gaede, A. Brodsky, O. Gunter, D. Srivastava, V. Vianu, M. Wallace (eds.), Proceedings of the 2nd Workshop on Constraint Databases and Applications, vol. 1191, Springer-Verlag, 1997. [132] P. Z. Revesz, MLPQ/PReSTO User Manual, http:// www.cse.unl.edu/
revesz/MLPQ/mlpq.htm.
[133] P. Z. Revesz, R. Chen, P. Kanjamala, Y. Li, Y. Liu, Y. Wang, The MLPQ/GIS Constraint Database System, in: Proceedings of the 2000 ACM SIGMOD International Conference on Management of Data, May 16-18, 2000, Dallas, Texas, USA, ACM, 2000.
292
BIBLIOGRAFA
[134] P. Rigaux, M. Scholl, L. Segoun, S. Grumbach, Building a constraint-based spatial database system: model, languages, and implementation., Inf. Syst. 28 (6) (2003) 563595. [135] O. W. Salomons, F. van Slooten, F. J. A. M. van Houten, H. J. J. Kals, Conceptual graphs in constraint based re-design, in: SMA '95: Proceedings of the third ACM symposium on Solid modeling and applications, ACM Press, New York, NY, USA, 1995. [136] S. Sarawagi, S. Thomas, R. Agrawal, Integrating Association Rule Mining with Relational Database Systems: Alternatives and Implications, Data Min. Knowl. Discov. 4 (2-3) (2000) 89125. [137] R. Selje, A new method for integrity constraint checking in Deductive Databases, Data Knowl. Eng. 15 (1) (1995) 63102. [138] F. G. Sener, New Module for Damage Probabilistic Calculations with ecient user interface and including the latest classication society rules, internal Report (2005). [139] M. Shakeri, Implementation of an automated operation planning and optimum operation sequencing and tool selection algorithms, Comput. Ind. 54 (3) (2004) 223236. [140] A. Soer, H. Samet, Two data organizations for Storing Symbolic Images in a Relational Database System, in: DS-8: Proceedings of the IFIP TC2/WG2.6 Eighth Working Conference on Database Semantics- Semantic Issues in Multimedia Systems, Kluwer, B.V., Deventer, The Netherlands, The Netherlands, 1998. [141] M. Spivey, An introduction to logic programming through Prolog, Prentice-Hall, Inc., Upper Saddle River, NJ, USA, 1996. [142] M. Staroswiecki, P. Declerk., Analytical redundancy in non linear interconnected systems by means of structural analysis., in: IFAC Advanced Information Processing in Automatic Control (AIPAC-89), Nancy, France, 1989. [143] M. Stonebraker, D. Moore, P. Brown, Object-Relational DBMSs: Tracking the Next Great Wave, Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 1998. [144] A. W. Strzebonski, Cylindrical Algebraic Decomposition using validated numerics, Journal of Symbolic Computation 49 (9) (2006) 10211038.
BIBLIOGRAFA
293
[145] T. Sturm, Reasoning over Networks by Symbolic Methods, Applicable Algebra in Engineering, Communication and Computing 10 (1) (1999) 7996. [146] V. Telerman, Using Constraint Solvers in CAD/CAM Systems, in: PSI '02: Revised Papers from the 4th International Andrei Ershov Memorial Conference on Perspectives of System Informatics, Springer-Verlag, London, UK, 2001. [147] D. Toman, Constraint Databases and Program Analysis Using Abstract Interpretation, in: Constraint Databases and Applications, 1997. [148] E. Tsang, J. Borrett, A. Kwan, An attempt to map the performance of a range of algorithm and heuristic combinations (1995). [149] J. Ullman, Assigning an appropriate meaning to database logic with negation (1994). [150] P. Veltri, Constraint database query evaluation with approximation, in: ITCC '01: Proceedings of the International Conference on Information Technology: Coding and Computing, IEEE Computer Society, Washington, DC, USA, 2001. [151] R. Wallace, Factor Analytic Studies of CSP Heuristics., in: CP, 2005. [152] V. Weispfenning, Aspects of quantier elimination in algebra, in: Universal algebra and its links with logic, algebra, combinatorics and computer science, vol. 4 of R & E Res. Exp. Math., Heldermann, Berlin, 1984. [153] V. Weispfenning, The complexity of linear problems in elds, Journal of Symbolic Computation (1988) 3 27. [154] P. T. Whelan, CAD/CAM database management system requirements for mechanical parts, ph D thesis (1989). [155] F. Wotawa, A variant of reiter's hitting-set algorithm., Inf. Process. Lett. 79 (1) (2001) 4551. [156] S. B. Zdonik, D. Maier (eds.), Readings in Object-Oriented Database Systems, Morgan Kaufmann, 1990.