Extensiones de bases de datos relacionales y deductivas: fundamentos teóricos e implementación

En esta tesis hacemos contribuciones dentro del campo de las bases de datos. Nos hemos propuesto tres objetivos fundamentales: - Mejorar la expresividad de los lenguajes de bases de datos actuales. - Desarrollar semanticas formales para nuestras propuestas de lenguajes de bases de datos extendidos. - Llevar a cabo la implementacion de las semanticas anteriores en sistemas practicos. Hemos conseguido estos objetivos en dos areas. Por un lado, en el campo de las bases de datos deductivas, proponemos HHn(C). Este lenguaje extiende las capacidades de los lenguajes de bases de datos deductivas con restricciones dado que permite consultas hipoteticas y cuantificacion universal. Por otro lado, utilizamos el estudio dentro de las bases de datos deductivas y lo aplicamos a las bases de datos relacionales. En concreto proponemos HR-SQL que incorpora consultas hipoteticas y definiciones recursivas no lineales y mutuamente recursivas. La idea tras esta propuesta es superar algunas limitaciones expresivas del lenguaje estandar de definicion de bases de datos SQL. A continuacion introducimos ambas aproximaciones. El esquema HH(C) se ha usado como base para lenguajes de programacion logica con restricciones. Al igual que la programacion logica da soporte a lenguajes de bases de datos deductivas como Datalog con restricciones, este marco se usa como base para un sistema de bases de datos deductivas que mejora la expresividad de los sistemas aparecidos. En el segundo capitulo de esta tesis se muestran los resultados teoricos que fundamentan el lenguaje HHn(C) y una implementacion concreta de este que demuestra su viabilidad y expresividad. Las principales aportaciones son la incorporacion de la implicacion intuicionista, que permite formular hipotesis, y el uso de cuantificadores incluso en el lenguaje de restricciones. El sistema esta disenado de forma que soporta diferentes sistemas de restricciones. La implementacion incluye varios dominios concretos y tambien funciones de agregacion y restricciones de integridad. El significado del lenguaje se define mediante una semantica de pruebas y el mecanismo operacional se define mediante una semantica de punto fijo que es correcta y completa con respecto a la primera. Para el computo de las consultas hipoteticas y de las funciones de agregacion se hace uso de una nocion de estratificacion mas compleja que la que usa Datalog. La semantica de punto fijo desarrollada constituye un marco apropiado que lleva a la implementacion de un sistema concreto. SQL es el lenguaje estandar de definicion y consulta de bases de datos relacionales. Se trata de un lenguaje declarativo que carecia de recursion en sus origenes. Sin embargo, hoy en dia los lenguajes de bases de datos basados en SQL soportan la recursion de forma parcial imponiendo algunas restricciones como la linealidad de las definiciones recursivas y no permitiendo la recursion mutua. Ademas estas extensiones no estan integradas en las semanticas disponibles para SQL. En el tercer capitulo de esta memoria proponemos el lenguaje y el sistema R-SQL. Esta aproximacion supera las limitaciones de definiciones recursivas del estandar. Hemos dotado al lenguaje inicial de un lenguaje de definicion de vistas y de un lenguaje de consulta propios que permiten razonamiento hipotetico, con lo que surge el lenguaje HR-SQL Este segundo lenguaje mejora R-SQL en dos aspectos. En primer lugar, incorpora hipotesis en vistas y consultas permitiendo razonamiento hipotetico con suposiciones positivas y negativas. El fundamento semantico de HR-SQL esta inspirado en la investigacion para HHn(C). Por otro lado, se ha llevado a cabo una mejora de la eficiencia del calculo del punto fijo en el sistema que se presenta como una capa superior sobre los sistemas de bases de datos relacionales existentes. Finalmente, presentamos los resultados de una comparativa de la eficiencia del sistema con otros sistemas actuales.