Marco de los SGBD Profesor: Fernando Sáenz Pérez 1 Marco de los sistemas de gestión de bases de datos 1.1.1 Conceptos Antes de pasar a estudiar la evolución, el estado actual y las previsiones de futuro de los sistemas de gestión de bases de datos es necesario introducir algunos conceptos básicos que se utilizarán a lo largo de los apartados posteriores. Un sistema de gestión de bases de datos (SGBD) consiste en una colección de datos interrelacionados y un conjunto de programas para gestionar dichos datos. La colección de datos, normalmente denominada base de datos, contiene información de la parte del mundo que se modela. Las bases de datos están soportadas en el sistema informático por archivos, colecciones de datos persistentes. Comprender el verdadero alcance de los SGBDs escapa de la (pobre) definición anterior, siendo objeto la asignatura proporcionar un entendimiento suficientemente profundo de la materia. 1.1.2 Importancia de los sistemas de gestión de bases de datos Las bases de datos han aparecido para dar soporte a la (valiosa) información de empresas y organizaciones, y se han manifestado aún más relevantes en la así llamada sociedad de la información. Existen múltiples ámbitos de aplicación de las bases de datos: banca, líneas aéreas, telecomunicaciones, finanzas, ventas, producción, recursos humanos y un sinnúmero de otras aplicaciones. Las bases de datos forman parte esencial de casi todas las empresas actuales. Los logros conseguidos en sistemas de gestión de bases de datos sirven de soporte a avances fundamentales en sistemas de comunicaciones, transporte y logística, gestión financiera, sistemas basados en el conoci- 1 Marco de los SGBD Profesor: Fernando Sáenz Pérez miento, accesibilidad a fuentes de información y un gran número de aplicaciones civiles y militares. Sirven también como las bases para el considerable progreso en ciencia básica en varios campos que van de la Informática a la Biología. El campo de la investigación y desarrollo de sistemas de gestión de bases de datos ha tenido un gran éxito en sus más de 30 años de historia. La industria de bases de datos generó en Estados Unidos (el país con más influencia en el desarrollo de sistemas de gestión de bases de datos) 10.000 millones de dólares en 1997 [SZ97], y ha crecido a un ritmo del 35% anual [Gray97]. Es, después de la industria de sistemas operativos, el área más productiva en el mercado informático. No sería posible gestionar la cantidad de información crítica que almacenan las empresas sin el soporte de los sistemas de gestión de bases de datos. Es conocida la gran influencia de World Wide Web actualmente desde su revolución a finales de la última década del siglo pasado. En muchas empresas cambiaron sus conexiones directas mediante modem o radioenlace a interfaces Web con la infraestructura de líneas RDSI o teléfono. El impacto de la comunicación a través de la red ha influenciado el uso de sistemas de gestión de bases de datos con capacidades Web añadidas. En cualquier caso, los servidores Web que necesitan información persistente relacionada y cambiante siempre están en conexión con un servidor de bases de datos subyacente. La importancia de los sistemas de gestión de bases de datos se puede valorar desde otro punto de vista: actualmente, los desarrolladores de sistemas de gestión de bases de datos como Oracle se encuentran entre las empresas informáticas de mayor facturación en el mundo y los sistemas de gestión de bases de datos forman una parte fundamental de la línea de productos de muchas empresas de la envergadura de Microsoft e IBM. Hay otros ejemplos que se benefician de las técnicas de almacenamiento de datos, aunque normalmente no hacen uso intensivo de los productos de bases de datos. Los sistemas de información personal como el PC puede beneficiarse en gran medida. El correo electrónico es de gran valor para los usuarios, pero actualmente los mensajes se almacenan en un sistema de archivos. Sería muy útil conseguir capacidades de los sistemas de gestión de bases de datos como la indexación y la consulta para recuperar información del correo. Agregar estas capacidades a este ejemplo como a otros, como las hojas de cálculo y los documentos, supondría un gran valor añadido a la gestión de información en los sistemas personales. Finalmente, se ha reconocido la materia de las bases de datos como uno de los cursos más importantes en el curriculum de Informática tanto de España como de países extranjeros [AI01], que trata aspectos críticos en casi todas las áreas en las que se usan computadores. En España se ha demostrado la inquietud tanto sobre la docencia como la investigación en bases de datos, como lo demuestra la serie de congresos nacionales sobre in- 2 Marco de los SGBD Profesor: Fernando Sáenz Pérez vestigación y docencia en bases de datos (JIDBD, serie de jornadas sobre investigación y docencia en bases de datos desde 1996 hasta 1998, y su continuación JISBD, serie de jornadas de ingeniería del software y bases de datos iniciada en 1999, y JENUI, jornadas de enseñanza universitaria, desde 1995). Existen diversos congresos internacionales dedicados a los diferentes aspectos sobre las bases de datos, como se listan a continuación (por orden alfabético). A su vez, estos congresos generan un gran número de workshop asociados. • Active and Real-Time Database Systems (ARTDB, bianual, desde 1995). • Advances in Databases and Information Systems (ADBIS, desde 1993). • Applications of Natural Language to Data Bases (NLDB, desde 1995). • Database and Expert Systems Applications (DEXA, desde 1990). • Database Programming Languages (DBPL, congreso bianual desde 1987). • Database Systems for Advanced Applications (DASFAA, desde 1989). • Engineering Federated Information (Database) Systems (EFIS/EFDBS, desde 1997). • Extending Database Technology (EDBT, desde 1995). • IEEE International Conference on Data Mining (ICDM, a partir de 2001). • IFIP Working Conference on Database Semantics (DS, desde 1985). • International Conference on Conceptual Modeling (ER, desde 1979). • International Conference on Database Theory (ICDT, bianual desde 1986). • International Conference on Deductive and Object-Oriented Databases (DOOD, bianual desde 1989). • International Conference on Enterprise Information Systems (ICEIS, desde 1999). • International Database Engineering and Applications Symposium (IDEAS, desde 1997). • Knowledge Representation Meets Databases (KRDB, desde 1994). 3 Marco de los SGBD Profesor: Fernando Sáenz Pérez • SIGMOD/PODS (fruto de la unión en 1991 de SIGMOD (Special Interest Group on Management of Data) y Symposium on Principles of Database Systems (PODS), desde 1982). • Statistical and Scientific Database Management (SSDBM, desde 1981). • Symposium on Spatial and Temporal Databases (SSTD, desde 1989, antes Symposium on Large Spatial Databases (SSD)). • Very Large Data Bases (VLDB, desde 1975). • Visual Database Systems (VDB, desde 1989). Aparecen también congresos nacionales como: alemán (Datenbanksysteme in Büro, BTW), inglés (British National Conference on Databases, BNCOD), italiano, español (JISBD), australiano (Australasian Database Conference, ADC), francés (Journées Bases de Données Avancées, BDA), brasileño (Brazilian Symposium on Databases, SBBD). También hay revistas internacionales relacionadas con las bases de datos como The VLDB Journal (Springer, desde 1992), ACM Transactions on Database Systems (TODS, desde 1976), DATA BASE for Advances in Information Systems (de ACM-SIGMIS, desde 1969), Data Mining and Knowledge Discovery (Kluwer, desde 1997) y Knowledge and Information Systems (KAIS, Springer, desde 1999). Las revistas como ACM SIGCSE Bulletin, IEEE Transactions on Education, Computer Science Education (Swets & Zeitlinger Publishers), Computers & Education (Elsevier) y Education and Information Technologies (IFIP Technical Committee on Education) publican estudios interesantes sobre la enseñanza de la Informática. 1.1.3 Necesidad de los sistemas de gestión de bases de datos El desarrollo de la Informática ha sufrido ciertos escollos y una vez identificados y resueltos se ha impulsado la productividad del desarrollo software. La creación de lenguajes de programación de cada vez mayor nivel de abstracción para el razonamiento a un nivel más cercano a la especificación del problema, o la inclusión de tipos con su correspondiente verificación para asegurar en mayor medida la corrección del programa antes y durante la ejecución son buena prueba de ello. Este efecto también se ha producido en el ámbito del almacenamiento persistente de los datos. Según el enfoque "tradicional" del almacenamiento de datos en archivos, cada aplicación definía y mantenía sus propios datos (Figura 1, arriba), lo cual conduce fundamentalmente a la redundancia e inconsistencia de los datos. La solución 4 Marco de los SGBD Profesor: Fernando Sáenz Pérez aportada por los sistemas de gestión de bases de datos ofrece un nuevo enfoque en el que los datos se definen y administran de forma integrada (Figura 1, abajo), con la posibilidad de imponer importantes restricciones de integridad que, análogamente al papel de los tipos de las variables que restringen su dominio, posibilitan restringir el conjunto de datos admisible derivado de su naturaleza y de las relaciones entre ellos. Esta nueva orientación tiene como consecuencia la independencia de los datos, por la cual los programas de aplicación encuentran una interfaz común de acceso a los datos que implica su independencia de la implementación física de los datos. Enfoque tradicional Enfoque orientado a BD Figura 1. Enfoque tradicional orientado a archivos y enfoque orientado a bases de datos. La tecnología de bases de datos ha tenido una gran influencia en el creciente uso de los computadores. Las bases de datos juegan un papel crítico (y muchas veces no identificado) en casi todas las áreas donde se usan computadores. La gestión de bases de datos ha pasado de ser una aplicación especializada más a constituir una parte esencial de un entorno informático moderno. Es vital reconocer el ámbito de aplicación de los sistemas de gestión de bases de datos y decidir su aplicación. Por ejemplo, no es razonable usar un SGBD para almacenar los resultados intermedios de una ordenación externa, que por naturaleza son datos temporales (desechables tras la operación), si bien necesitan de almacenamiento secundario debido a la limitación de la capacidad de la memoria principal 1. 1 Aunque se podría aprovechar la memoria virtual para este propósito, los mejores resultados se consiguen con algoritmos especializados que toman cuenta de las características particulares de la operación a resolver. 5 Marco de los SGBD Profesor: Fernando Sáenz Pérez 1.1.4 Antes de los sistemas de gestión de bases de datos Una primera etapa, hasta mediados de los 60, que presenta la evolución del concepto de archivo, se podría dividir en varias fases. En una primera fase no existe aún el concepto de archivo. Los datos sólo tienen sentido dentro de los programas de aplicación y se incluyen dentro de ellos en forma de constantes. El uso de los computadores se encuentra restringido al campo científico. Posteriormente, en una segunda fase, surgen nuevos soportes para la información. Las tarjetas perforadas y la cinta perforada dan lugar a la aparición de los archivos secuenciales. El archivo informático nace básicamente para almacenar las informaciones permanentes (muchas veces de gran volumen), y está asociado a las memorias secundarias o externas, debido a que las memorias primarias o internas son más caras y además son, en general, volátiles. El acceso a estos archivos se realiza con instrucciones en lenguaje máquina y posteriormente en ensamblador. Pronto aparecerán rutinas programadas de acceso a los archivos y éstas se integrarán dentro de los sistemas operativos. En 1945 se desarrollan las cintas magnéticas, el primer medio que permite realizar búsquedas. Los archivos están organizados de forma secuencial simple, la estructura física de los datos es prácticamente igual a la estructura de los archivos lógicos. Del mismo archivo existen varias copias porque se guardan las generaciones anteriores de los datos. El software se ocupa sólo de las operaciones de entrada/salida y el programador de aplicaciones diseña la distribución física de los datos y la incorpora en los programas de aplicación. Si se cambia la estructura de los datos o los dispositivos de almacenamiento, los programas de aplicación se deben volver a escribir, recompilar y probar. Los datos se diseñan y optimizan por lo general para una única aplicación, de ahí que los mismos datos difícilmente se intercambien entre aplicaciones. Existe un alto nivel de redundancia entre los archivos de datos. Los dispositivos de almacenamiento cambiaron con una nueva tecnología que trajo consigo una sustancial reducción del costo por bit de almacenamiento y, al mismo tiempo, los volúmenes de los archivos sobrepasaron en gran medida la capacidad de los primitivos dispositivos de almacenamiento. En esta época se realiza un procesamiento de transacciones por lotes (batch). Las transacciones se introducen en tarjetas o cintas y se incluyen en un lote para su procesamiento posterior. El procesamiento por lotes aprovechó en gran medida los computadores, pero tuvo dos serios inconvenientes. Si había un error en una transacción, no se detectaba hasta la ejecución de la noche y la corrección de la transacción podía durar días. Más importante es el hecho de que la empresa no conocía exactamente el estado de la base de datos (al menos hasta el día siguiente, en que las transaccio- 6 Marco de los SGBD Profesor: Fernando Sáenz Pérez nes se hubiesen procesado). Estos sistemas requirieron un nuevo paso en el procesamiento: los sistemas interactivos (online). Una tercera fase se inicia a finales de los años 50. En 1957 se instala el primer computador comercial. En 1959 McGee propone la noción de acceso generalizado a datos almacenados electrónicamente. Ese mismo año IBM introduce el sistema RAMAC (Figura 2) que permite leer los datos de forma no secuencial y hace posible el acceso a los datos contenidos en los archivos. El disco magnético induce la aparición del archivo de acceso directo basado en técnicas de direccionamiento calculado usando primero direcciones absolutas y más tarde direcciones relativas. Fue el momento en que el componente hardware posibilitó la aparición de los sistemas de gestión de bases de datos transaccionales interactivos, que procesaban interactivamente las transacciones sobre las bases de datos a las cuales accedían mediante un sistema de gestión de bases de datos en conexión telemática. El hardware para conectar terminales interactivos a un mainframe evolucionó desde teletipos, pasando por terminales CRT con capacidades de representación únicamente textual y sin capacidad de procesamiento, hasta los terminales inteligentes de hoy en día, capaces de asumir parte del procesamiento en un entorno cliente/servidor. La aparición de estos últimos supone un gran avance en la productividad y en la comodidad, al acceder a diferentes aplicaciones concurrentemente desde un único terminal. Los monitores de teleprocesamiento proporcionaron el software especializado para que un modesto computador de la época pudiese servir a miles de terminales concurrentemente. Figura 2. RAMAC (Random Access Method of Accounting and Control) de IBM. Hasta este momento los archivos que se usaban estaban plenamente integrados con la aplicación a la que servían y dependían del hardware que los soportaba. Los programas estaban hechos a la medida de la aplicación y del computador. Ya en la década de los 60 aparece el archivo secuencial indexado que al principio sólo permitía una única clave y usaba áreas de desbordamiento. Se reconoció la naturaleza cambiante de los archivos y de los dispositivos de almacenamiento. El software hizo posible modificar la distribución física de los datos sin que por ello se alterase su estructura lógica, 7 Marco de los SGBD Profesor: Fernando Sáenz Pérez siempre que no se introdujesen cambios en los contenidos de los registros ni en la estructura fundamental de los archivos. Es posible el acceso secuencial o el acceso directo a los registros. Se distingue la organización lógica de la organización física pero las relaciones entre ellas son bastante sencillas. Es posible reemplazar las unidades de almacenamiento sin necesidad de modificar los programas de aplicación. Las estructuras de datos son, por lo general, de los tipos secuencial, secuencial indexado, o de acceso directo simple. Se admiten ciertos recursos de seguridad pero no son muy fiables. Aún existe mucha redundancia en los datos. El software provee métodos de acceso pero no de administración de datos. En 1964 aparece el primer sistema de gestión de bases de datos comercial (Integrated Data Stored de General Electric), que estaba basado en un modelo de datos de red seminal desarrollado por Bachman [Bach65]. Los diagramas de estructura de datos y la terminología empleada por Bachman (tipos de registro y tipos de conjunto) se harán muy populares. Bachman incorpora la estructura de "cadena" o "anillo" a las estructuras entonces clásicas. Estos hechos sentarán las bases para el posterior desarrollo del modelo de datos de red por el grupo DBTG (DataBase Task Group) del comité CODASYL (Committee on Data Systems Languages). Bachman recibió el premio Turing por conducir el esfuerzo de DBTG, que definió un lenguaje estándar para la definición y manipulación de datos. En su conferencia Turing describió la evolución de los modelos de archivos planos al nuevo enfoque en que los programas podía navegar entre los datos siguiendo las relaciones entre los registros [Bach73]. El modelo de Bachman es reminiscente del sistema Memex de V. Bush [Bush45] o el modelo actual de navegación en Internet. La comunidad Cobol de bases de datos cristalizó el concepto de esquemas e independencia de datos. Se comprendió la necesidad de ocultar los detalles físicos de la estructura de los registros. Los programas deberían ver sólo la organización lógica de los registros y las relaciones, de manera que siguiesen funcionando a medida que cambiase la estructura de los registros. Las primeras bases de datos dieron soporte a tres clases de esquemas de datos. El esquema lógico que definía el diseño lógico global de los registros de las bases de datos y las relaciones entre ellos. El esquema físico que describía la estructura física de los registros de la base de datos en los dispositivos de almacenamiento y en los archivos, y los índices necesarios para dar soporte a las relaciones lógicas. Finalmente, el subesquema era propio de cada aplicación y definía el subconjunto del esquema lógico que usaba el programa. El mecanismo de estos tres esquemas proporcionó la independencia de datos. Realmente, muchos programas escritos en aquella época aún siguen funcionando usando el mismo subesquema con el que empezaron, incluso aunque los esquemas lógico y físico han evolucionado a diseños completamente nuevos. Entre 1965 y 1970 se desarrollan diversos sistemas gestores de archivos generalizados, precursores de las primeras bases de datos. Aparecen en aplicaciones de tipo técnico o militar, para las que se construían 8 Marco de los SGBD Profesor: Fernando Sáenz Pérez complicados programas de gestión de archivos interrelacionados que estaban hechos “a la medida” de la aplicación concreta (aún no existía el concepto de independencia de datos). Este primer intento de construir un software capaz de ser usado por una familia de aplicaciones sin necesidad de retoques se traduce en los productos BOMP, DBOMP y CMFS que utilizan principalmente técnicas de encadenamiento. El uso de sistemas de archivo integrados permite tener acceso a los mismos datos de diferente maneras según los requisitos de la aplicación. De los mismos datos físicos se derivan múltiples organizaciones lógicas. El software suministra los medios para disminuir la redundancia y como consecuencia se facilita la conservación de la integridad de los datos. La organización del almacenamiento físico es independiente de los programas de aplicación. Los datos son direccionables en los niveles de campo y de grupo y es posible una recuperación por claves múltiples. Se utilizan formas de organización de datos muy complejas sin que ello se refleje en los programas de aplicación. Se alcanza un momento en que los sistemas clásicos de archivos se revelan insuficientes dadas las exigencias de los usuarios, que cada vez piden más prestaciones a los sistemas de información que manejan, en especial, exigen una mayor flexibilidad y adaptabilidad frente a cambios [Salt76]. Los principales problemas que presentan los sistemas de archivos clásicos se pueden resumir en los siguientes puntos: • Redundancia. Motivada fundamentalmente por el desarrollo de aplicaciones separadas para cada sección o departamento de la empresa. Esto trae consigo un desaprovechamiento de la memoria, un recurso escaso en aquella época, y la posible aparición de inconsistencias. • Dependencia. Los programas dependen completamente de los datos. Esto implica poca flexibilidad frente a futuras variaciones en los requisitos de información y un alto coste de mantenimiento de los programas. • Carencias expresivas. Debida a que los archivos no pueden representar correctamente todos los objetos que aparecen en el análisis de los problemas del mundo real. • Medidas de seguridad insuficientes. Relacionadas sobre todo con el control de los accesos concurrentes, la recuperación de archivos y el control de autorizaciones. 9 Marco de los SGBD Profesor: Fernando Sáenz Pérez 1.1.5 Aparición de los sistemas de gestión de bases de datos Para superar las limitaciones de los sistemas de archivos surgen las técnicas de bases de datos. El objetivo fundamental es unificar toda la información del sistema para evitar redundancias sin perder las diferentes perspectivas que tienen los distintos usuarios. Los datos se organizan y mantienen como un todo estructurado que no está diseñado para una aplicación concreta, sino que tiende a satisfacer las necesidades de información de toda la organización. En estos momentos se empiezan a establecer los requisitos actuales para los sistemas de gestión de bases de datos. El software de gestión procura la independencia lógica y física de los datos, permitiendo que exista una visión lógica global independiente de los posibles cambios en las vistas de los programas de aplicación o de la distribución física de los datos. Los datos pueden modificarse sin que se incurra en excesivos costos de mantenimiento. Se suministran medios para que el administrador de datos actúe como controlador y asegure su mejor organización. Se proporcionan procedimientos eficaces para controlar la privacidad, la seguridad y la integridad de los datos. Las bases de datos se diseñan de forma que sean capaces de suministrar de forma eficaz respuestas a tipos de preguntas no previstas por el diseñador. Se facilita la migración de los datos y por último el software suministra un lenguaje para la descripción de datos para el administrador de los datos, un lenguaje de ordenes para el programador de aplicaciones y a veces un lenguaje de consulta para el usuario. 1.1.5.1 Las bases de datos jerárquicas A finales de los 60, concurrentemente con el desarrollo de los sistemas gestores de archivos, IBM y North American Aviation (más tarde denominada Rockwell International) desarrollan el modelo de datos jerárquico. Con la finalidad de resolver problemas de diseño aerospacial y de producción se desarrolla Information Management System (IMS) con su lenguaje DL/1. Fue el primer sistema de gestión de bases de datos comercial basado en el modelo de jerárquico. Aparece IMS DB/DC (database/data communication), el primer sistema de base de datos de gran escala. Este sistema permitía representar vistas con topología de red sobre las jerarquías. Sobre 1969 IMS dio como resultado un sistema de gestión de bases de datos de tipo jerárquico de propósito general: el IMS/l de IBM que constituye la primera familia de sistemas de gestión de bases de datos. Aparece una extensión de PL/1 desarrollada por Dodd en GM que se denomina APL (Associative Programming Language). American Airlines e IBM desarrollan SABRE, el primer sistema que proporciona acceso a datos compartidos por múltiples usuarios a través de una red de comunicación. 10 Marco de los SGBD Profesor: Fernando Sáenz Pérez 1.1.5.2 Las bases de datos de red En la década de los 70 la tecnología de bases de datos experimenta un rápido crecimiento. Desde 1968 el comité CODASYL establece, inspirado en el modelo de Bachman, las características básicas que debería poseer un sistema de gestión de bases de datos y define el modelo de datos de red. Las primeras recomendaciones del DBTG de CODASYL [CODASYL69] y [CODASYL71] fueron implementadas por diferentes casas comerciales y dieron lugar a la segunda familia histórica de sistemas de gestión de bases de datos. Algunos sistemas, desarrollados a lo largo de los años 70, que siguen las propuestas de CODASYL son: IDS II de HONEYWELL, DMS1.100 de UNIVAC, DMS-II de Burroughs, DMS-170 de CDC, IDMS de BF Goodrich, PHOLAS de Philips y DBMS-11 de DIGITAL. Sin embargo, ninguna de estas implementaciones desarrolló completamente las propuestas de CODASYL. Algunos fabricantes desarrollan sus propios modelos en red y se implementan algunos sistemas integrados de BD y de comunicación de datos como TOTAL de Cicom System y ENVIRON/1. El modelo de datos de red siempre tuvo pretensiones de generalización y estandarización, mientras que la familia de sistemas jerárquicos está constituida por una serie de sistemas de gestión de base de datos de los que posteriormente se obtuvo la abstracción del modelo de datos jerárquico. Ambos tipos de sistemas de gestión de bases de datos (basados en el modelo de red y en el jerárquico) eran accesibles desde un lenguaje de programación, usualmente Cobol, usando una interfaz de bajo nivel. Esto hacía que la creación de una aplicación, el mantenimiento de la base de datos, así como el ajuste y el desarrollo fuesen controlables, pero aún a costa de una gran inversión de tiempo. No obstante, hasta 1980 los modelos de red y jerárquico fueron muy populares. Cullinet, una empresa fundada por Bachman, fue la mayor empresa de software y con más rápido crecimiento en el mundo. 1.2 Las bases de datos relacionales A pesar del éxito del modelo de datos de red, muchos diseñadores de software reconocieron que la interfaz de programación para navegación por los registros era de demasiado bajo nivel. En 1970 E.F. Codd [Codd70], basándose en el álgebra y en la teoría de conjuntos, propone un nuevo modelo de datos llamado modelo relacional [Codd70]. Sugiere que todos los datos de la base de datos se podrían representar como una estructura tabular (tablas con columnas y filas, que denominó relaciones) y que esas relaciones se podrían acceder con un lenguaje no procedimental (declarativo). En lugar de escribir algoritmos para acceder a los datos, este enfoque sólo necesitaba un predicado que identificara los registros o combinación de registros deseados. Es más, integraba los lenguajes de definición, navegación y manipulación en un solo lenguaje unificado. A diferencia de los modelos jerár- 11 Marco de los SGBD Profesor: Fernando Sáenz Pérez quico y de red, el modelo relacional estaba orientado a valores y no incluía la identidad de objeto (la declaratividad es el polo opuesto de la identidad de objetos). El modelo relacional encontró inicialmente una gran oposición debido a que requería más recursos informáticos que los SGBD existentes en la época y sus implementaciones no estaban lo suficientemente refinadas como para competir con el resto de modelos y, por tanto, resultaban demasiado lentos. Los SGBD relacionales no fueron prácticos hasta la década de los ochenta en que se desarrollaron computadores más rápidos a menor precio. La tasa precio/rendimiento disminuyó notablemente. El modelo relacional también se mostró ajeno a los programadores que estaban acostumbrados a procesar los datos de registro en registro, en lugar de procesar simultáneamente datos que podían pertenecer a toda la base de datos. Los programadores se debieron acostumbrar a una nueva forma de pensar en el tratamiento de los datos. Se desarrollaron proyectos de investigación que dieron lugar a algunos prototipos entre los que destacan INGRES de la Universidad de Berkeley (1973-75), System R de IBM (1974-77), System 2000 de la Universidad de Austin en Texas, el proyecto Sócrates de la Universidad de Grenoble en Francia y ADABAS de la Universidad técnica de Darmstadt en Alemania. Durante este periodo se desarrollaron diversos lenguajes de consulta: SQUARE, SEQUEL (SQL), QBE y QUEL. De fundamental importancia es el lenguaje SQL, que fue el resultado de la convergencia de muchos de los prototipos desarrollados en la época. El trabajo de investigación en IBM (en San Jose Research Laboratory, ahora Almaden Research Center) conducido por Ted (E.F.) Codd, Raymond Boyce y Don Chamberlin [CAEG96] y el trabajo en la Universidad de Berkeley conducido por Michael Stonebraker, dieron como resultado SQL. Se estandarizó por primera vez en 1986 por el comité ANSI X3H2 como estándar ANSI, que fue denominado SQL86 [ANSI86]. ANSI publicó un estándar extendido en 1989, SQL-89. La siguiente versión del estándar fue SQL-92 y la más reciente es SQL: 1999 (cinco estándares ISO/IEC resumidos en [EM99]), lo que provocó después de la primera estandarización la desaparición de su más inmediato competidor, QUEL. Sin embargo, QBE ha sobrevivido hasta nuestros días gracias a las interfaces de usuario amigables, y porque supone un primer contacto más intuitivo y rápido con las bases de datos relacionales. Posteriormente a los prototipos aparecieron numerosos sistemas relacionales comerciales, tales como el INGRES de RTI (1980), SQL/DS de IBM (1981), ORACLE de RSI (1981), DB2 de IBM (1983), RDB de DIGITAL (1983), etc. En 1972 el grupo SIGMOD (Special Interest Group on Management of Data) de la ACM organiza la primera conferencia internacional. En 1975 la fundación VLDB (Very Large Data Base) organiza la primera conferencia internacional. En 1976 el grupo de trabajo 2.6 de IFIPS (International Federation of Information Processing Society) organiza la primera conferencia internacional. En 1976 Chen presenta el modelo de datos entidadrelación. En 1977 y 78 aparecen las propuestas de ANSI/SPARC y CO- 12 Marco de los SGBD Profesor: Fernando Sáenz Pérez DASYL en las que se define una arquitectura en tres niveles para los sistemas de gestión de bases de datos que pretende conseguir una completa independencia de los datos. La compañía Software Development Laboratories (hoy Oracle) se fundó en 1977 y construyó el primer sistema comercial de gestión de bases de datos relacional. Durante los años 80 se desarrolla la familia de los “micro” sistemas de gestión de bases de datos. Éstos permiten al usuario definir sus propios datos y manipularlos con facilidad y flexibilidad pero carecen del soporte necesario para la gestión de múltiples vistas y accesos concurrentes. Además no garantizan el aislamiento entre programas y datos (la independencia de los datos). En la década de los 80 se desarrolla SQL Server en Sybase para sistemas UNIX y posteriormente se transportó a sistemas Windows NT. Desde 1994 Microsoft ha lanzado nuevas versiones de este producto de bases de datos independientemente de Sybase, que dejó de usar el nombre SQL Server a finales de los 90. La filosofía de uso de los productos Microsoft intenta ocultar la complejidad de las aplicaciones a los usuarios a través de interfaces de usuario gráficas avanzadas y asistentes que guían tareas elaboradas. Analysis Services, parte integral del producto, ofrece actualmente OLAP (Online Analytical Processing) y capacidades de minería de datos (data mining). En 1979 la compañía Ashton-Tate introduce dBase II2 para el mercado microinformático y lo denomina relacional. Fue un éxito comercial y muchos usuarios lo utilizaron productivamente (se incluyó como software de base en los microordenadores de Osborne a precio simbólico). Sin embargo, esto confundió los conceptos del procesamiento de bases de datos: de acuerdo con la definición establecida a finales de 1970, dBase II no era ni relacional ni siquiera un SGBD. De hecho era simplemente un lenguaje de programación con procesamiento de archivos generalizado pero sin funcionalidades de procesamiento de bases de datos. El aproximadamente millón de usuarios de dBase II pensó que estaban usando un SGBD relacional cuando realmente esto no era cierto. Un estudio realizado por ANSI/SPARC en 1983 revela que a principios de los 80 se han implementado más de 100 sistemas relacionales. En 1985 se publican los preliminares de la estandarización de SQL y el proceso se completa a principios de los 90. En mundo de los negocios se ve fuertemente influenciado por los lenguajes de cuarta generación (4GLs). A finales de los 80 y principios de los 90 junto con los lenguajes de cuarta generación comienzan a utilizarse técnicas de ingeniería del software asistida por 2 II no continuó a ningún I, fue tan sólo una táctica comercial que intentaba ofrecer un producto consolidado después de una supuesta primera versión. 13 Marco de los SGBD Profesor: Fernando Sáenz Pérez computador (CASE). Comienzan a generarse programas de aplicación completos usando como interfaz un lenguaje de alto nivel no orientado a la programación. Aparecen los primeros sistemas de gestión de bases de datos completos para microcomputadores. El modelo de datos relacional ha proporcionado beneficios inesperados además del aumento de productividad y la facilidad de uso. Es muy adecuado para el enfoque cliente/servidor, el procesamiento paralelo y las interfaces gráficas de usuario. 1.3 Clasificación de los sistemas de gestión de bases de datos El Comittee for Advanced DBMS Funcion (del que son miembros, entre otros, M. Stonebraker y J. Gray) proponen en el manifiesto de sistemas de bases de datos de tercera generación [SRLG90] que los sistemas de gestión de bases de datos se pueden clasificar en tres generaciones. La primera generación corresponde a los sistemas de gestión de bases de datos que prevalecían en los años 70 (modelos jerárquico y de red), orientados a la gestión de colecciones de registros. La segunda generación, en la década de los 80, estaban caracterizados por el uso de un lenguaje de acceso no procedimental y un nivel sustancial de independencia de datos (DB2, INGRES, NON-STOP SQL, ORACLE, etc.). La orientación de estos sistemas al procesamiento de datos de gestión (orientado a los negocios en el área de nóminas, contabilidad, facturación, etc.) los ha demostrado ineficaces para una clase más amplia de aplicaciones, como son el diseño asistido por computador (CAD), la ingeniería del software asistida por computador o las aplicaciones multimedia. La respuesta a estas carencias se recogen en lo que se ha venido a denominar sistemas de gestión de bases de datos de tercera generación. 1.4 Más allá de las bases de datos relacionales El modelo de datos relacional se ha constituido en un estándar de facto pero al mismo tiempo ha demostrado sus carencias. Quizás las más importantes sean los lenguajes de consulta no Turing-completos, tipos de datos muy limitados, fuertes carencias expresivas del modelo (valores nulos, consultas recursivas) y un soporte escaso de restricciones de integridad. Por ejemplo, en SQL se añadieron nuevos tipos de datos para las fechas y para cadenas de caracteres de dos bytes. Pero esto no era suficiente para todos los usuarios que necesitaban representar fechas anteriores a la era cristiana o caracteres Unicode. De forma que se reconoció que los sistemas de 14 Marco de los SGBD Profesor: Fernando Sáenz Pérez gestión de bases de datos debían permitir la construcción de nuevos tipos de datos para reflejar los datos del especialista en un dominio. Como consecuencia de ello, a partir de 1985, la comunidad investigadora empieza a buscar diversas extensiones de él en forma de nuevos modelos de datos. Cada una de estas extensiones intenta evitar alguno de los problemas del modelo de datos relacional. Dos de las extensiones más extendidas son el uso de la lógica como un modelo de datos y el uso de modelos de datos orientados a objetos. Desde 1985 se han desarrollado sistemas para sustituir el modelo relacional o para unificar los sistemas relacional y orientado a objetos. Al final de la década de los 80 había alrededor de una docena de productos de sistemas de gestión de bases de datos orientadas a objetos. Uno de los problemas de los lenguajes de acceso a las bases de datos es el desajuste de impedancia, que se refiere a la diferencia entre el nivel de registros de los actuales lenguajes de programación típicos y el nivel de conjuntos de un lenguaje como SQL. Esta diferencia de niveles se traduce en problemas prácticos en los productos basados en SQL que pretendan la persistencia. La solución no pasa por bajar el lenguaje de base de datos al nivel de registros (como llevan a cabo los lenguajes de programación orientadas a objetos), sino por elevar el nivel de operación (abstracción) de los lenguajes al nivel de conjuntos. La mayoría de estos lenguajes son de tercera generación por naturaleza y, como consecuencia, difíciles de transformar al nuevo nivel expresivo. El conjunto de los problemas mencionados provoca las propuestas de otros enfoques basados fundamentalmente en modelos de datos diferentes al modelo de datos relacional. 1.4.1 Bases de datos orientadas a objetos La comunidad que provenía de la programación orientada a objetos vieron el problema claramente: el diseño de tipos de datos requiere un buen modelo de datos y una unificación de los procedimientos y los datos. En lugar de construir los objetos en el sistema de gestión de bases de datos se recomienda que los tipos se implementen como una biblioteca de clases con métodos para manipular y acceder al estado de los objetos. Una vez construida esa biblioteca de clases, se podría conectar a cualquier sistema de gestión de bases de datos. El sistema de gestión de bases de datos almacenaría los objetos de esa clase y gestionaría los datos desde el punto de vista de la seguridad, concurrencia, recuperación, indexación, etc., pero no de las funcionalidades propias y características de los datos. La idea fundamental de estos sistemas sería elevar el nivel de abstracción al permitir aplicar métodos a objetos sin necesidad de pensar explícitamente en las relaciones y entidades que soportan el diseño de la base de datos. A finales de la década de los 80 varios firmas software habían desarrollado sistemas 15 Marco de los SGBD Profesor: Fernando Sáenz Pérez de gestión de bases de datos orientadas a objetos (como ObjectDesign, Versant, O2 y Objectivity). Actualmente podemos distinguir tres enfoques en la integración de la orientación a objetos en las bases de datos. En primer lugar, de manera natural aparecen los sistemas de gestión de bases de datos relacionales orientadas a objetos que son una extensión de las bases de datos relacionales que incluyen la posibilidad de definir clases como un tipo más. En segundo lugar aparecen los sistemas de gestión de bases de datos orientadas a objetos, en los que desaparece el adjetivo relacional. Finalmente están los lenguajes de programación persistentes ortogonalmente, que añaden la persistencia de objetos a lenguajes como Java sin solución de continuidad. 1.4.1.1 Sistemas de gestión de bases de datos relacionales orientadas a objetos Los sistemas de gestión de bases de datos relacionales orientadas a objetos incorporan ciertas características del enfoque orientado a objetos en un sistema de gestión de bases de datos relacional. Los sistemas de gestión de bases de datos relacionales orientadas a objetos se basan principalmente en los criterios establecidos en [SRLG90], que se trata de un manifiesto enfocado a la orientación a objetos opuesto al de [ABDD89], enfocado a las bases de datos relacionales. Los primeros proponen extender las capacidades de un sistema relacional para incluir soporte para objetos y reglas pero abiertos a otros sistemas. El primer principio enunciado en el manifiesto [SRLG90] se refiere a objetos enriquecidos y reglas, con características como herencia, tipos de datos avanzados, nuevos constructores sobre listas y bolsas. Todas las funciones se deberían escribir con un lenguaje de programación de alto nivel no procedimental para evitar que la programación se dirija a las interfaces de bajo nivel que dependen de la implementación física de la base de datos. El segundo principio se refiere al aumento de funciones, a la forma en que se deberían escribir y a la forma de acceso a los datos. Se deberían incluir vistas actualizables, enumeración de elementos en colecciones combinado con las capacidades del lenguaje de alto nivel para especificar pertenencia y evitar el acceso de bajo nivel dependiente de la implementación física. También establece que se debería asegurar la compatibilidad ascendente con los sistemas relacionales para facilitar la migración a los nuevos sistemas. El tercer principio se refiere a los sistemas abiertos y a las interfaces de programación de aplicaciones. El sistema de gestión de bases de datos debería estar abierto a varios lenguajes de alto nivel, que deberían estar basados en SQL. Los lenguajes de programación persistentes deberían estar soportados sobre un sistema de bases de datos mediante extensiones del compilador y un sistema runtime. 16 Marco de los SGBD Profesor: Fernando Sáenz Pérez Dado que no existe ningún estándar establecido (hay diferentes enfoques que se discuten posteriormente), ninguna firma software puede pretender ofrecer un sistema basado en estádar. No obstante, ORACLE, DBE e Informix han realizado importantes cambios en sus sistemas relacionales para incluir características relacionales orientadas a objetos. 1.4.1.2 Sistemas de gestión de bases de datos orientadas a objetos El paradigma conceptual de los sistemas de gestión de bases de datos orientadas a objetos ofrece persistencia para los objetos. Atkinson et al. [ABDD89] proporcionaron una guía de requisitos para estos sistemas, un manifiesto útil aún. En 1993, el grupo ODMG propusieron ODMG-93 [Cat94] y en 1997 el estándar ODMG 2.0 [CBBB97] que se reveló como el estándar de facto de modelo de objetos hasta finales de la década de los 90. En 2000 está ya preparada la siguiente versión, ODMG 3.0 [Cat00]. Este paradigma se basa en el concepto de persistencia ortogonal y en evitar el desajuste de impedancia. El estándar ODMG proporciona toda la funcionalidad mediante bibliotecas de clases, sin apenas necesidad de modificar la sintaxis del lenguaje anfitrión [SKS01]. En 1991 Sun comenzó el desarrollo de un nuevo lenguaje de programación orientado a objetos que estaba basado en cierta forma en C++ llamado Oak (roble3). El grupo de trabajo que desarrolló este lenguaje se convirtió en una empresa de Sun llamada First Person Inc. First Person desarrolló un explorador Web capacitado para ejecutar programas Oak. Sun decidió distribuir gratuitamente Oak, pero antes de ello le cambió el nombre a Java4 y al explorador lo denominó HotJava. Java estuvo disponible para millones de personas debido fundamentalmente a la integración de Java en Netscape. Desde finales de los 70, Atkinson trabajó en bases de datos, persistencia y sus aplicaciones. Su mayor aportación fue el primer lenguaje persistente ortogonalmente, PS-algol [ABCC83]. Atkinson continuó su trabajo y actualmente trabaja en la Universidad de Glasgow en el proyecto PJama (pronunciado “pijama” en inglés), la versión persistente ortogonalmente de Java. Persistencia ortogonal La persistencia ortogonal se puede enunciar como sigue [AM95]: 3 Debido a los árboles que decoraban la vista de la oficina de su diseñador, James Gosling. 4 Debido a como se conoce el café en el trabajo. 17 Marco de los SGBD Profesor: Fernando Sáenz Pérez • Principio de independencia de la persistencia. La forma de un programa es independiente de la longevidad de los datos que manipula. Los programas son iguales tanto si manipulan datos de vida corta o larga. • Principio de la ortogonalidad de los tipos de datos. Todos los objetos deberían disfrutar de la persistencia completa independientemente de su tipo. No hay casos especiales en que a los objetos no se les permita perdurar indefinidamente o ser temporales. • Principio de la identificación de la persistencia. La elección de la forma de identificar y proporcionar objetos persistentes es ortogonal al universo de discurso del sistema. El mecanismo para identificar objetos persistentes no está relacionado con el sistema de tipos. Persistencia por alcanzabilidad Este tipo de persistencia se refiere a la declaración implícita de persistencia de objetos, dada la persistencia explícita (declarada) de uno o varios objetos raíz. De esta forma, cualquier objeto es persistente si y sólo si se ha referenciado, directa o indirectamente, desde un objeto raíz persistente. Otros tipos de persistencia son la persistencia por clase (la más simple, que define según la declaración de clase que todos los objetos de esa clase son persistentes), la persistencia por creación (extiende la sintaxis para indicar la persistencia o temporalidad en la creación del objeto) y la persistencia por marcado (la persistencia se puede marcar en cualquier momento de la vida del objeto, que inicialmente es temporal). La aplicación de los principios que guían la persistencia ortogonal permite sentar las diferencias entre los lenguajes de programación persistentes ortogonalmente y otros sistemas de gestión de bases de datos. Los sistemas de gestión de bases de datos orientadas a objetos (propiedad de los lenguajes de programación persistentes ortogonalmente) se deben comunicar con el lenguaje de programación de manera que cualquier programa pueda mantener datos de corta o larga duración (temporales durante la ejecución del programa o persistentes en soportes de almacenamiento). Como resultado, el programa no se debería cambiar para ofrecer la persistencia de objetos, eliminando así el desajuste de impedancia entre el lenguaje y los objetos que maneja en términos de los tipos. En los sistemas de gestión de bases de datos orientadas a objetos todo lo que se represente como un objeto debería poder ser almacenado en la base de datos independientemente de su tipo. La mayoría de los sistemas de gestión de bases de datos manejan tipos simples. El modelo de datos relacional orientado a objetos define limitaciones para el modelado de datos debido a su organización de tablas. Darwen y Date [DD95] y Stonebraker et. al [SSU91] coinciden en reconocer que el modelo y cálculo relacionales deben ser el fundamento de la próxima generación de sistemas de gestión de bases de datos. Los sistemas de gestión de bases de datos orienta- 18 Marco de los SGBD Profesor: Fernando Sáenz Pérez das a objetos sufren de una falta de un modelo común de datos, siendo éste su mayor punto débil [Date98]. El modelo relacional hacer una clara distinción entre el modelo de datos (lógico) y la implementación (física), mientras que los sistemas orientados a objeto no. Así, los sistemas orientados a objetos proporcionarían menor independencia de los datos que los sistemas relacionales (¿qué ocurriría si se cambia el tipo de datos para almacenar a los empleados de un array a una lista enlazada?). Conceptos de los sistemas de gestión de bases de datos orientadas a objetos Actualmente no hay consenso en un modelo de datos orientado a objetos, aunque existen diversas propuestas ([CBBB97], [TM96] y [SR92]). Estas propuestas difieren en aspectos tales como la herencia simple o múltiple y si se deben almacenar los métodos o sólo las definiciones. Estas divergencias nacen de las diferentes características de los lenguajes orientados a objetos que deben dar soporte a este sistema. Por ejemplo, si los sistemas de gestión de bases de datos orientadas a objetos dan soporte a varios lenguajes, probablemente sea mejor que se almacene sólo la interfaz de los métodos pero no su implementación. La ausencia de un modelo de datos y lenguaje de definición es el motivo que algunos indican como uno de los mayores problemas de los modelos de datos orientados a objetos [DD95]. ODMG 2.0 soporta un modelo de objetos con funcionalidades de bases de datos, un lenguaje de consulta orientado a objetos similar a SQL (OQL, Object Query Language), un lenguaje de definición de datos (ODL, Object Definition Language) y enlaces a los lenguajes de programación C++, Java y Smalltalk [CBBB97]. Con el trabajo seminal de Atkinson en el lenguaje PS-Algol se dio paso a una nueva serie de lenguajes de programación persistentes ortogonalmente: Amber [Card84], Galileo [ACO85], Napier88 [DCBM89] y OPAL [Serv90]. PS-Algol fue un intento académico de añadir persistencia ortogonal y persistencia por alcanzabilidad en un lenguaje de programación con el mínimo de añadidos. Este enfoque es más claro que el enfoque general de sistemas de gestión de bases de datos orientadas a objetos, evitando los problemas que aparecen cuando se usan diferentes lenguajes para acceder a la base de datos, en concreto, el desajuste de impedancia. Así, el lenguaje y la base de datos tendrían las mismas propiedades. En 1996 se inició con PJama en la Universidad de Glasgow y en colaboración con Sun otro intento para diseñar un lenguaje de programación con seguridad de tipos, orientado a objetos y persistente ortogonalmente basado en Java [AJDS96] [ADJP96]. Estos lenguajes de programación consiguen la persistencia usando una técnica de implementación diferente de la mayoría de los sistemas de gestión de bases de datos orientadas a objetos comerciales. En los primeros, la persistencia ortogonal se asegura en tiempo de ejecución, mientras que en los segundos se consigue con un pre o 19 Marco de los SGBD Profesor: Fernando Sáenz Pérez post-procesamiento del código generado por el compilador, implementando las llamadas persistentes antes de la ejecución. PJama elimina totalmente el desajuste de impedancia sin añadir constructores al lenguaje, la única diferencia entre un objeto temporal y otro persistente es la alcanzabilidad desde una raíz persistente [AJDS96]. En sistemas de gestión de bases de datos orientadas a objetos se consigue usando palabras clave específicas. PJama hace la vinculación de objetos dinámicamente mientras que el otro enfoque lo hace parte dinámicamente y parte estáticamente. Actualmente se está usando este sistema en aplicaciones bioinformáticas usando constructores para indexar largas secuencias de genoma. Con ODMG 3.0 se consigue persistencia ortogonal para los lenguajes Java, C++ y Smalltalk. Se disponen para ellos los lenguajes OML, ODL y OQL. Como el grupo ODMG anuncia: “ODMG 3.0 se ha diseñado para funcionar como una interfaz para almacenar objetos en cualquier tipo de base de datos”. EyeDB, POET y Orient son firmas que han desarrollado productos que aseguran el estándar ODMG 3.0. 1.4.1.3 Discusión Los sistemas de gestión de bases de datos relacionales orientadas a objetos parten del modelo relacional descrito por primera vez por Codd y deberían ser capaces de representar características orientadas a objetos como la herencia, el polimorfismo, conjuntos, listas, bolsas, etc. en las relaciones. [DD95] defienden que se puede hacer si se usa un lenguaje diferente y discrepan con [SSU91] cuando éstos dicen “for better or worse, SQL is intergalactic dataspeak”. Coinciden en que las bases de datos orientadas a objetos deberían apoyarse en el modelo relacional, pero no coinciden en si esto comprometería las capacidades orientadas a objetos. Ninguno de estos enfoques eliminan el desajuste de impedancia referido a lenguajes accediendo a un sistema de bases de datos. La falta de un modelo de datos de los sistemas de gestión de bases de datos orientadas a objetos tiene otro problema asociado: la ausencia de un cálculo de objetos. SQL se convirtió en el estándar aunque QUEL estaba mucho más cercano al cálculo de tuplas. Algo parecido ocurre con los sistemas de gestión de bases de datos orientadas a objetos, ODMG 2.0 se está convirtiendo en estándar de facto porque está siendo apoyado comercialmente, no porque sea lo mejor. De hecho, no elimina el desajuste de impedancia al admitir diferentes lenguajes de programación, pero lo reducen en algunos casos e incluso lo eliminan. La diferencia más importante entre sistemas de gestión de bases de datos orientadas a objetos y sistemas de gestión de bases de datos relacionales orientadas a objetos es la diferencia en el desajuste de impedancia al manejar objetos complejos. Asimismo, las restricciones y la integridad son 20 Marco de los SGBD Profesor: Fernando Sáenz Pérez un aspecto importante del modelo relacional orientado a objetos, mientras que en el otro enfoque la consistencia se debe asegurar desde la aplicación. Las relaciones son otro problema que no se gestiona de manera ortogonal en los sistemas de gestión de bases de datos orientadas a objetos [Date00]. La navegación orientada a registros, que fue eliminada por Codd en 1970 con el modelo relacional, ahora se mantiene en los sistemas de gestión de bases de datos orientadas a objetos como un sistema de navegación orientado a objetos. Mediante iteradores se recorren las colecciones de objetos para realizar operaciones sobre ellos. De nuevo, la consistencia depende más de la aplicación que del sistema subyacente. 1.4.2 Bases de datos deductivas La intersección de las bases de datos, la lógica y la inteligencia artificial ha dado lugar a las bases de datos deductivas. Una base de datos deductiva es un sistema que incluye mecanismos para definir reglas (deductivas) que pueden inferir o deducir información adicional de los hechos almacenados en la base de datos. Las reglas se especifican en un lenguaje declarativo y un motor de inferencia (el mecanismo de deducción) es capaz de deducir nuevos hechos de la base de datos. El modelo usado para las bases de datos deductivas está estrechamente relacionado con el modelo de datos relacional y en particular con el formalismo de cálculo relacional de dominios. Está también relacionado con el lenguaje Prolog y, principalmente, con el lenguaje Datalog, un subconjunto de Prolog que evita el uso de estructuras potencialmente infinitas. Aunque se ha investigado activamente y producido muchas propuestas, la semántica operacional de Datalog es aún un campo de investigación para la consecución de consultas eficaces. El álgebra relacional se ha mostrado insuficiente en la expresión de consultas a la base de datos. Un defecto importante es la ausencia de recursión, que impide expresar consultas sencillas como es el cierre transitivo de un grafo. Este tipo de consultas pueden expresarse en la lógica de predicados de primer orden. Las bases de datos deductivas no son la primera aportación de la lógica a las bases de datos, de hecho hay que remontarse al revolucionario artículo de Codd [Codd70] en el que formaliza las bases de datos en términos del cálculo relacional y el álgebra relacional. El cálculo relacional está basado en el cálculo de predicados, al igual que la programación lógica. Tanto el cálculo como el álgebra son lenguajes de alto nivel, aunque se puede matizar que el álgebra es más procedimental que el cálculo, en el sentido en que en aquélla se razona en términos de operadores relacionales 21 Marco de los SGBD Profesor: Fernando Sáenz Pérez y su orden de aplicación5. Aunque las bases de datos relacionales usaron el lenguaje de la lógica en el cálculo relacional, no se formalizó en términos de la lógica. La formalización de las bases de datos relacionales en términos de la lógica y sus extensiones son la base de las bases de datos deductivas. Se puede decir que las bases de datos relacionales fueron precursoras de las bases de datos deductivas. La lógica ha aportado un gran número de contribuciones a las bases de datos, entre las que se pueden destacar [Mink96]: • Formalización de base de datos, consulta y respuesta a una consulta. • El reconocimiento de que la programación lógica extiende las bases de datos relacionales. • Comprensión clara de la semántica de múltiples clases de bases de datos que incluyen formas alternativas de negación y disyunción. • Comprensión de las relaciones entre la teoría de modelos, teoría de punto fijo y procedimientos de demostración. • Comprensión de las propiedades que pueden tener semánticas alternativas y su complejidad. • Comprensión de las restricciones de integridad y la forma en que se pueden usar para realizar actualizaciones, optimización semántica de consultas, respuestas cooperativas y mezcla de bases de datos. • Formalización y soluciones a los problemas de la actualización y de la actualización de vistas. • Comprensión de la recursión y la recursión acotada, y la forma en que pueden ser implementadas prácticamente. • Comprensión de las relaciones entre los sistemas basados en la lógica y los sistemas basados en el conocimiento. • Formalización de la gestión de información incompleta en sistemas de bases de conocimiento. • Correspondencia entre formalismos alternativos de razonamiento no monótono y bases de datos y de conocimiento. Los orígenes de las bases de datos deductivas se pueden localizar en la demostración automática de teoremas y posteriormente en la programación lógica. Minker [Mink87] sugiere que Green y Raphael [GR68] fueron 5 No obstante, ambos son semánticamente equivalentes como Codd demostró en [Codd72]. 22 Marco de los SGBD Profesor: Fernando Sáenz Pérez los primeros en descubrir la conexión entre la demostración de teoremas y la deducción en las bases de datos. Desarrollaron una serie de sistemas pregunta-respuesta que usaba un versión del principio de resolución de Robinson [Robi65], demostrando que la deducción se podía llevar a cabo sistemáticamente en un entorno de bases de datos. Otros sistemas pioneros fueron MRPPS, DEDUCE-2 y DADM. El primero fue un intérprete desarrollado por el grupo de Minker desde 1970 hasta 1978 que contemplaba varios procedimientos de búsqueda, técnicas de indexación y optimización semántica de consultas. Uno de los primeros artículos sobre procesamiento de consultas recursivas fue [MN82], que contenía la primera descripción de las consultas recursivas acotadas (consultas recursivas que se pueden traducir a otras no recursivas equivalentes). El segundo sistema, DEDUCE-2, se implementó en IBM a mediados de la década de los 70 [Chan78] y admitía cláusulas de Horn recursivas lineales por la izquierda (recursión de cola) que se basaba en compilación. DADM [KT81] insistió en la separación de los conceptos base de datos intensional (reglas de producción) y base de datos extensional (datos o hechos) y estudió la representación de la base de datos intensional con grafos de conexión para apoyar el desarrollo de planes de consulta. Gallaire, Minker y Nicolas organizaron un workshop histórico en 1977 (el primero de una serie) y varios artículos seleccionados se recogieron en el libro [GM78]. El artículo de Reiter de la suposición de mundo cerrado (y otro sobre compilación de reglas) aparecieron en este libro, al igual que el artículo de Clark sobre negación como fallo y un artículo de Nicolas y Yazdanian sobre la comprobación de restricciones de integridad. Este hito supuso reunir a las comunidades investigadoras de la lógica y las bases de datos. En 1976 Van Emdem y Kowalski [EK76] demostraron que el menor punto fijo de un programa lógico de cláusulas de Horn coincidía con su mínimo modelo de Herbrand. Esto proporcionó un fundamento sólido para la semántica de los programas lógicos y, especialmente, para las bases de datos deductivas, ya que los cómputos de punto fijo es la semántica operacional asociada a las bases de datos deductivas que usan evaluación ascendente (bottom-up). Se puede distinguir una primera fase en la investigación en bases de datos deductivas dedicada al desarrollo de los fundamentos semánticos. En la segunda fase se hace hincapié en las técnicas eficientes de evaluación de consultas. Henschen y Naqvi propusieron una de las primeras técnicas eficientes de evaluación de consultas recursivas en bases de datos [HN84]. Los primeros sistemas usaron estrategias basadas en la resolución que no eran muy adecuadas para aplicaciones con grandes conjuntos de datos, o estrategias demasiado simples. El artículo de Ullman [Ullm85] se centró en la evaluación eficiente de consultas recursivas e indicó que se deberían tratar aspectos como la no terminación. 23 Marco de los SGBD Profesor: Fernando Sáenz Pérez El área de las bases de datos deductivas y en particular el procesamiento recursivo de consultas se reveló muy activo en 1984 con el inicio de tres proyectos importantes, dos en Estados Unidos y otro en Europa. Los proyectos Nail!, en Stanford, LDL, en Austin y EKS de ECRC han producido contribuciones importantes y la construcción de prototipos simples. En la Universidad de Wisconsin se desarrolló Coral [RSSS94] a finales de los 80. En 1986 se reconoció que la combinación de Prolog con las bases de datos relacionales no era una solución satisfactoria y la investigación se condujo hacia técnicas de evaluación ascendente [TZ86]. El proyecto Aditi [Rama93] comenzó en 1988 en la Universidad de Melbourne y ha dado como resultado una segunda versión (Aditi 2) que se inició en 1994 y la versión alfa está disponible desde abril de 2001. Incorpora acceso concurrente, gestión de transacciones, paralelismo a varios niveles y resolución de predicados descendente. El proyecto VALIDITY [FGLV95] [LMV95] se inició en Bull Corporation de la mano de Jean-Marie Nicolas y Laurent Vieille para desarrollar un sistema de bases de datos deductivas que integrase características de orientación a objetos. En [AB01] se presenta el uso de la programación lógico-funcional para el diseño de un sistema de bases de datos deductivas lógico funcionales, al que se le está dotando actualmente de un lenguaje denominado INDALOG. 1.4.3 Bases de datos de deductivas orientadas a objetos La integración de las bases de datos deductivas y las bases de datos orientadas a objetos ha suscitado un gran interés en la comunidad científica para aunar las ventajas de ambos paradigmas. Del primero, un uso más potente de la lógica que las bases de datos relacionales, y del segundo la introducción de métodos y tipos enriquecidos definidos por el usuario. Existen también puntos compartidos entre ambos, como ofrecer lenguajes de consulta Turing-completos. Aparece un primer problema en la integración dada la diferente naturaleza de los lenguajes en ambos paradigmas, declarativos e imperativos. Aunque se argumenta la declaratividad de la orientación a objetos por la abstracción que aportan las clases, no hay que confundir ambos términos. La declaratividad permite expresar las consultas usando constructores del lenguaje que se manejan directamente por el motor de consultas sin necesidad de especificar el orden de la aplicación de los operaciones. Esta ca- 24 Marco de los SGBD Profesor: Fernando Sáenz Pérez racterística es fundamental para la optimización automática de los planes de ejecución dado que se pueden implementar motores eficientes dado el conocimiento del modelo de cómputo. Cuanto más se conozca en el nivel del motor acerca del programa (consulta) que se debe ejecutar, mayor será la mejora alcanzada. En cambio, los métodos de la programación orientada a objetos están compuestos de secuencias de operaciones cuyo orden es crítico en general. Esto añade una sobrecarga para el programador cuando se razona sobre el planteamiento del problema, además de obstaculizar las mejoras que automáticamente pueda realizar el motor de ejecución. En definitiva, las consultas declarativas representan un nivel de abstracción superior a las imperativas. Los lenguajes lógicos en los que se basan las bases de datos deductivas poseen una semántica clara y bien fundamentada, a diferencia de los lenguajes orientados a objetos. Así, el mejor enfoque para la integración de ambos paradigmas pasaría por añadir características de la programación orientada a objetos en un lenguaje lógico [Ullm91]. No obstante se pueden encontrar ambos enfoques en la investigación actual: el que incluye características de orientación a objetos en lenguajes de bases de datos basados en la lógica, y los que incluyen características lógicas en lenguajes de bases de datos orientadas a objetos. Ha habido un gran interés en la integración como lo demuestran las múltiples propuestas que han aparecido en la década de los 90, como Ologic [KW93], IQL2 [AS95], LOGRES [CCCT90], Datalogmeth [ALUW95], LLO [LO91], CORAL++ [SRS973, DLT [BB93], ROCK&ROLL [BFPW95] y Datalog++ [Jami97]. Como ejemplo, el sistema ROCK&ROLL [DPWF95] consta de un lenguaje de consulta deductivo que opera sobre una base de datos orientada a objetos. ROCK&ROLL es un sistema de bases de datos deductivas orientadas a objetos que integra un lenguaje lógico de cláusulas de Horn denominado ROLL con un lenguaje de programación imperativa ROCK. El lenguaje lógico ROLL incluye características de la programación orientada a objetos como la encapsulación, la herencia múltiple y la sobrecarga. 1.4.4 Bases de datos de restricciones La idea de las bases de datos de restricciones (Constraint Databases) se remonta a 1988 cuando P. Kanellakis visitó el centro de investigación T.J. Watson de IBM y asistió a una presentación del sistema CLP(R) (la instancia de CLP(X) sobre el dominio de los reales; otra instancia es CLP(FD) [CD96] sobre un dominio finito). De la misma forma que la programación lógica condujo a las bases de datos deductivas se planteó un enfoque similar con este nuevo paradigma. La consecuencia directa de esta idea fue el trabajo sobre lenguajes de consulta de restricciones (CQL, Constraint 25 Marco de los SGBD Profesor: Fernando Sáenz Pérez Query Languages) [KKR90] que inició el campo de las bases de datos de restricciones. La idea clave fue combinar el trabajo existente en Datalog y la programación lógica con restricciones y reemplazar el concepto de tupla en las bases de datos relacionales por una conjunción de restricciones de un lenguaje apropiado (por ejemplo, restricciones aritméticas lineales). En [KLP00] se puede encontrar una formalización del modelo de bases de datos de restricciones basado en un cálculo relacional de restricciones. Sin embargo, se reconoció que el estudio de lenguajes de restricciones en un entorno de bases de datos no era muy prometedor. De hecho, la recursión, incluso para clases simples de restricciones, daba lugar a lenguajes que no eran efectivos. En cambio, los lenguajes de restricciones sin recursión aparecieron más prometedores. Se ha realizado una gran labor investigadora como se revela en los congresos de programación lógica, de restricciones y específicos como la serie CDB (Constraint Data Bases). Esto ha dado lugar a prototipos como DEDALE [GRSS97] [GRS98], nacido de la colaboración de INRIA y CNAM, y basado en restricciones aritméticas lineales, DISCO [Sal98], desarrollado en la Universidad de Nebraska, basado en restricciones binarias sobre variables de conjuntos finitos e infinitos de enteros, y SQL/TP [Tom98], una extensión temporal de SQL que incorpora restricciones en el dominio temporal sobre el dominio de los enteros. El sistema DLV es otro proyecto iniciado en 1996 que ha dado lugar a varias contribuciones en conferencias y actualmente es un prototipo que incorpora disyunción, negación y restricciones fuertes y débiles sobre el universo de Herbrand menos las funciones (al igual que Datalog). Cuando se imponen las restricciones fuertes, éstas no se pueden violar, al contrario que las débiles, para las cuales se define un peso que define la importancia de su violación. 1.4.5 Bases de datos activas Originalmente las bases de datos relacionales no disponían de mecanismos como los hoy conocidos disparadores para modelar un comportamiento activo del sistema de gestión de la base de datos conforme a cambios de su estado o eventos externos. Este enfoque es muy interesante en el sentido de que intenta acercar la lógica de las aplicaciones al entorno de la base de datos. Así, el sistema de gestión de bases de datos sería el responsable de gestionar parte de la lógica de las aplicaciones (la parte reactiva), y, lo que es más importante, de almacenar la lógica común a todas ellas que permanece invariable6. 6 Con este enfoque se consiguen resultados análogos al enfoque básico de los programas con respecto a los datos. El sistema de gestión de bases de datos aísla los datos 26 Marco de los SGBD Profesor: Fernando Sáenz Pérez El modelo evento-condición-acción subyacente al comportamiento activo de estas bases de datos es reminiscencia de los agentes reactivos del campo de la inteligencia artificial. La diferencia radica en que los sistemas de gestión de bases de datos están orientados a la organización del conocimiento, mientras que los sistemas de la inteligencia artificial están orientados a la realización de comportamiento inteligente. Estos enfoques diferentes desembocan en tecnologías diferentes. El consorcio ACT-Net presenta un manifiesto en 1996 para caracterizar a las bases de datos activas [ACT96]. Actualmente, muchos sistemas de gestión de bases de datos (tanto relacionales como orientados a objetos) incorporan disparadores siguiendo el modelo evento-condición-acción, como por ejemplo, ORACLE, DB2, Sybase y SQL Server. 1.5 Impacto de la evolución de la tecnología en las bases de datos relacionales El creciente auge de las tecnologías de las comunicaciones y de la informática distribuida (redes de computadores) va a facilitar resolver las insuficiencias técnicas de los sistemas de gestión de bases de datos interconectados en red y va a convertir en una realidad práctica a los sistemas de gestión de bases de datos distribuidas de propósito general. Los diseños cliente/servidor dividen la aplicación en dos partes: el cliente que es responsable de recoger los datos de entrada del usuario y presentarle los resultados en el dispositivo cliente. El servidor es responsable de almacenar la base de datos, procesar las solicitudes de los clientes y responder con el resultado. La interfaz relacional es muy adecuada porque intercambia datos a alto nivel. Muchas de las herramientas actuales se construyen en torno al protocolo ODBC (Open Database Connectivity) que proporciona una forma estándar a los clientes para realizar solicitudes de alto nivel a los servidores. Los sistemas de gestión de bases de datos también guardan procedimientos almacenados en lenguajes procedimentales como Basic o Java que pueden ser invocados desde el cliente para ser ejecutados en el servidor. La necesidad de la integración de lenguajes procedimentales viene dada por el carácter no Turing-completo de SQL, lo que limita en gran medida, por ejemplo, la confección de informes con los resultados de las consultas. El aprovechamiento del procesamiento paralelo es otra de las ventajas añadidas del modelo relacional. El modelo relacional consiste en operadores cerrados bajo composición: cada operador toma como entrada rela- de las aplicaciones. El desafío que aparece es conseguir independizar la lógica de las aplicaciones de la especificación. 27 Marco de los SGBD Profesor: Fernando Sáenz Pérez ciones y produce como resultado también una relación. Como consecuencia, los operadores relacionales presentan de forma natural paralelismo segmentado (pipeline). No es frecuente encontrar largas cadenas de segmentación, pero sí es posible dividir las relaciones y aplicar simultáneamente el mismo operador sobre cada uno de los trozos divididos de las relaciones. Estas ideas surgieron inicialmente en el mundo académico y en Teradata Corporation (ahora NCR). Finalmente, los datos relacionales son adecuados para las interfaces gráficas de usuario. Es muy intuitivo presentar una relación como un conjunto de datos en una representación similar a las hojas de cálculo, en la que pueden ser examinados y manipulados cómodamente. Así se pueden manejar incluso en aplicaciones diferentes de los sistemas de gestión de bases de datos, como los procesadores de texto y las hojas de cálculo. Las interfaces gráficas de usuario permiten expresar complejas consultas de forma sencilla. 1.6 Avances en la tecnología de las bases de datos La mayoría de los avances en la tecnología de las bases de datos desde la década de los 80 se fundamentaron en dos pilares: los modelos de referencia y los modelos de datos. Las propuestas de ISO y ANSI sobre los modelos de referencia [ANSI86] [ANSI88] [ISO93] influyeron notablemente tanto a investigadores teóricos como a los desarrollos prácticos. Hay dos conceptos comunes en estos modelos de referencia: la arquitectura de tres capas (externa, lógica y externa, también propuestas por CODASYL) y la descripción de datos recursivos. La separación de los datos y su implementación física fue una constante en la evolución de los sistemas de gestión de bases de datos. En términos de modelos de datos, el modelo relacional ha sido el que ha influenciado en mayor medida el desarrollo de otros modelos posteriores, reconociéndose sus buenas características declarativas y semánticas. En el manifiesto de sistemas de gestión de bases de datos de tercera generación [SRLG90] se hace énfasis sobre este aspecto. Actualmente estamos siendo testigos de un desarrollo extraordinario de la tecnología de las bases de datos. Las áreas que pertenecían al ámbito de la investigación se trasladan al mercado informático (bases de datos en WWW, multimedia, activas, orientadas a objetos, seguras, temporales, paralelas, multidimensionales, etc.). 28 Marco de los SGBD Profesor: Fernando Sáenz Pérez 1.7 Desafíos actuales Los apartados anteriores han intentado dar una visión de conjunto la la evolución de las bases de datos hasta nuestros días desde el punto de vista de su capacidad expresiva y los modelos de datos que la soportan. Desde la óptica de la investigación académica es uno de los aspectos que con mayores energías se han abordado. No obstante, no podemos olvidar otros aspectos que han surgido bien demandados por la situación tecnológica actual o bien demandados por el mercado. A continuación se comentarán algunos de estos aspectos que hemos destacado. 1.7.1 Avances en hardware Actualmente se manejan sistemas de disco de capacidades del orden del TB, memoria del orden del GB, procesadores en número del orden de 102, memorias caché de primer nivel de 128KB y de segundo nivel de 1MB, y almacenamiento terciario (en cinta o CD) del orden del PB. Así como se puede esperar notables incrementos en la memoria principal (TB) y en la secundaria (PB), no se pueden anticipar aumentos notables de los niveles de caché porque el tamaño es inversamente proporcional al rendimiento debido a la estructura de los decodificadores de direcciones (cuanto mayor espacio de direccionamiento, mayores niveles digitales se deben atravesar), aunque sí podría anticiparse un número mayor de niveles de caché. La jerarquía de memoria impone un compromiso entre la velocidad, la rapidez y el coste. Todo ello debe implicar un rediseño de los algoritmos, estructuras de datos y utilidades en el contexto de estas nuevas arquitecturas. Las redes comunicación de alta velocidad hacen viable las arquitecturas de bases de datos distribuidas aún en el procesamiento de conjuntos de datos remotos, por lo que, por ejemplo, los protocolos de transacciones distribuidas tendrán que ser rediseñados atendiendo a la velocidad de comunicación entre nodos (que podría variar dinámicamente en términos de la utilización de la red o el uso alternativo de redes de diferente velocidad). En las últimas décadas hemos presenciado el liderazgo de los sistemas mainframe (grandes sistemas centralizados) en los grandes entornos de gestión empresarial. Sin embargo, el coste cada vez menor de las plataformas personales y su integración en redes ha hecho peligrar tal liderazgo. Así, se ha observado el cambio de sistemas centralizados a sistemas distribuidos más económicos por parte de ciertas empresas. No obstante, el coste oculto que suponen estas operaciones se hace cada vez más evidente [Comp97a, Comp97b]. La conclusión que se alcanza por la observación de las distintas necesidades es que diferentes entornos de trabajo demandan diferentes sistemas de gestión de bases de datos, y, aún más, que las diferentes plataformas pueden llegar a coexistir [Free98a,Free98b]. 29 Marco de los SGBD Profesor: Fernando Sáenz Pérez La escalabilidad de los sistemas de gestión de bases de datos depende sustancialmente de la tecnología que los soportan. Los sistemas de gestión de bases de datos actuales se han dimensionado bien con sistemas de memoria distribuida. Al aumentar la memoria principal se hace posible almacenar tablas completas en memoria, por lo que se deben pensar sistemas de indexación diferentes a los árboles B, que no es el mecanismo óptimo cuando se almacenan en memoria principal. De igual forma, aspectos como los búferes, la recuperación y la concurrencia se deben replantear. La diferencia creciente que se observa entre la velocidad de transferencia y la velocidad de búsqueda en los discos puede hacer que las arquitecturas como RAID 5 no sean apropiadas en el futuro, puesto que se basan en un gran movimiento de cabezas con respecto a otras alternativas. Nuevas aplicaciones, como imágenes de satélite (EOSDIS, Earth Observing System Data and Information Systems, proyecto iniciado en 1998 por la NASA), archivos de imágenes de vídeo y sonido requieren de petabytes a exabytes de almacenamiento. Con el abaratamiento de los discos y la aparición de nuevas tecnologías (quizás holográficas) se pueda replantear un nuevo nivel en la jerarquía de memoria. Para el proyecto EOS se utiliza un silo de cintas (sistema robotizado de cambio automático de cintas) de 50 GB por cinta con una tasa de transferencia sostenida de 11 MB/s. La tecnología utilizada actualmente para conseguir altas densidades de grabación y un gran ancho de banda pasan por usar pistas transversales en lugar de longitudinales como se realizaba inicialmente en las cintas de 9 pistas. La tecnología transversal supuso un gran avance inicialmente en la grabación de vídeo y posteriormente en la grabación de datos digitales. Originalmente, el recurso más escaso fue la memoria tanto principal como de disco. Superado este primer obstáculo, el tiempo de procesamiento se mostró como el principal cuello de botella, dado por la velocidad de procesamiento de la CPU como por la velocidad de procesamiento de las operaciones de E/S. Actualmente nos encontramos con la tecnología suficiente como para plantearnos un serio recurso escaso: la productividad de los desarrolladores de aplicaciones. Se demandan aplicaciones a un ritmo que sin la participación de productos que permitan el razonamiento a alto nivel no podrían ser abordadas con éxito. Es más importante generar código rápidamente que generar código óptimo. Generalmente la tarea de la mejora de la eficiencia del producto final se relega al sistema subyacente, en nuestro caso a los sistemas de gestión de bases de datos. La tendencia actual requiere que los sistemas informáticos sean autoinstalables, autogestionables, autoreparables y hasta autoprogramables. Lo último se hace evidente en cuanto reconocemos en el futuro próximo billones de clientes en búsqueda de información. Estos clientes no provienen sólo de Internet, sino de sistemas como la telefonía celular, los asistentes personales y los electrodomésticos y edificios “inteligentes”. La 30 Marco de los SGBD Profesor: Fernando Sáenz Pérez verdadera implantación de la domótica generará nuevas necesidades de los sistemas informáticos como las apuntadas en el párrafo anterior. 1.7.2 Web Lo anterior conecta con el impacto social, educativo, empresarial e investigador demostrado por la red de redes. La red Web ha permitido que el depósito de información sea cómodo, rápido y económico, lo que ha resultado en un repositorio ingente de información desorganizada. Esto es una buena noticia para la comunidad investigadora en bases de datos: la red Web se puede ver como una enorme base de datos. Sin embargo, ha habido poca contribución en este aspecto y las bases de datos se han usado en papeles periféricos, como en servidores Web, en servidores de comercio electrónico y para publicadores. La red Web se muestra como un gran sistema federado de bases de datos en la que en un futuro próximo billones de clientes accederán a millones de bases de datos. Es necesario abordar la integración de estas bases de datos y como resultado aparecen nuevos desafíos. Son necesarios optimizadores de consultas que cuenten con aspectos como que los sistemas de gestión de bases de datos locales son autónomos (pueden rehusar actuar en el plan de ejecución de la consulta), las restricciones locales de cada sistema, la carga de trabajo por cada nodo varía dinámicamente y las réplicas. El razonamiento preciso debe ser sustituido en ciertos casos por razonamiento impreciso, pero aproximado, como para resolver una consulta como “determinar el salario medio de los empleados en España”. Es obvio que ni es posible ni siquiera necesario realizar el promedio de absolutamente todos los empleados para obtener una respuesta razonable. De igual modo ocurre en las aplicaciones desarrolladas con los sistemas de restricciones con optimización, que renuncian al óptimo (generalmente inabordable para problemas NP-duros) por una solución razonable, pero alcanzable. La fuente de imprecisión no sólo proviene de la imposibilidad o no necesidad de contar con todos los datos, sino de plantear una pregunta subjetiva como “encontrar un buen restaurante a media hora de camino”. El concepto de bases de datos borrosas (fuzzy), que proviene de la lógica borrosa, aparece para abordar este último aspecto de imprecisión, un campo que ha suscitado interés investigador en la década pasada. Las páginas Web en el lenguaje de formato HTML han ido migrando a XML, un lenguaje que describe mejor los datos estructurados, para añadir contenidos dinámicos. Con XML se retroceden 25 años atrás en los lenguajes de procesamiento de consultas procedimentales. Aún más, permite memorias caché de datos actualizables en los clientes que generarán problemas de transacciones distribuidas en un contexto ajeno al de las bases de datos. Desafortunadamente es poca la presencia de la investigación en este terreno. 31 Marco de los SGBD Profesor: Fernando Sáenz Pérez Los portales Web se dirigen a la autoorganización y la clasificación y estructuración de la información disponible en la red. Los productores de contenido Web necesitan herramientas para construir económica y rápidamente almacenes de datos enormes con aplicaciones sofisticadas de recuperación, análisis y tratamiento de datos. La red Web ha potenciado el acceso a nuevos tipos de datos conocidos en conjunto como datos multimedia. Cada clase de información multimedia requiere su propia colección de funciones, estructuras de datos y métodos de acceso. La integración de los diferentes tipos de datos en un sistema de bases de datos eficiente es un desafío a la comunidad investigadora. Es necesario aportar nociones aproximadas de la igualdad incorporadas en el motor de procesamiento de consultas como base para la búsqueda de texto en medios continuos (como audio o vídeo) o en escritos a mano. En definitiva, los avances en hardware implican la negación de axiomas sobre los que se fundamentaron la investigación y desarrollo de sistemas de gestión de bases de datos [Asil98]. 1.7.3 Unificación de los procesos y los datos La idea original de la programación orientada a objetos era encapsular los métodos junto a los datos. Este objetivo se ha alcanzado parcialmente en los sistemas de gestión de bases de datos actuales, en el sentido en que se pueden destacar diferentes componentes en la lógica de las aplicaciones y no todas ellas se han encapsulado. En primer lugar se puede pensar en los flujos de trabajo (workflow) de reglas de negocio (business rules) como posible modelo para la descripción de aplicaciones. Varias firmas disponen de herramientas de diseño de flujos de trabajo y parece posible compilar los diagramas de flujo de trabajo en una colección de disparadores de bases de datos y alertas sobre un sistema de gestión de bases de datos activas. Una aplicación práctica necesitaría un sistema activo capaz de dimensionarse con disparadores en un número del orden de tres órdenes de magnitud. En el mercado de valores sería una aplicación interesante en la que se involucran los sistemas distribuidos. El soporte eficaz de grandes colecciones de disparadores distribuidos es un problema abierto. En segundo lugar se considera la lógica de los programas escritos en un determinado lenguaje de programación. Los componentes son una forma habitual de expresar la lógica de un programa y estos componentes deberían admitirse en los sistemas de gestión de bases de datos. CORBA [OHE96] y COM+ son dos estándares para la creación de aplicaciones distribuidas en un enfoque orientado a objetos para el paso de mensajes. El 32 Marco de los SGBD Profesor: Fernando Sáenz Pérez soporte de varios modelos de componentes en un sistema de gestión de bases de datos orientadas a objetos es otro desafío. En tercer lugar se consideran las metodologías de programación visuales, que permiten diseñar los datos y las aplicaciones desde un entorno gráfico, de manera que se genera automáticamente bastante código. Estas tecnologías deberían estar integradas con los sistemas de gestión de bases de datos orientadas a objetos. Finalmente, SQL se muestra como el estándar actual de facto para el acceso a las bases de datos. Es necesario conseguir un lenguaje de programación persistente sin desajuste de impedancia “popular” que permita complementar las carencias del enfoque relacional. 1.7.4 Nuevos tipos de datos 1.7.4.1 Bases de datos temporales Las bases de datos temporales contienen información histórica frente a la información actual que almacenan las bases de datos tradicionales. Desde mediados de la década de los 70 se inició la investigación en el campo de bases de datos temporales y sus lenguajes de consulta asociados, lo que ha producido un gran número de propuestas para extensiones temporales de SQL. Actualmente, SQL: 1999 Part 7 (SQL/Temporal) es el estándar propuesto para las extensiones temporales de SQL. Sin embargo, ninguna de estas propuestas se ha usado en sistemas de gestión de bases de datos comerciales ni han llegado a ser la base de los fundamentos de una teoría de bases de datos temporales. El fallo de estas propuestas es a menudo una sintaxis compleja y poco clara, ad/hoc y una poco clara o ausencia de semántica. No obstante, las bases de datos temporales se pueden observar como una aplicación de las bases de datos de restricciones. El sistema SQL/TP comentado anteriormente incluye un modelo sólido de bases de datos temporales incluyendo una representación compacta de relaciones temporales y un lenguaje de consulta completo de primer orden que es un superconjunto de SQL. Alcanzar un sistema eficiente es aún un problema abierto. 1.7.4.2 Bases de datos espaciales y geográficas Las bases de datos con información espacial (una, dos o tres dimensiones) y geográfica se pueden considerar como un superconjunto de las bases de datos temporales, en el sentido de que el razonamiento en ambos contextos se realiza en términos parecidos. Varios de los operadores de dimensión tiempo se pueden aplicar a una dimensión espacial, y se pueden extrapo- 33 Marco de los SGBD Profesor: Fernando Sáenz Pérez lar, aunque no de manera inmediata, a un mayor número de dimensiones. Así, el sistema DEDALE se ha probado con una aplicación GIS para el Instituto geográfico nacional francés y también con una aplicación espaciotemporal referida a una estación de esquí y la actividad de un grupo de personas. La lógica también hace su aportación desde la programación con restricciones en el dominio temporal para la resolución de problemas de planificación (scheduling) con OPL [Hen99], aunque no se trata de un lenguaje de programación persistente. No obstante, la integración de este lenguaje con un sistema de gestión de bases de datos es un problema abierto. Sin embargo, no existen sistemas de gestión de bases de datos comerciales que integren información temporal, espacial o geográfica en un modelo de datos con un lenguaje de consulta asociado en un marco formal. 1.7.4.3 Bases de datos multimedia Las bases de datos multimedia son una aplicación emergente necesitada de nuevos modelos de datos, que proceden de problemas como los comentados en los dos apartados anteriores, a los que hay que sumar las bases de vídeo en las que el espacio y el tiempo se combinan. La lógica protagonizará un papel importante en el desarrollo de lenguajes de consulta para estos nuevos modelos de datos para permitir razonamiento deductivo y una semántica formal que proporcione una base teórica para ellos. 1.7.5 Bases de datos y sistemas de información Un sistema de información está compuesto por recursos que posibilitan la recopilación, gestión, control y diseminación de la información en una empresa. Desde hace tres décadas las empresas han desarrollado sistemas de información basados en la Informática pero, anteriormente, los recursos del sistema de información de la empresa eran exclusivamente las personas, las calculadoras, los informes y todo aquello que permitía el manejo de la información. La Informática no ha reemplazado totalmente a los recursos que se han usado tradicionalmente, es más, se han detectado graves ausencias que la tecnología aún no ha podido cubrir por la complejidad en sí misma de la propia información y sus procesos asociados. No obstante, la comunidad informática ha proporcionado a la empresa recursos valiosos para dar soporte a los sistemas de información. Algunos objetivos claros de la Informática fueron descargar de las tareas más rutinarias y burocráticas basadas en el manejo de datos, como la contabilidad, la facturación o el control de stock. Las primeras herramientas fueron las aplicaciones basadas en archivos que fueron reemplazadas con la aparición de los sistemas de gestión de bases de datos. Aunque la tecnología cambió, las ideas funda- 34 Marco de los SGBD Profesor: Fernando Sáenz Pérez mentales en el manejo de la información no sufrieron su misma revolución. Sin embargo, la evolución de la tecnología en diferentes ámbitos, tanto en el componente hardware como en el propio de las bases de datos, permitió nuevas herramientas en el contexto de los sistemas de información, como la gestión de los procesos de la empresa (workflows) y la ayuda a la toma de decisiones (que se comentarán en apartados posteriores). A pesar de las nuevas herramientas es un hecho reconocido que las bases de datos son un componente fundamental de los sistemas de información, y su uso y desarrollo se debe observar de la perspectiva de los requisitos más amplios de la empresa. En definitiva, los sistemas de gestión de bases de datos son una herramienta que posibilita crear herramientas más complejas, herramientas que sin embargo deben ser intuitivas y fáciles de usar. 1.7.6 Nuevas aplicaciones 1.7.6.1 Minería de datos (Data Mining) La minería de datos se refiere a la búsqueda de generalizaciones que se pueden extraer de un programa o de una base de datos. Estas generalizaciones pueden ser restricciones de integridad que deben ser ciertas para la base de datos o para un estado dado de la misma. Se entiende como un sistema de ayuda a la toma de decisiones en el sentido de que es el administrador de la base de datos quien decide la clase a la que pertenece cada generalización inferida. De nuevo, la programación lógica se puede usar para encontrar inferencias inductivas [MR94]. 1.7.6.2 OLAP y los almacenes de datos (Data Warehouses) Está generalmente aceptado que los almacenes de datos son un buen enfoque para proporcionar el marco de acceso a los recursos de los datos necesarios para los sistemas de ayuda a la toma de decisiones. Existen varias firmas (entre ellas Microsoft, ORACLE e Informix) que ofrecen servidores de almacenes de datos y herramientas OLAP (Online Analytical Processing), aunque las enormes bases de datos multidimensionales necesarias para resolver este tipo de aplicaciones tienen muchos problemas y permanecen aún sin resolver. OLAP no sólo se usa en los almacenes de datos, pero sí es una fuente muy importante donde el análisis de datos es fundamental. Los puestos de datos (data marts) son un nuevo concepto que aparece a raíz del uso de los almacenes de datos. La experiencia demuestra que se aplican las mismas operaciones sobre un conjunto de datos y que incluso se actualiza la información para los sistemas “what-if”. El resultado son nuevos datos y datos modificados, e incluso nuevos esquemas que parten de un subconjunto del almacén de datos. 35 Marco de los SGBD Profesor: Fernando Sáenz Pérez 1.7.6.3 Sistemas de recuperación de información (Information Retrieval) El modelado de los propios datos no ha sido una inquietud en las bases de datos puesto que se asume una estructura asociada a ellos. En cambio, la recuperación de la información se ocupa principalmente del modelado del contenido de los documentos textuales (con palabras clave, índices, redes semánticas, frecuencias de palabras, fonética, etc.) para los que está ausente una estructura. Al modelar el contenido, el sistema puede determinar si un documento es relevante para una consulta examinando los descriptores de contenido del documento. Los sistemas de recuperación de información han evolucionado aisladamente de las bases de datos por su concepción ausente de estructura y por el carácter no cambiante de los documentos. Mientras que una de las preocupaciones principales de los sistemas de gestión de bases de datos es la modificación e inserción de datos, la preocupación principal de los sistemas de recuperación de información es determinar la relevancia de un documento con respecto a una consulta. La integración de las técnicas de la recuperación de la información en los sistemas de gestión de bases de datos promete ser una buena característica referida a los nuevos tipos de datos. 1.7.7 Sistemas de información distribuida Como cajón de sastre se reúnen en este apartado algunas de las funcionalidades que se deberían abordar como consecuencia de los sistemas de información distribuida. • Herramientas para consolidar datos contradictorios de fuentes diferentes, que puedan funcionar como ayuda a la toma de decisiones. • Modelos de transacciones cooperativos en que se añaden a los conceptos clásicos otros como el compromiso tentativo, la compensación en lugar del aborto de transacciones y el soporte de grupos y flujos de trabajo (groupware y workflow). • Capacidad de proporcionar datos en el nivel de resolución del cliente (teléfonos móviles, asistentes personales, terminales de red, televisión, etc.). • Diferentes criterios en la optimización de consultas. Tradicionalmente el criterio se ha basado en el tiempo medido como número de accesos a disco, pero este criterio puede cambiar según se tarifiquen las fuentes de información y el usuario pueda preferir información imprecisa a menor coste. Puede ser también relevante el número de transferencias ne- 36 Marco de los SGBD Profesor: Fernando Sáenz Pérez cesarias para realizar la consulta si se trata de un teléfono móvil, tanto en coste (actualmente) como en el consumo de batería. • Seguridad. Los aspectos relacionados con el control de acceso en sistemas distribuidos incluyen, por ejemplo, la formulación de un modelo de autorización y la interoperación entre diferentes políticas de seguridad. 1.8 Evolución de las metodologías de diseño de bases de datos El modelado de bases de datos es una labor compleja que se basa fuertemente en el modelo de datos usado, por lo que el uso de metodologías de diseño es esencial. La metodología más conocida y usada es la de transformación del modelo entidad-relación al modelo relacional. El proceso de normalización introducido por Codd en 1970 y desarrollado posteriormente es otra metodología basada en el compromiso entre redundancia y rendimiento, y que por tanto ha dado lugar al proceso inverso, la desnormalización. Según han evolucionado los modelos de datos y los sistemas de gestión de bases de datos también han ido evolucionando las metodologías de diseño de bases de datos. Los modelos de datos más expresivos dieron lugar a la distinción entre el diseño lógico y el físico. Al final de 1972, el comité de computadores y procesamiento de la información (X3) del Instituto nacional americano de normalización (ANSI) formó un grupo de estudio de sistemas de gestión de bases de datos bajo los auspicios del comité SPARC. La misión del grupo de estudio era estudiar la viabilidad de establecer estándares en este área, así como determinar los aspectos que se deberían estandarizar. El grupo de estudio editó su primer artículo en 1975 [SPARC75], y su artículo final en 1978 [TK78]. El marco arquitectónico propuesto en estos artículos se empezó a conocer como la arquitectura ANSI/SPARC. El grupo de estudio propuso que se estandarizaran las interfaces y definió un marco arquitectónico que contenía 43 interfaces, 14 de los cuales tratarían con el subsistema de almacenamiento físico del computador y por tanto no se consideraban parte esencial de la arquitectura del sistema de gestión de bases de datos. La arquitectura ANSI/SPARC está basada en la organización de los datos y distingue tres vistas: la vista externa (del usuario programador); la vista interna (del sistema) y la vista conceptual (de la empresa). Para cada una de estas vistas se requiere una definición apropiada del esquema. Esta arquitectura ha influenciado notablemente la evolución de las metodologías de diseño. El modelo entidad-relación propuesto por Chen [Chen76] [Chen77] introdujo con el modelo conceptual un nuevo paso en el diseño. Esta fase en el diseño representa el nivel más abstracto, más cercano al universo del 37 Marco de los SGBD Profesor: Fernando Sáenz Pérez discurso y más alejado de la implementación concreta del sistema de gestión de bases de datos. El diseño de bases de datos se divide usualmente en esta fase, una segunda fase de diseño lógico, en el que se adapta el modelo conceptual al modelo de datos que se vaya a usar, y una última de diseño físico cuyo objetivo es conseguir el esquema más eficiente en el sistema informático usado. A mediados de la década de los 80 se intentó la automatización del diseño con herramientas CASE, de las que algunas de ellas han conseguido avances importantes y otras permanecen simplemente como herramientas de dibujo [PD00]. Aunque proyectos como SECSI y Kheops [BGM85] [Bouz92] [BM95] resuelven muchos problemas del paso automático del diseño, se observa que los usuarios continúan usando sólo las partes pasivas de estas herramientas. En la década de los 90 han aparecido nuevas técnicas de análisis y diseño orientadas a objetos para bases de datos [BP98] [GHY97] (técnicas con la de Booch, Coad-Yourdon, OOSE, OMT, etc.). Se diferencian en la fase del ciclo de vida en la que se centran y son similares en cuanto que generalmente están guiadas por eventos. 1.9 El impacto del cambio en las organizaciones sobre las bases de datos Las organizaciones son cada vez más competitivas y exigen productos que resuelvan eficaz y rápidamente sus necesidades. Al mismo tiempo también son cooperativas en proyectos comunes con otras, siendo necesario la integración de datos y procesos. Las fusiones de grandes organizaciones (como las últimas fusiones de entidades bancarias de las que hemos sido testigos) exigen una total integración. Alta disponibilidad (como el pago con tarjeta o con teléfono móvil), servicio ininterrumpido (como el necesario en los cajeros automáticos) y arquitecturas abiertas (para la comunicación con sistemas diferentes) son algunas de las características más importantes y desafiantes demandadas por las grandes organizaciones. 1.10 Dimensiones de avance De lo expuesto anteriormente se pueden distinguir tres dimensiones ortogonales en la evolución de los sistemas de gestión de bases de datos, el rendimiento, la distribución y la funcionalidad. La Figura 3 muestra estas dimensiones etiquetadas por los campos de investigación que las dirigen. 38 Marco de los SGBD Profesor: Fernando Sáenz Pérez Funcionalidad Almacenes de datos BD orientadas a objetos BD deductivas BD multimedia BD activas BD temporales BD borrosas Distribución BD en memoria principal BD de tiempo real BD paralelas BD distribuidas BD federadas BD móviles Rendimiento Figura 3. Dimensiones en la evolución de las bases de datos. Se pueden considerar varios aspectos que guían el avance de las bases de datos en la dimensión del rendimiento. La aparición de nuevas arquitecturas hardware paralelas ha posibilitado el desarrollo de las bases de datos paralelas que explotan el paralelismo en consultas y entre consultas. Los sistemas de control exigen respuesta del sistema informática acotadas en el tiempo, por lo que aparecen las bases de datos de tiempo real. En éstas será necesario agregar información de prioridad y tiempos límite a las transacciones críticas en el tiempo. La caída del precio de la memoria junto al desarrollo de arquitecturas hardware con un gran espacio de direccionamiento ha provocado la posibilidad de mantener toda la base de datos en memoria principal, por lo que varios conceptos, como las transacciones, las estructuras de índices y los bloqueos, se deben rediseñar obviando el acceso a disco como un factor de rendimiento en el diseño. La dimensión distribución de los datos debe estar guiada por la naturaleza geográfica de la distribución de la información. Así, aparecen las bases de datos distribuidas sobre un conjunto de nodos cooperantes y homogéneos, las bases de datos federadas, que aglutinan diferentes sistemas de gestión de bases de datos como nodos, y las bases de datos móviles que cuentan con una topología cambiante en cuanto al tipo de conexión y a la desaparición y aparición de nodos. Finalmente, con respecto a la dimensión funcionalidad aparecen los enfoques tratados anteriormente, tanto los referidos a la funcionalidad expresiva que aportan los modelos de datos (bases de datos orientadas a objetos, deductivas, ...), como a las funcionalidades estructurales que otras ofrecen (activas, almacenes y puestos de datos). 39 Marco de los SGBD Profesor: Fernando Sáenz Pérez 1.11 La integración de esfuerzos de la Universidad y la Empresa La LRU atribuye a las Universidades la doble misión de transmisoras de conocimientos y promotoras de la investigación. En ningún campo puede parecer esto más necesario que en el de la Informática. Por la misma complejidad y diversidad de los campos que abarca se puede considerar a la Universidad una fuente importante de conocimientos en Informática, dada la gran cantidad de conocimientos interdisciplinarios que comprende y su íntima relación con los últimos avances obtenidos en muchos de ellos. Del mismo modo, la reunión de los equipos científicos necesarios para la obtención de avances relevantes requiere el concierto de voluntades y la disposición de espíritu que pueden encontrarse en los campus y redes universitarias internacionales. A menudo queda denostada la posición de la Universidad con el argumento manido de su falta de acercamiento a la realidad actual provocando el aislamiento de la investigación en parcelas cerradas, seguras (la teoría del mundo cerrado evita los detalles que rompen los cimientos de las teorías) y productivas en el curriculum investigador. No obstante, esto es una extrapolación en la mayoría de los casos, exagerada por quienes no conocen la realidad investigadora. La colaboración con las empresas en proyectos de investigación y desarrollo tanto con financiación privada como pública (habida cuenta de ello, el Ministerio ha promocionado las propuestas investigadoras acompañadas de los denominados "Entes promotores y observadores", EPOs) desmantelan tal tesis. Es cierto que aún queda camino por cubrir para que la Universidad española adopte ciertas características de otros modelos universitarios que promocionan la contratación de profesionales con aportaciones (sinergéticas) importantes en la industria y en la universidad. El papel de profesor asociado de la LRU como profesor con experiencia en el campo empresarial se ha mostrado insuficiente y orientado de facto a la desterrada figura del PNN. Es necesario admitir el papel "inútil" de ciertas investigaciones como recaba la siguiente metáfora. La investigación es como el agua de un río con múltiples ramificaciones y afluentes, cuya mayor cantidad acaba en un océano improductivo; sin embargo, una pequeña proporción baña las simientes que producen fruto. No obstante lo anterior se debe reconocer la diferencia de velocidad actual entre la Universidad y la Empresa. Una velocidad enfocada a la obtención de resultados de manera inmediata. Desde nuestro punto de vista y en el contexto actual entendemos que ello no es precisamente una ventaja, sino un inconveniente que provoca resultados precipitados que abocan en muchos de los casos en fracaso e inestabilidades de los desarrollos. Los desarrollos innovadores que generalmente se producen en la Universidad necesitan de la Empresa para constituir productos comerciales. Sabido es 40 Marco de los SGBD Profesor: Fernando Sáenz Pérez el desfase entre la concepción de la idea y su implantación en el mercado. Sin embargo, el uso de herramientas de desarrollo cada vez más productiva y la madurez en el desarrollo software hacen que este desfase sea cada vez menor, como estamos siendo testigos. En particular, el intervalo de tiempo entre las primeras propuestas y el primer desarrollo comercial de un sistema de programación con restricciones, que se ha demostrado útil en múltiples parcelas de la industria, como la planificación o la asignación de recursos, se ha reducido notablemente, desde la propuesta [JL87] hasta la comercialización del sistema CHIP [DHSA88]. Precisamente los investigadores originales estuvieron involucrados en el desarrollo de estos sistemas. El sistema OPLStudio no fue dado ni siquiera a conocer a la comunidad científica hasta que no estuvo disponible comercialmente en 1999, y estaba basado en las ideas seminales de la programación lógica con restricciones (sobre diferentes dominios). El papel de la Empresa en el desarrollo tecnológico es indudable y es quien en mayor medida lo impulsa conducido por la demanda cada vez más exigente del mercado tecnológico, tanto en los productos finales como en la calidad del proceso (así, entidades como ISO han establecido certificaciones de calidad que cada vez más exigen los clientes). En el contexto del desarrollo de la tecnología de bases de datos encontramos una íntima relación entre la Universidad y la Empresa. Los encuentros habituales entre personas destacadas en que se discute la agenda investigadora y de desarrollo concluyen las directrices a seguir en el futuro, como por ejemplo [Fort01] (cuarto encuentro de investigadores sobre fundamentos), [Gato98] (específico para potenciar el contacto entre los mundos académico e industrial) y [Asil98] (cuarto encuentro en investigación y desarrollo en bases de datos). NSF (National Science Foundation) de Estados Unidos subvenciona workshops para el encuentro entre las partes académica e industrial en este terreno. Así pues, entendemos fundamental la colaboración entre la Universidad y la Empresa. En nuestra Universidad, la OTRI (Oficina de Transferencia de Resultados de Investigación) se creó en 1989 como organismo de interfaz entre la Universidad y la Empresa con el objetivo fundamental de favorecer las relaciones entre ambos sectores, promoviendo la transferencia de la oferta científico-técnica universitaria al sector productivo. 41 Marco de los SGBD Profesor: Fernando Sáenz Pérez 2 Bibliografía [AA00] J.T. Gorgone et al., MSIS 2000: Model Curriculum and Guidelines for Graduate Degree Programs in Information Systems, Association for Computing Machinery and Association for Information Systems, 2000. [AB01] J.M. Almedros-Jiménez and A. Becerra-Terón, A Framework for Goal-Directed Bottom-Up Evaluation of Functional Logic Programs, Proceedings of FLOPS, LNCS 2024, pp. 153-169, Springer, 2001. [ABCC83] Atkinson M P., Bailey P J., Chrisholm K J., Cockshott W P. And Morrison R., "An approach to Persistent Programming", Computer Journal 26 (4), 360-365, 1983. [ABDD89] Atkinson M.P., Banchilhon F., DeWitt D., Dittrich K., Maier D. And Zdonik S. 1989. "The Object-Oriented Database System Manifesto", ALTAIR Technical Report, No. 30-89, GIP ALTAIR, LeChesnay, France, (September 1989). [ACM68] Curriculum Committee on Computer Science, “Curriculum 68: Recommendations for the undergraduate program in Computer Science”, Communications of the ACM, 11, (3), Marzo 1968, pp. 151-197. [ACM79] ACM Curriculum Committee on Computer Science, “Curriculum 78. Recommendations for Undergraduate Program in Computer Science”, Communications of the ACM, vol. 2, n. 3, marzo, 1979. [ACM82] J.F. Nunamaker (Jr.), J.D. Couger, and G.B. Davis, “Information Systems Curriculum Recommendations for the 80s: Undergraduate and Graduate Programs”, Communications of the ACM (25:11), pp. 781-805, 1982. 42 Marco de los SGBD Profesor: Fernando Sáenz Pérez [ACO85] Albano A, Cardelli L and Orsini R., "Galielio: A StronglyTyped Interactive Conceptual Language", ACM Transactions on databases 10 (2), 1985. [ACPT00] P. Atzeni, S. Ceri, S. Paraboschi y R. Torlone, Database Systems. Concepts. Languages and Architectures, McGrawHill, 2000. [ACT96] The ACT-NET Consortium (K. Dittrich, S. Gatziu, and A. Geppert, eds.), The Active Database Management System manifesto: A Rulebase of ADBMS Features”, Sigmod Record 25(3), 40-49, 1996. [ADA81] “The Programming Language ADA. Reference Manual”, LNCS, 106, Springer-Verlag, 1981. [ADJP96] Atkinson M P, Daynes L, Jordan M J, Printezis T and Spence S. 1996b. "An Orthonally Persistent JavaTM", SIGMOD Record, 25 (4), 68-75, (December 1996) [AI91] ACM/IEEE-CS Joint Task Force, Computing Curricula 1991, ACM Press e IEEE Computer Society Press, 1991. [AJDS96] Atkinson M P, Jordan M J, Daynes L and Spence S. 1996a, "Design Issues for Persistent Java: a type-safe, objectoriented orthogonally persistent system", Proceedings of POS7, Cape May, New Jersey (May 1996). [ALUW95] S. Abiteboul, G. Lausen, H. Uphoff, and E. Waller, Methods and Rules, Proceedings of the ACM SIGMOD International Conference on Management of Data, pp. 32-41, 1993. [ANSI86] American National Standard for Information Systems: Database Language SQL. American National Standards Institute. FDT, ANSI X3, 135-1986, 1986. [ANSI86] ANSI, Reference Model for DBMS Standardization: Report by the DAFTG of the ANSI/X3/SPARC Database Study Group, SIGMOD Record, Vol. 15, No. 1, 1986. [ANSI88] ANSI, Reference Model for DBMS User Facility: Report by the UFTG of the ANSI/X3/SPARC Database Study Group, SIGMOD Record, Vol. 17, No. 2, 1988. [ANSI89] Database Language SQL With Integrity Enhancements, ANSI X3, 135-1989. American National Standards Institute, New York, 1989. [ANSI92] Database Language SQL, ANSI X3, 135-1992. American National Standards Institute, New York, 1992. 43 Marco de los SGBD Profesor: Fernando Sáenz Pérez [AS95] S. Abiteboul and C.S. dos Santos, IQL(2): A Model with Ubiquitous Objects, Proceedings of the International Workshop on Database Programming Languages, Gubbio, Italy, 1995. [Asil98] The Asilomar Report on Database Research, Laguna Beach meeting SIGMOD Record 18(1): 17-26, 1998. [Bach65] Bachman C W. "Integrated Data Store", DPMA Quartely, (January 1965). [Bach73] Bachman, C.W., "The Programmer as Navigator", CACM 16.11, November, 1973. [BB93] R. Bal and H. Balsters, A Deductive and Typed ObjectOriented Language, S. Ceri, K. Tanaka, and S. Tsur (eds.) Proceedings of the International Conference on Deductive and Object-Oriented Databases, Phoenix, Arizona, 1993. [BBCG99] P. Blesa, N. Brisaboa, V. Canivell, J. Garbajosa, J. Maudes, M. Piattini, Propuesta de contenidos en bases de datos de los planes de estudio de Informática, Novatica, núm. 137, 1999. [BFLS94] Blakeley, J.A.; Fishman, D.; Lomet, D.; Stonebraker, M.; Barbara, D. The impact of database research on industrial products. (panel summary) SIGMOD Record, vol.23, (no.3):35-40, Sept. 1994. [BFPW95] M.L. Barja, A.A. Fernandes, N.W. Paton, M.H. Williams, A. Dinn, and A.I. Abdelmoty, Design and Implementation of ROCK&ROLL: A Deductive Object-Oriented Database System, Information Systems, 20(3):185-211, 1995. [BGM85] M. Bouzeghoub, G. Gardarin, and D. Métais, Database Design Tools: An Expert System Approach, 11th International Conference on Very Large Data Bases, 1985. [BJ66] Bohm, C., G. Jacopini, “Flow Diagrams, Turing Machines and Languages with Only Two Formation Rules”, Communications of the ACM, 9, (5), Mayo 1966, pp. 366-371. [BM95] M. Bouzeghoub, and E. Métais, Contribution of Expert Systems in CASE Development: The Secsi Experience, L.M. Delcambre and F.E. Petry (eds.), Advances in Databases and Artificial Intelligence, JAI Press Inc., 1995. [Bouz92] M. Bouzeghoub, Using Expert Systems in Schema Design, P. Loucopoulos (ed.), Conceptual Modeling, Databases, and 44 Marco de los SGBD Profesor: Fernando Sáenz Pérez CASE: An Integrated View of Information System Development, Wiley, 1992. [BP98] M. Blaha, and W. Premerlani, Object-Oriented Modeling and Design for Database Applications, Prentice-Hall, 1998. [Bush45] V. Bush, "As We May Think", The Atlantic Monthly, July, 1945. [CADA98] M.J. Corey, M. Abbey, D.J. Dechichio y I. Abramson, Puesta a punto de Oracle 8, 1998. [CAEG76] D.D. Chamberlin, M.M. Astrahan, K.P. Eswaran, P.P Griffiths, R.A. Lorie, J.W. Mehl, P. Reisner, and B.W. Wade, “WQUEL 2: A Unified Approach to Data Definition, Manipulation, and Control”, IBM Journal of Research and Development, Volume 20, Number 6 (1976), pp. 560-575. [Card84] Cardelli L., "Amber", AT&T Bell Labs Technical Memorandum 11271-840924-10TM, 1984. [Catt00] R. Cattel (ed.), The Object Database Standard: ODMG 3.0, Morgan Kaufmann Publishers, San Fransisco, California, 2000. [Catt94] Object Database Standard: ODMG-93, Morgan Kaufmann Publishers, San Fransisco, California, 1994. [CB99] T. Connolly y C. Begg, Database Systems. A Practical Approach to Design, Implementation, and Management, 2nd edition (revised), Addison-Wesley, 1999. [CB99] T.M. Connolly y C.E. Begg, Database Systems. A Practical Approach to Design, Implementation, and Management, Addison-Wesley, 1999. [CBBB97] Cattell R G G., Barry D, Bartels D, Berler M, Eastman J, Gamerman S, Jordan D, Springer A, Strickland H and Wade D, The Object Database Standard: ODMG 2.0, Morgan Kaufmann publishers, San Fransisco, California, 1997. [CCCT90] R. Cacace, S. Ceri, S. Crepi-Reghizzi, L. Tanca, and R. Zicari, Integrating Object-Oriented Data Modeling with a RuleBased Programming Paradigm, Proceedings of the ACM SIGMOD International Conference on Management of Data, pp. 225-236, 1990. [CD96] P. Codognet and D. Díaz, “Compiling Constraints in CLP(FD)”, Journal of Logic Programming, vol. 27(3), pp. 185226, 1996. 45 Marco de los SGBD Profesor: Fernando Sáenz Pérez [CGAC01] J. Cabot, R. García, Z. Almaleh, P. Cáceres, E. Marcos y M.J. Vázquez, UML en el diseño de bases de datos relacionales, Novática, núm. 150, 2001. [CM85] Carnegie-Mellon University, The Carnegie-Mellon Curriculum for Undergraduate Computer Science, New York, Sprenger-Verlag, 1985. [Codd70] Codd E F., "A Relational Model for Large Shared Databanks", Communications of the ACM, 13 (6), 377-390, (June 1970). [Codd72a] Codd E F., "Relational Completeness of Data Base Sublanguages", Rustin (ed.), Data base Systems, Courant Computer Science Symposia Series 6, Englewood Cliffs, N.J. Prentice-Hall, 1972. [Codd72b] Codd E F., "Further Normalization of the Data Base Relational Model", Rustin (ed.), Data base Systems, Courant Computer Science Symposia Series 6, Englewood Cliffs, N.J. Prentice-Hall, 1972. [Comp97a] La vuelta al proceso centralizado, Computerworld, nº 732, pág. 36, Noviembre 1997. [Comp97b] La democratización de los Sistemas de Información. Mesa redonda, Computerworld, nº 707, pág. 4, Abril 1997. [Chan78] C.L. Chang, Deduce 2: Further Investigations of Deduction in Relational Databases, H. Gallaire and J. Minker (eds.), Logic and Databases, Plenum Press, 1978. [Chen76] Chen, P.P., The Entity/Relationship Model: Towards a Unified View, ACM Transactions on Database Systems, Vol. 1, pp. 9-36, March 1976. [Chen77] Chen, P.P., The Entity/Relationship Model: A Basis for the Enterprise View of Data, AFIPS Conference Proc., Vol. 46, 1977. [Dani98] A. Danielsen, The Evolution Of Data Models And Approaches To Persistence In Database Systems, 1998. [Date98] C.J. Date, Why the Object Model Is Not a Data Model, en Relational Database Writings 1994-1997, Reading, Massachussets, Addison-Wesley, 1998. [DCBM89] Dearle A, Connor R C H, Brown AL and Morrison R., "Napier88 - A Database Programming Language?", Proc. 2nd 46 Marco de los SGBD Profesor: Fernando Sáenz Pérez International Workshop on Database Programming Languages, 179-195, 1989. [DD95] Darwen H, Date C J. 1995, "The Third Manifesto", SIGMOD Record, 24 (1), 39-49, (March 1995). [DGCF97] G.B. Davis, J.T. Gorgone, J.D. Couger, D.L. Feinstein, and H.E. Longnecker, IS’97 Model Curriculum and Guidelines for Undergraduate Degree Programs in Information Systems, Association of Information Technology Professionals, 1997. [DHSA88] M. Dincbas, P. Van Hentenrick, H. Simonis, A. Aggoun, T. Graf, and F. Berthier, The Constraint Logic Programming Language CHIP, Proceedings of the International Conference on Fifth Generation Computer Systems, 1988. [Dijk65] Dijkstra, E.W., “Programming Considered as a Human Activity”, Proceedings of IFIP Congress, 1965, pp. 213-217. [Dijk68] Dijkstra, E.W., “Co-operating Sequential Processes”, en Genuys, F. (Ed.) Programming Languages, Academic Press, 1968. [Dijk69] Dijkstra, E.W., “Notes on Structured Programming”, EWD249, Technological University Eindhoven, Agosto 1969. [Dijk75] Dijkstra, E.W., “Guarded commands, nondeterminacy and the formal derivation of programs”, Communications of the ACM, 18, Agosto 1975, pp. 453-457. [Dijk76] Dijkstra, E.W., A Discipline of Programming, PrenticeHall,1976. [Ditt94] Dittrich K R., "Object-Oriented Data Model Concepts", Advances in Object-Oriented Database Systems, NATO ASI Series, Series F: Computer and System Science, Vol. 130, 2945, Springer Verlag, Berlin Heidelberg New York, 1994. [DN68] Dahl, O.-J., Nygaard, K., “Class and Subclass declarations”, en Buxton, J.N. (Ed.), Simulation Programming Languages, North Holland, Amsterdam, 1968, pp. 158-171. [DPWF95] Dinn, A., Paton, N.W., Williams, M.H., Fernandes, A.A.A. and Barja, M.L., The Implementation of a Deductive Query Language Over an Object-Oriented Database, Proceedings of the 4th Int. Conf. on Deductive Object-Oriented Databases, T.W. Ling and A.O. Mendelzon and L. Vieille (eds), Springer-Verlag, 143-160, 1995. 47 Marco de los SGBD Profesor: Fernando Sáenz Pérez [EK76] M.H. Van Emdem and R.A. Kowalski, The Semantics of Predicate Logic as a Programming Language, Journal of the ACM, 23(4):733-742, October 1976. [EM99] A. Eisenberg, and J. Melton, “SQL: 1999, formerly know as SQL3”, ACM SIGMOD Record, Volume 28, Number 1, 1999. [EN00] R. Elmasri y S.B. Navathe, Fundamentals of Database Systems, 3rd edition, Addison-Wesley, 2000. [FGK93] R. Fourer, D.M. Gray, B.W. Kernighan, AMPL A Modeling Language for Mathematical Programming, Scientific Press Series, 1993. [FGLV95] O. Friesen, G. Gauthier-Villars, A. Lefebvre, and L. Vieille, Applications of Deductive Object-Oriented Databases Using Del.”, R. Ramakrishnan (ed.), Applicactions of Logic Databases, Kluwer Academic Publishers, 1995 [Floy67] Floyd, R., “Assigning meaning to programs”, Mathematical Aspects of Computer Science, XIX American Mathematical Society, 1967, pp.19-32. [Fort01] NSF Workshop on Information and Data Management PI, Fort Worth, Texas, 2001. [Fou98] R. Fourer, Extending a General-Purpose Algebraic Modeling Language to Combinatorial Optimization: A Logic Programming Approach. In D.L. Woodruff, ed., Advances in Computational and Stochastic Optimization, Logic Programming, and Heuristic Search: Interfaces in Computer Science and Operations Research, Kluwer Academic Publishers, Dordrecht, pp. 31-74, The Netherlands, 1998. [Free98a] E. Freeman. Convergencia de mainframes y sistemas distribuidos. Datamation, nº 144. pp. 32-37. Mayo 1998. [Free98b] E. Freeman. Retorno al mainframe. Datamation, nº 144. pp. 38-39. Mayo 1998. [Gato98] Report of the NSF Workshop on Industrial/Academic Cooperation in Database Systems, Los Gatos, California, October, 1998. http://www.ccs.neu.edu/groups/IEEE/indacad/ [GHY97] I. Graham, B. Henderson, and H. Younessi, The OPEN Process Specification, ACM Press, 1997. [GM78] H. Gallaire, and J. Minker (eds.), Logic and Databases, Plenum Press, 1978. 48 Marco de los SGBD Profesor: Fernando Sáenz Pérez [GR68] C.C. Green and B. Raphael, The Use of Theorem-Proving Techniques in Question-Answaring Systems, Proceedings of the 23rd ACM National Conference, Washington D.C., 1968. [Gray95] J. Gray, Parallel Database Systems tutorial, SIGMOD 95. [Gray96] J. Gray, Data Management: Past, Present, and Future, Microsoft Research, IEEE COMPUTER, 50th Anniversary issue, 1196. [Gray96] J. Gray, Data Management: Past, Present, and Future, Microsoft Research, IEEE COMPUTER, 50th Anniversary issue, 1196. [Gray97] J. Gray, Database Systems: A Textbook Case of Research Paying Off, 1997. http://www.cs.washington.edu/homes/lazowska/cra/database. html [GRWD00] M.F. Garcia, J. Reding, E. Whalen y S.A. DeLuca, Microsoft SQL Server 2000. Administrator’s Companion. Microsoft Press, 2000. [Hans73] Hansen, P.B., Operating System Principles, Prentice-Hall Inc., 1973. [Hans75] Hansen, P.B., “The Programming Language Concurrent Pascal”, IEEE Transactions on Software Engineering, SE-1, (2), Junio 1975. [Hanu01] M. Hanus, Curry, An Integrated Functional Logi Language, Technical Report, University of Kiel, Germany, 2001. [Hear95] Hearst, M.A., Overview of the Symposium “Improving Instruction of Introductory AI”, ACM Sigart, 6, (2) , pp. 3-7, Abril 1995. [Hen99] P. Van Hentenryck. The OPL Optimization Programming Language. The MIT Press. 1999. [HN84] L.J. Henschen and S.A. Naqvi, On Compiling Queries in Recursive First Order Databases, Journal of the ACM, 31(1):47-85, 1984. [Hoar69] Hoare, C.A.R., “An axiomatic basis for computer programming”, Communications of the ACM, 12, Octubre 1969, pp. 576-580, 583. [Hoar72] Hoare, C.A.R., “Towards a Theory of Parallel Programming”, en Operating Systems Techniques, Academic Press, 1972. 49 Marco de los SGBD Profesor: Fernando Sáenz Pérez [Hoar74] Hoare, C.A.R., “Monitors: An Operating System Structuring Concept”, Communications of the ACM, 17, (10), Octubre 1974. [Hoar78] Hoare, C.A.R., “Communicating Sequential Processes”, Communications of the ACM, 21, (8), Agosto 1978, pp. 666677. [HS65] Hartmanis, J., Stearns, R.E., “On the computational complexity of algorithms”, Transactions of the American Mathematical Society, 177, 1965, pp. 285-306. [IEEE79] IEEE Computer Society, A Curriculum in Computer Science and Engineering, 1976. [IEEE83] IEEE Computer Society, Model Program in Computer Science and Engineering, IEEE Catalog Number EHO 212-1, Diciembre 1983. [ISCC99] D.K. Lidtke, G.E. Stokes, J. Haines, and M.C. Mulder, ISCC’99: An Information Systems-Centric Currriculum’99, 1999. http://www.iscc.unomaha.edu [ISO93] ISO, Reference Model of Data Management, ISO/IEC IS 10032, 1993. [Jami97] H.M. Jamil, Implementing Abstract Objects with Inheritance in Datalogneg, Proceedings of the International Conference on Very Large Data Bases, pp. 46-65, Athens, Greece, 1997. [Jens74] Jensen, K., Wirth,N., PASCAL: User Manual and Report, Springer-Verlag, 1974. [JL87] J. Jaffar y J.L. Lassez, Constraint Logic Programming, Proceedings of the ACM Symposium on Principles of Programming Languages (POPL’87), pp. 111-119, ACM, 1987. [KKR90] P.C. Kanellakis, G.M. Kuper, and P.Z. Revesz, Constraint Query Languages, Proceedings of the 9th ADM SIGACTSIGMOD-SIGART Symposium on Principles of Database Systems (PODS’90), pp 299-313, ACM Press, 1990. [KLP00] G. Kuper, L. Libkin y J. Pardaens (eds.). Constraint Databases, Springer, 2000. [KMW84] Koffman, E.B., Miller, P., Wardle, C.E., “Recommended Curriculum for CS1: 1984”, Communications of the ACM, 27, (10), Octubre 1984, pp. 998-1001. 50 Marco de los SGBD Profesor: Fernando Sáenz Pérez [Knu74] Knuth, D.E., “Structured Programming with GO TO Statements”, Computing Surveys, 6, (4), Diciembre 1974, pp. 261-301. [Knut68] Knuth, D., The Art of Computer Programming, Volumen 1: Fundamental Algorithms, Addison-Wesley, 1968. [Koff85] Koffman, E.B., Stemple, D., Wardle, C.E. “Recommended Curriculum for CS2: 1984”, Communications of the ACM, 28, (8), Agosto 1985, pp. 815-818. [Kroe00] D.M. Kroenke, Database Processing. Fundamentals, Design and Implementation, 7a. edición, Prentice Hall, 2000. [KS97] Korth, H. and A. Silberschatz, " Database Research Faces the Information Explosion," Communications of the ACM 40, 2 (February 1997). [KT81] C. Kellogg and L. Travis, Reasoning with Data in a Deductively Augmented Data Management System, H. Gallaire, J. Minker, and J. Nicolas (eds.), Advances in Data Base Theory, Volume 1, Plenum Press, 1981. [KW93] M. Kifer and J. Wu, A Logic for Programming with Complex Objects, Journal of Computer and System Sciences, 47(1):77120, 1993. [LH99] F.J. López-Fraguas and J. Sánchez-Hernández. Toy: A Multiparadigm Declarative System. In Proceedings of the 10th International Conference on Rewriting Techniques and Applications (RTA'99), pp. 244-247. Springer LNCS 1631, 1999. [LMV95] T.-W. Ling, A. Mendelzon, and L. Vieille (eds.), Proceedings of the Fourth International Conference on Deductive and Object-Oriented Databases, DOOD’95, LNCS 1013, Springer-Verlag, December 1995. [LO11/1983] Ley Orgánica 11/1983, de 25 de agosto, publicada en BOE de fecha 1/9/1983. [LO91] Y. Lou and M. Ozsoyoghu, LLO: A Deductive Language with Methods and Method Inheritance, Proceedings of the ACM Sigmod International Conference on Management of Data, pp. 198-207, 1991. [Lone00] K. Loney, Oracle 8. Manual del administrador, Osborne/McGraw-Hill, 2000. 51 Marco de los SGBD Profesor: Fernando Sáenz Pérez [Maie91] D. Maier, Comments on The Third-Generation Data Base System Manifesto, 1991. [Mink87] J. Minker, Perspectives in Deductive Databases, Technical Report CS-TR-1799, University of Maryland at College Park, March 1987. [Mink96] Jack Minker: Logic and Databases: A 20 Year Retrospective. Logic in Databases, pp.3-57, 1996. [MN82] J. Minker and J.-M. Nicolas, On Recursive Axioms in Deductive Databases, Information Systems, 16(4):670-702, 1991. [MR94] S. Muggleton and L.D. Raedt, Inductive Logic Programming: Theory and Methods, Journal of Logic Programming, 19/29:629-679, 1994. [O081091] Orden de 8 de octubre de 1991, publicada en BOE de fecha 17/10/1991. [O110991] Orden de 11 de septiembre de 1991, publicada en BOE de fecha 26/9/1991. [Occa84] Occam Programming Manual, Prentice-Hall, 1984. [OHE96] R. Orfali, D. Harkey, and J. Edwards, The Essential Distributed Objects Survival Guide, Wiley, New York, 1996. [Parn72] Parnas, D.L., “On the Criteria to be Used in Descomposing Systems into Modules”, Communications of the ACM, 15, Diciembre 1972, pp. 1053-1058. [PD00] M. Piattini and O. Díaz (eds.), Advanced Database Technology and Design, Artech House, 2000. [PD99] N.W. Paton and O. Díaz, Survey of Active Database Systems, ACM Computing Surveys, 1999. [R140497a] Resolución de 14 de abril de 1997, de la Universidad Complutense de Madrid, por la que se publica la adaptación del plan de estudios para la obtención del título oficial de Ingeniero Técnico en Informática de Gestión, publicada en BOE. [R140497b] Resolución de 14 de abril de 1997, de la Universidad Complutense de Madrid, por la que se publica la adaptación del plan de estudios para la obtención del título oficial de Ingeniero Técnico en Informática de Sistemas, publicada en BOE. 52 Marco de los SGBD Profesor: Fernando Sáenz Pérez [R210792] Resolución del 21 de julio de 1992 por la que se publican los planes de estudios para la obtención de los Títulos de Ingeniero en Informática, Ingeniero Técnico en Informática de Gestión e Ingeniero Técnico en Informática de Sistemas, publicada en BOE de fecha 25/9/1992. [R280497] Resolución de 28 de abril de 1997, de la Universidad Complutense de Madrid, por la que se publica la adaptación del plan de estudios para la obtención del título oficial de Ingeniero en Informática, publicada en BOE de fecha 19/5/97. [Rama93] K. Ramamohanarao. An Implementation Overview of the Aditi Deductive Database System, Third Internation Conference DOOD’93, LNCS 760, 23(2):125-149, 1993. [RD1267/1994] Real Decreto 1267/1994, de 26 de octubre, publicado en BOE de fecha 20/11/1990. [RD1267/1994] Real Decreto 1497/1987, de 10 de junio, publicado en BOE de fecha 11/6/1994. [RD1457/1991] Real Decreto 1457/1991, de 27 de septiembre, publicado en BOE de fecha 12/10/1991. [RD1459/1990] Real Decreto 1459/1990, de 26 de octubre, publicado en BOE de fecha 20/11/1990. [RD1460/1990] Real Decreto 1460/1990, de 26 de octubre, publicado en BOE de fecha 20/11/1990. [RD1461/1990] Real Decreto 1461/1990, publicado en BOE. [RD1497/1987] Real Decreto 1497/1987, de 27 de noviembre, publicado en BOE de fecha 14/12/1987. [RD2347/1996] Real Decreto 2347/1996, de 8 de noviembre, publicado en BOE de fecha 23/6/1996. [RD614/1997] Real Decreto 614/1997, de 25 de abril, publicado en BOE de fecha 16/5/1997. [RD779/1998] Real Decreto 779/1998, de 30 de abril, publicado en BOE de fecha 1/5/1998. [Robi65] J.A. Robinson, A Machine-Oriented Logic Based on the Resolution Principle, Journal of the ACM, 12:23-41, 1965. 53 Marco de los SGBD Profesor: Fernando Sáenz Pérez [RS80] A. Ralston, and M. Shaw, Is Computer Science Really that Unmathematical?, Communications of the ACM, vol. 23, num. 2, 1980. [RSS94] R. Ramakrishnan, D. Srivastava, S. Sudarshan, and P. Seshadir, The CORAL Deductive Database System, VLDB, 3(2):161-210, 1994. [RU95] R. Ramakrishnan and J.D. Ullman, A Survey of Research in Deductive Database Systems; The Journal of Logic Programming Volume 23, Issue 2, pp. 125-149, May 1995. [SAG78] Software AG, ADABAS Introduction, Software AG of North America, Reston, Va. [Salt76] F. Saltor. Dels fitxers classics a les bases de dates. Novática.1984. [Serv90] Servio. 1990, Programming in OPAL, Version 2.0, Servio Logic Development Corporation [SKS01] Silberschatz, A., Korth, H., and Sudarshan, S., Database System Concepts, 4th edition, McGraw-Hill, 2001. [SPARC75] ANSI/X3/SPARC Study Group on Data Base Management Systems. Interim Report. ACMFDT Bull. 7(2).1975. [SR92] Sarkar M and Reiss S P. "A Data Model for Object-Oriented Databases", Technical report CS-92-56, Brown University, Department of Computer Science, 1992. [SRLG90] Stonebraker M, Rowe L A, Lindsay B, Gray J, Carey M, Brodie M, Bernstein P, Beech D. (The Commitee for Advanced DBMS Function), The Third-Generation Database System Manifesto, SIGMOD Record, 19 (3),1990. [SRS93] D. Srivasta, R. Ramakrishnan, and S. Sudarshan, CORAL++: Adding Object-Orientation to a Logic Database Language, Proceedings of the International Conference on Very Larga Data Bases, pp. 158-170, 1993. [SS94] L. Sterling y E. Shapiro, The Art of Prolog. Advanced Programming Techniques, 2nd edition, MIT Press, 1994. [SS94] L. Sterling, and E. Shapiro, “The Art of Prolog”, The MIT Press, 1994. [SS98] F. Sáenz y R. San Emeterio, Entornos de trabajo en Informática de gestión profesional, Jornadas de Enseñanza Universitaria, JENUI’98, 1998. 54 Marco de los SGBD Profesor: Fernando Sáenz Pérez [SSU91] Silberschatz A, Stonebraker M, and Ullman J., "Database systems: Achievements and Opportunities", Communications of the ACM, 34 (10), 110-120, (October 1991) [SSU96] A. Silberschatz, M. Stonebraker, and J. Ullman (eds.), Database Research: Achievements and Opportunities Into the 21st Century, An NSF report on the future of database research, 1996. [Stal01] W. Stallings, Operating Systems: Internals and Design Principles, Prentice, 2001. [Stall01] W. Stallings, Operating Systems: Internals and Design Principles, 4th edition, Prentice, 2001. [Ston89] Stonebraker, M. Future trends in database systems. IEEE Transactions on Knowledge and Data Engineering, vol.1, (no.1):33-44, March 1989. [SZ97] Silberschatz, A., et. al., "Strategic Directions in Database Systems - Breaking Out of the Box", ACM Computing Surveys 28, 4 (December 1996). [TK78] D. Tsichritzis y A. Klug. The ANSI/X3/SPARC DBMS Framework Report of the Study Group on Database Management Systems. Inf. Syst. 1:173-191. 1978. [TM96] TM-Language, Department of Computer Science, University of Twente, 1996. [TZ86] S. Tsur and C. Zaniolo, LDL: A Logic-Based Data-Language, Proceedings of the Twelfth International Conference on Very Large Data Bases, pp 33-41, Kyoto, Japan, August 2986. [UI84] UNESCO - IFIP, A modular curriculum in Computer Science, 1984. [UI94] UNESCO - IFIP, A modular curriculum in Computer Science, 1994. [Ullm85] J.D. Ullman, Implementation of Logical Query Languages for Databases, ACM Transactions on Database Systems, 10(4):289-321, September 1985. [Ullm91] J.D. Ullman. A Comparison Between Deductive and ObjectOriented Database Systems. Deductive and Object-Oriented Databases DOOD´91. Springer Verlag LNCS-566. Munich, Alemania. Diciembre 1991. 55 Marco de los SGBD Profesor: Fernando Sáenz Pérez [Ullm95] J.D. Ullman. Database and Knowledge-Base Systems, Vols. I (Classical Database Systems) and II (The New Technologies), Computer Science Press, 1995. [Urma98] S. Urman, Oracle 8. Programación PL/SQL. Osborne/McGraw-Hill, 1998. [Wirt71] Wirth, N., “The Design of a PASCAL Compiler”, Software Practice and Experience, 1, (4) , pp. 309-333, 1971. [Wirt73] Wirth, N., Systematic Programming. An Introduction, Prentice-Hall, 1973. [Wirt76] Wirth, N., Algorithms + Data Structures = Programs, Prentice-Hall, Inc., Englewood Cliffs, N.J., 1976. [Zan98] C. Zaniolo, Deductive Databases: A Short Overview for the Handbook of Data Mining and Knowledge Discovery, 1998. 56