Bases de Datos NoSQL
Horas de clases semanales:
Carga horaria cuatrimestral:
Duración:
Docentes:
Temario /Programa
Objetivos
El modelo relacional para almacenar datos estructurados en bases de datos y su lenguaje asociado, SQL (structured query language), fueron casi excluyentes durante más de 40 años. Sin embargo, en los últimos ganaron importancia ciertos demandas que marcaron límites en la aplicabilidad general de las bases de datos relacionales. Entre estos nuevos requerimientos se pueden mencionar la explosión en el tamaño de las bases de datos, la necesidad de almacenar y gestionar datos no estructurados o la popularización del análisis de datos organizados en grafos. La respuesta a estas demandas fue la creación de una serie de nuevos modelos de bases de datos de diferente naturaleza, agrupados todos bajo el término paraguas de “NoSQL”. Por un lado, estos nuevos modelos satisfacen una o varias de las demandas que los modelos relacionales no satisfacen; sin embargo, esto ocurre sacrificando alguna característica
relacionada con la consistencia continua de los datos, algo que distingue a las bases de datos relacionales. El diseño de las bases de datos NoSQL no responde a la aplicación de un paradigma general, como es el modelo relacional, sino que se crearon para responder a las demandas de diferentes tipos de datos y necesidades de gestión (grandes volúmenes, velocidad de acceso a los datos, etc.).
El uso de bases de datos NoSQL está bien establecido, y su uso continuará creciendo. Debido a las características y casos de aplicación mencionados, constituyen herramientas que la mayoría de los científicos de datos necesitará utilizar en su carrera profesional. Esto determina los tres objetivos de este curso, que son: ofrecer una introducción a las bases de datos NoSQL, discutir los casos de aplicación de sus cuatro tipos principales (documentos, clave-valor,
columnar y grafos) y ofrecer entrenamiento en el laboratorio con una herramienta de cada clase. Dentro de los productos más exitosos de cada clase de base de datos NoSQL existe uno o más que es de código abierto, de manera que se seleccionará uno de ellos para cada trabajo práctico.
Modalidad de trabajo: Teórico-práctica
En la parte teórica de la materia, se desarrollarán los temas del programa. realizando exposiciones, demostrando la utilización de software o resolviendo un caso práctico. En la parte práctica los alumnos trabajarán con una base de datos común para todas las unidades, y en cada trabajo práctico (TP) se realizarán ejercicios de carga de datos, consultas y creación de reportes utilizando una herramienta de código abierto para el modelo SQL (unidad y práctica 0), y para los modelos NoSQL (unidades y TPs subsecuentes). Como parte de la puesta en común de cada TP se discutirán las ventajas y desventajas del modelo seleccionado para esa clase. Para aprobar la materia se deberán presentar informes de cada trabajo práctico y una exposición final.
Programa
Unidad 0. Repaso de bases de datos relacionales y lenguaje SQL.
Origen y necesidades a cubrir. El modelo relacional. Integridad referencial. Propiedades ACID. Robustez y escalabilidad en SQL. Limitaciones. Repaso de consultas básicas
Unidad 1. Introducción a NoSQL
Origen y necesidades a cubrir. Evolución histórica. Teorema CAP. Propiedades ACID vs Propiedades BASE. Recorrido introductorio por los cuatro tipos básicos de enfoques que existen actualmente.
Unidad 2. Bases de datos clave – valor
Organización de la información en claves y valores. Arquitectura típica. Caso de uso y operaciones típicas. Pros y contras del enfoque.
Unidad 3. Bases de datos columnares
Caso de uso típico. Arquitectura típica: clave,columnas, familias de columnas. Pros y contras del enfoque. Seguimiento de datos en el tiempo.
Unidad 4. Bases de datos de documentos
Arquitectura típica (clave, documentos, colecciones, mapas). Almacenamiento y consultas de
documentos no estructurados a gran escala. Pros y contras del enfoque.
Unidad 5. Bases de datos de grafos
Organización de datos en grafos. Caso de uso típico. Consultas sobre grafos. Pros y contras del enfoque.