Contenidos y Bibliografía

Contenidos:

1.- Nociones sobre sistemas de Bases de Datos. Propósito y utilidad de los Sistemas de Gestión de Bases de Datos (SGBD). Arquitectura de los SGBD. Niveles conceptual, externo e interno y sus correspondencias. Acceso a los datos. Roles en el ambiente de las Bases de Datos. Evolución: Sistemas pre-relacionales, relacionales y post-relacionales. Introducción a las bases de datos relacionales. Lenguajes de bases de datos relacionales y sus componentes.

2.- Lenguaje SQL. Lenguaje de Definición de datos (DDL): creación, borrado y modificación de tablas. Lenguaje de Manipulación de datos (DML): Atas, bajas y cambios de datos. Consultas simples y complejas. Ordenación de resultados. Expresiones condicionales. Funciones de agregación. Subconsultas. Operadores existenciales. Ensambles internos y externos. Operadores algebraicos. Correspondencia algebra relacional - álgebra de bolsas - SQL. Funciones de agrupamiento.

3.- Integridad en bases de datos relacionales. Conceptos de integridad semántica. Restricciones de integridad declarativas: Restricciones de dominio, de atributo, de relación y generales. Dependencias: clave primaria, alternativa y foránea. Restricciones de Integridad Referencial: acciones referenciales y tipos de matching. Información faltante: lógica trivaluada. Otras reglas del negocio: implementación mediante SQL procedural. Triggers: tiempo de activación, eventos disparadores, granularidad, condición y acción. Modelo de ejecución según SQL.

4.- Vistas. Definición. Ventajas, desventajas y aplicaciones. Vistas en SQL. Recuperación y propagación de actualizaciones. Vistas actualizables. Triggers instead-of. Vistas materializables.

5.- Optimización de consultas. Objetivos de la optimización de consultas. Costo de las operaciones. Reglas de optimización. Optimización heurística. Estrategias generales. Planes de evaluación. Utilización de índices y estimación de tamaño. Consultas ‘solo-índice’.

6.- Seguridad. Seguridad: Conceptos. Entorno de protección. Objetivos y requerimientos. Control de accesos basado en autorizaciones. Vistas como mecanismo de protección. Encriptado de datos. SQL inyectado. Control mandatorio y discrecional en SQL: GRANT y REVOKE. Roles y asignaciones de privilegios.

7.- Control de concurrencia. Procesamiento de Transacciones. Conceptos básicos. Propiedades ACID de las transacciones. Operaciones conflictivas. Problemas típicos de la concurrencia. Planes de ejecución de operaciones concurrentes. Serializabilidad. Técnicas de control de concurrencia. Bloqueos. Abrazo mortal e inanición. Protocolo de dos fases. Estampado de tiempos. Granularidad de los ítems. Concurrencia en SQL: niveles de aislamiento.

8.- Recuperación ante fallas. Conceptos de recuperación. Tipos de fallas. Log de transacciones. Checkpoints. Actualizaciones inmediatas y diferidas. Técnicas de Recuperación. Algoritmos de recuperación basada en el Log. Estrategia de doble paginación.

9.- Bases de datos post-relacionales. Nuevas aplicaciones. Fortalezas y debilidades de los sistemas relacionales. Bases de datos objeto-relacionales. Soporte objeto-relacional en SQL. Modelos de bases de datos avanzadas. Bases de datos distribuidas. Apoyo a la toma de decisiones. Nociones sobre bases de datos no-SQL y orientadas a dispositivos móviles.

Bibliografía:

  • Codd E., "The relational model for database management". Version 2, Addison Wesley Publ. Co., 1990

  • Connolly T., Begg C., "Database Systems. A Practical Approach to Design, Implementation, and Management", Addison Wesley, 1999

  • Date C.J., "An Introduction to Database Systems", 7° ed., Addison Wesley, 2000

  • Date C.J.,Darwen H., "A Guide to The SQL Standard", Addison-Wesley, 1997

  • Elmasri R., Navathe S., "Fundamentals of Database Systems", Pearson, 2016

  • Ramakrishnan R., Gehrke J. "Database Management Systems", 3° ed., McGraw-Hill, 2002

  • Silberschatz, A., Korth, H, Sudarshan, S, "Database System Concepts", 6° ed., WCB/McGraw Hill, 2010

  • Stonebraker M., ""Object-Relational DBMSs. The Next Great Wave", Morgan Kauffman Publishers, 1996

  • Ullman J., Widom J., "A First Course in Database Systems", Prentice Hall, 2007