Atributos
Sigla: 
CI-0141
Créditos: 
4
Horas: 
5
Clasificación: 
Curso propio
Énfasis y ciclo: 
Tecnología de la Información 4.I
Ingeniería de Software 4.I
Ciencias de la Computación 4.II
Descripción: 

Las bases de datos relacionales centralizadas representan una alternativa de almacenamiento bien conocida, para la cual se pueden aplicar técnicas de mejoramiento de desempeño de consultas frente al constante crecimiento del volumen de los datos. Además, aplicando el paradigma multidimensional al almacenamiento relacional, se pueden guardar y analizar datos históricos de manera más eficiente. Sin embargo, el creciente volumen de datos y variedad de aplicaciones no tradicionales (por ejemplo, datos que por su naturaleza forman grafos o son semiestructurados o no estructurados) requieren un conocimiento nuevo sobre alternativas de modelado e implementación de bases de datos. En respuesta a estos retos, este curso se enfoca hacia diferentes mecanismos para optimizar el desempeño de consultas en bases de datos relacionales con grandes volúmenes de datos, introduce el paradigma de diseño multidimensional para almacenar y analizar datos históricos e incluye conceptos relacionados con bases de datos distribuidas y paralelas para solucionar los problemas de eficiencia y distribución geográfica de datos. Además, este curso introduce a los estudiantes a bases de datos del paradigma NoSQL tales como orientadas a documentos, orientadas a grafos y orientadas a columnas, para satisfacer las necesidades de aplicaciones no tradicionales y el manejo de Big data. 

Objetivo general: 

El objetivo general del curso es que los estudiantes desarrollen habilidades para aplicar mecanismos de optimización de consultas e implementar diferentes tipos de bases de datos multidimensionales, paralelas, distribuidas y NoSQL, mediante estrategias que integren lo teórico y lo práctico, incluyendo un fuerte componente de actividades en el laboratorio, con el fin de que construyan bases de datos eficientes y acordes a las particularidades del problema a resolver.   

Objetivos específicos: 

Durante este curso el estudiante desarrollará habilidades para:

  1. Optimizar el desempeño de consultas en bases de datos relacionales mediante diversos mecanismos disponibles en los Sistemas de Gestión de Bases de Datos para mejorar el tiempo de ejecución de las consultas más frecuentes en un sistema. 
  2. Diseñar e implementar  bases de datos relacionales mediante la aplicación del paradigma multidimensional, con el propósito de construir un almacenamiento de datos históricos apto para el análisis.
  3. Experimentar con bases de datos distribuidas y paralelas mediante ejercicios prácticos, para resolver problemas de eficiencia y distribución geográfica de datos.
  4. Construir bases de datos no tradicionales usando las plataformas NoSQL para crear sistemas que satisfagan las necesidades de aplicaciones no tradicionales y manejo de Big data.
Contenidos: 
Objetivo específico Eje temático Desglose
1 Procesamiento y optimización de consultas Optimizadores basados en heurísticas y costo, verificación del plan de ejecución y métricas de desempeño de consultas. Estimación de costo para diferentes operaciones. Diferentes mecanismos de optimización de consultas.
2 Procesamiento y optimización de consultas Diseño e implementación: Concepto de bases de datos analíticas con datos históricos. Diferencias entre bases de datos operacionales o transaccionales y bases de datos analíticas. Modelo multidimensional para el almacenamiento de datos históricos y facilidades de consultas. Aplicación del modelado multidimensional para el diseño e implementación de almacenes de datos.
Consultas: Concepto de cubo OLAP (On-Line Analytical Processing) y su relación con el modelo multidimensional. Creación de cubos a partir de los almacenes de datos. Consultas automatizadas tipo drill-down, roll-up y pivot.
3 Bases de datos distribuidas y paralelas Bases de datos distribuidas: arquitectura, distribución y replicación de datos, procesamiento de consultas, manejo de transacciones, control de concurrencia distribuido, fallas y recuperación del sistema.
Bases de datos paralelas: arquitectura, distribución de datos, procesamiento paralelo de consultas y balanceo de carga.
4 Bases de datos NoSQL y su relación con Big Data Conceptos básicos de modelado e implementación: Tipos de bases de datos NoSQL: llave-valor, orientadas a documentos, orientadas a grafos y orientadas a columnas.
Consultas y transacciones: creación de consultas, concepto de transacción y diferentes acercamientos sobre aspectos de consistencia y disponibilidad, por ejemplo ACID (Atomicity-Consistency-Isolation-Durability), CAP (Consistency-Availability-Partition Tolerance) y BASE (Basically Available – Soft State –Eventual Consistency).
Uso de bases de datos NoSQL: Selección del tipo de base de datos NoSQL de acuerdo al tipo de aplicación. Big data y su manejo en las bases de datos NoSQL.
Bibliografía: 
  1. Bernstein P.A. y Newcomer, E. “Principles of Transaction Processing”, 2da edición. Morgan Kaufman Publisher, 2009.
  2. Connolly T.M. y Begg C.E. “Database Systems: A Practical Approach to Design, Implementation and Management”, 5ta ed. Pearson/Addison-Wesley, 2009.
  3. Elmasri R. y Navathe S. “Fundamentos de Sistemas de Bases de Datos”, 6ta ed. Pearson-Addison Wesley, 2010.
  4. Floratou, A., Teletia, N., DeWitt, D.J., Patel, J.M. & Zhang, D. Can the elephants handle the NoSQL onslaught? Proceedings of the VLDB Endowment, Vol. 5, No. 12, Agosto 2012. 
  5. Garcia-Molina H., Ullman J., y Widom J. “Database Systems: The Complete Book”, 2da ed.  Pearson, 2008. 
  6. Gray J. y Reuter A.  “Transactions Processing: Concepts and Techniques”. Morgan Kaufman Publishers, 1995. 
  7. Han, J., Haihong, E., Le, G., & Du, J. Survey on NoSQL Database. Proceedings of the 6th International Conference on Pervasive Computing and Applications (ICPCA), IEEE, 2011. 
  8. Hewitt E. “Cassandra: the definitive guide”. O´Reilly, 2010.Hellerstein M. y Stonebraker, M.  “Readings in Database Systems”, 4ta edición.   Morgan Kaufman Publishers, 2005.
  9. Indrawan­Satiago, M. Database Research: Are We At A Crossroad? Reflection on NoSQL. Proceedings of the 15th International Conference on Network­Based Information Systems, IEEE, 2012. 
  10. Leavitt, N. Will NoSQL Databases Live Up to Their Promise? In IEEE Computer, Vol. 43, No. 2, Febrero 2010. 
  11. Malinowski E. “Material de Apoyo Bases de Datos I” (folleto del curso), Escuela de Ciencias de la Computación e Informática, UCR, 2014. 
  12. Sodergren, P. & Englund, B. Investigating NoSQL from a SQL Perspective. Tesis de Bachillerato en Ingeniería y Administración, Royal Institute of Technology (KTH), Stockholm, Sweden, 2011. 
  13. Ramakrishnan R. y Gehrke J. “Database Management Systems”, 3ra ed. McGraw-Hill, 2002. 
  14. Tiwari, S. “Professional NoSQL”. Wiley, 2011. 
     
LIberación de responsabilidad: 

Este no es un documento oficial. Documentos oficiales se entregan en la secretaría de la escuela.