Módulo 3: Bases de Datos NoSQL

Módulo 3: Bases de Datos NoSQL

Objetivos

Durante todo el mes de diciembre abordaremos el Módulo 3, Bases de datos NoSQL. El objetivo de este módulo es introducir las bases de datos NoSQL y adquirir competencias en el uso de Apache Cassandra y MongoDB. En el caso de Cassandra se pretende que el alumno comprenda las como el diseño de la base de datos es la pieza central para obtener un alto rendimiento en un modelo de datos orientado a columnas. En el caso de MongoDB el alumno deberá aprovechar la flexibilidad de este sistema gestor de bases de datos para ofrecer un sistema de almacenamiento eficiente, incluyendo el análisis de las posibilidades de replicación y distribución de los datos.

Tecnologías: Apache Cassandra, MongoDB, Mongo Compass, Anaconda (Python)
  1. En el caso de Cassandra, se pretende que el alumno comprenda como el diseño de la base de datos es la pieza central para obtener un alto rendimiento en un modelo de datos orientado a columnas.
  2. En el caso de MongoDB el alumno deberá aprovechar la flexibilidad de este sistema gestor de bases de datos para ofrecer un sistema de almacenamiento eficiente, incluyendo el análisis de las posibilidades de replicación y distribución de los datos.

Docentes

María del Mar Roldán García
Co-directora académica, Profesora Contratado Doctor, UMA
mmar@lcc.uma.es

Experta en bases de datos y aplicaciones semánticas, razonamiento escalable y aplicación de la semántica en algoritmos de análisis del Big Data. Imparte el módulo de bases de datos relacionales y el módulo de bases de datos NoSQL, concretamente Cassandra.

Ismael Navas Delgado
Profesor Titular de Universidad, UMA

Experto en integración de datos, Web Semántica y Linked Data y análisis del Big Data aplicado a problemas en ciencia. Imparte el módulo de bases de datos NoSQL, concretamente MongoDB.

Investigador activo con el objetivo de mejorar sus áreas de especialización. Profesor de Novel con el objetivo de mejorar actividades docentes.
Especialidades: Web Semántica Bioinformática Integración de datos Linked Data.

Pre-Requisitos

Conocimientos de SQL https://www.datastax.com/resources/whitepapers/nosql (Páginas 1 a 11)
Comandos básicos de Linux:
https://hipertextual.com/archivo/2014/04/comandos-basicos-terminal/
https://hipertextual.com/archivo/2014/05/comandos-basicos-terminal-parteii/
https://hipertextual.com/archivo/2014/07/comandos-basicos-terminal-parteiii/

Planificación Docente

Clase 1: Comprender los principales modelos de datos NoSQL, e iniciarse en el uso de MongoDB usando Compass.
Trabajo previo necesario: Why NoSQL? Casos prácticos de MongoDB en ebay
Tarea 1 (MANDATORY, INDIVIDUAL): Resolver una lista de consultas de tipo básico (Find) usando el modelo de datos de restaurantes de Nueva York. La tarea incluye el trabajo de carga de datos en MongoDB. Se espera que el alumno adquiera competencias en el uso de Mongo para recuperar datos con consultas simples.

Clase 2: El objetivo de esta lección es comprender el framework de agregación y comenzar a usarlo desde el Shell de MongoDB.
Trabajo previo necesario: Caso práctico de MongoDB en Metlife
Tarea 2 (ADVANCED, INDIVIDUAL): Resolver una lista de consultas que requieren el uso del framework de agregación (Aggregate), usando el modelo de datos de restaurantes de Nueva York. Es necesario que el alumno haya completado la tarea 1 para abordar estas tareas. Se espera que el alumno adquiera competencias en el uso avanzado de Mongo para recuperar datos.

Clase 3: El objetivo es que los alumnos se inicien en el uso de Python, y practiquen mediante su uso para acceder a MongoDB usando pyMongo.
Trabajo previo necesario: Introducción a Python
Tarea 3 (MANDATORY, INDIVIDUAL): Realizar una aplicación Python que ejecute las consultas de la Tarea 1, y muestre los resultados por pantalla. Es necesario haber completado la Tarea 1.

Clase 4: El objetivo es que el alumno comprenda los índices que ofrece MongoDB, incluyendo los índices espaciales que permiten realizar consultas dependientes de características espaciales de los datos. Trabajo previo necesario: Caso práctico de MongoDB en Bosch Tarea 4 (ADVANCED, INDIVIDUAL): Localizar en repositorios de Open Data un conjunto de datos espaciales, cargar los datos en MongoDB y diseñar 5 consultas espaciales sobre dicho repositorio. Es necesario que el alumno haya completado la Tarea 1.

Clase 5: El objetivo es introducir a los alumnos el uso de réplica sets en MongoDB. Estas técnicas permiten obtener sistemas más estables y resistentes a fallos, además de un mejor rendimiento.
Trabajo previo necesario: Caso práctico de MongoDB en OTTO

Clase 6: El objetivo es introducir a los alumnos el uso de sharding en MongoDB. Estas técnicas permiten obtener sistemas más estables y resistentes a fallos, además de un mejor rendimiento.
Tarea 5 (CHALLENGE, GRUPO): Diseñar una estructura para la colección de restaurantes que use replica sets y sharding. El objetivo es que se realicen de forma más eficiente algunas de las consultas de la Tarea 1, a la vez que ofrecer un entorno que consiga una mayor estabilidad frente a fallos puntuales. El alumno deberá entregar describir el proceso de configuración, además de describir que consultas se ven mejoradas (midiendo además que esto es realmente así).

Clase 7: Los objetivos de esta clase son conocer y comprender el modelo de datos de Cassandra y analizarlo en contraposición al modelo relacional, aprender a usar Cassandra y comprender y utilizar el subconjunto DDL (Lenguaje de Definición de Datos) de CQL (Cassandra Query Language)
Trabajo previo: Lectura del documento “Introducción a Apache Cassandra” de Datastax.

Clase 8: Los objetivos de esta clase son aprender a usar DevCenter, un interfaz gráfico para acceder a Cassandra y comprender y utilizar el subconjunto DML (Lenguaje de manipulación de datos) de CQL (Cassandra Query Language).
Tarea 6 (MANDATORY, INDIVIDUAL): Realización de consultas sencillas sobre la base de datos Cassandra creada en la tarea anterior.

Clase 9: El objetivo de esta clase es introducir el modelado conceptual de bases de datos Cassandra. Trabajo previo necesario: Lectura del artículo sobre el modelado conceptual en Cassandra.
Tarea 7 (MANDATORY, GROUP): Diseñar e implementar una pequeña base de datos en Cassandra.
Tarea 8 (CHALLENGE, GRUPO): Realizar consultas espaciales en Cassandra. Se deben definir la o las tablas necesarias y cargar los datos proporcionados en Cassandra, realizando las transformaciones necesarias a los mismos. Después se implementarán consultas espaciales sobre dichos datos. Se valorará el desarrollo de una pequeña interfaz gráfica que muestre los resultados en un mapa.

Related Posts

Deja un comentario

Your email address will not be published. Required fields are marked.*

× ¿Cómo puedo ayudarte?