Curricula CS-UNI
5.53. CS370. Big Data (Obligatorio)

5.53. CS370. Big Data (Obligatorio)

  • Semestre: 9no Sem. Créditos: 3
  • Horas del curso: Teoría: 1 horas; Práctica: 2 horas; Laboratorio: 2 horas;
  • Prerrequisitos:

    • CS3P1. Computación Paralela y Distribuída (8vo Sem)

Figura 5.53: Mapa de Conexión. CS370 Big Data

5.53.1. Justificación

En la era actual, el volumen, velocidad y variedad de los datos superan las capacidades de los sistemas tradicionales de almacenamiento y procesamiento. Este curso introduce los conceptos y tecnologías fundamentales del Big Data. Cubre sistemas de archivos distribuidos, frameworks de procesamiento paralelo, bases de datos NoSQL y flujo de datos en tiempo real. Los estudiantes aprenderán a diseñar arquitecturas escalables para extraer valor de conjuntos de datos masivos.

5.53.2. Objetivos Generales

1.
Comprender las 5 V’s del Big Data y su impacto en el diseño de sistemas.
2.
Diseñar e implementar soluciones escalables usando el paradigma MapReduce.
3.
Dominar el uso de sistemas de archivos distribuidos como HDFS.
4.
Analizar diferentes patrones arquitectónicos para Big Data (Lambda y Kappa).
5.
Aplicar técnicas de procesamiento de flujos para análisis de datos en tiempo real.

5.53.3. Contribución a los resultados (Outcomes)

AG-C11) Uso de Herramientas: Aplica herramientas modernas de computación en la resolución de problemas. (Usage)

AG-C09) Diseño y Desarrollo de Soluciones: Diseña, implementa y evalúa soluciones para problemas complejos de computación. (Usage)

5.53.4. Contenido

5.53.4.1. Conceptos Fundamentales de Sistemas de Bases de Datos (12 horas) [Habilidades AG-C09,AG-C11]

Referencias Bibliográficas: [White, 2015Karau et al., 2017]

Temas

1.
Propósito y ventajas de los sistemas de bases de datos
2.
Componentes de los sistemas de bases de datos
3.
Diseño de funciones fundamentales de DBMS (por ejemplo, mecanismos de consulta, gestión de transacciones, gestión de búfer, métodos de acceso)
4.
Arquitectura de base de datos, independencia de datos y abstracción de datos
5.
Gestión de transacciones
6.
Normalización
7.
Enfoques para gestionar grandes volúmenes de datos (por ejemplo, sistemas de bases de datos NoSQL, uso de MapReduce)
8.
Cómo soportar aplicaciones solo de CRUD
9.
Bases de datos distribuidas/sistemas basados en la nube
10.
Datos estructurados, semiestructurados y no estructurados
11.
Uso de un lenguaje de consulta declarativo
12.
Sistemas que soportan contenido estructurado y/o de flujo

Aprendizaje esperado (Learning Outcomes)

1.
Identificar al menos cuatro ventajas que proporciona el uso de un sistema de base de datos [Analizar]
2.
Enumerar los componentes de un sistema de base de datos (relacional) [Enumerar]
3.
Seguir una consulta a medida que es procesada por los componentes de un sistema de base de datos (relacional) [Analizar]
4.
Defender el valor de la independencia de datos [Defender]
5.
Componer una consulta simple de selección-proyección-unión en SQL [Componer]
6.
Enumerar las cuatro propiedades de un gestor de transacciones correcto [Enumerar]
7.
Describir las ventajas de eliminar datos duplicados repetidos [Describir]
8.
Esbozar cómo MapReduce usa paralelismo para procesar datos eficientemente [Esquematizar/Esbozar]
9.
Evaluar las diferencias entre bases de datos estructuradas y semiestructuradas/no estructuradas [Evaluar]
5.53.4.2. Bases de Datos Distribuidas/Computación en la Nube (12 horas) [Habilidades AG-C09,AG-C11]

Referencias Bibliográficas: [White, 2015Lin and Dyer, 2010]

Temas

1.
DBMS Distribuido:
a)
Almacenamiento de datos distribuido
b)
Procesamiento de consultas distribuido
c)
Modelo de transacción distribuida
d)
Soluciones homogéneas y heterogéneas
e)
Bases de datos distribuidas cliente-servidor
2.
DBMS Paralelo:
a)
Arquitecturas de DBMS paralelo: memoria compartida, disco compartido, nada compartido
b)
Aceleración y escalamiento, por ejemplo, uso del modelo de procesamiento MapReduce
c)
Replicación de datos y modelos de consistencia débil

Aprendizaje esperado (Learning Outcomes)

1.
Describir los componentes clave de un DBMS distribuido, incluyendo almacenamiento de datos distribuido, procesamiento de consultas y gestión de transacciones [Describir]
2.
Analizar las ventajas y desventajas entre arquitecturas de DBMS paralelo: memoria compartida, disco compartido y nada compartido [Analizar]
3.
Describir estrategias de replicación de datos y modelos de consistencia débil en sistemas de bases de datos distribuidas [Describir]
5.53.4.3. Sistemas NoSQL (12 horas) [Habilidades AG-C09,AG-C11]

Referencias Bibliográficas: [Sadalage and Fowler, 2012Kleppmann, 2017b]

Temas

1.
¿Por qué NoSQL? (por ejemplo, Desajuste de impedancia entre Aplicación [CRUD] y RDBMS)
2.
Modelo de datos Clave-Valor y Documento
3.
Sistemas de almacenamiento (por ejemplo, sistemas Clave-Valor, Lagos de Datos (Data Lakes))
4.
Modelos de Distribución (Fragmentación y Replicación)
5.
Bases de Datos de Grafos
6.
Modelos de Consistencia (Actualización y Lectura, consistencia de quórum, teorema CAP)
7.
Modelo de procesamiento (por ejemplo, Map-Reduce, map-reduce multi-etapa, map-reduce incremental)
8.
Estudios de Caso: Sistema de almacenamiento en la nube (por ejemplo, S3); Bases de datos de grafos; Çuándo no usar NoSQL"

Aprendizaje esperado (Learning Outcomes)

1.
Desarrollar un caso de uso para el uso de NoSQL sobre RDBMS [Crear]
2.
Describir las características definitorias detrás de los modelos de datos basados en Clave-Valor y Documentos [Describir]
5.53.4.4. Análisis de Datos (12 horas) [Habilidades AG-C09,AG-C11]

Referencias Bibliográficas: [Matei et al., 2012Bill and Matei, 2018Kleppmann, 2017bPsaltis, 2017]

Temas

1.
Técnicas exploratorias de datos (motivación, representación, estadísticas descriptivas, visualizaciones)
2.
Ciclo de vida de ciencia de datos: comprensión del negocio, comprensión de datos, preparación de datos, modelado, evaluación, despliegue y aceptación del usuario
3.
Algoritmos de minería de datos y aprendizaje automático: por ejemplo, clasificación, agrupamiento, asociación, regresión
4.
Adquisición y gobernanza de datos
5.
Consideraciones de seguridad y privacidad de datos
6.
Equidad y sesgo de datos
7.
Técnicas de visualización de datos y su uso en análisis de datos
8.
Resolución de Entidades

Aprendizaje esperado (Learning Outcomes)

1.
Describir varios enfoques de exploración de datos, incluyendo visualización, para comprender conjuntos de datos no familiares [Describir]
2.
Aplicar varios enfoques de exploración de datos para comprender conjuntos de datos no familiares [Aplicar]
3.
Describir algoritmos básicos de aprendizaje automático/minería de datos y cuándo son apropiados para su uso [Describir]
4.
Aplicar varios algoritmos de aprendizaje automático/minería de datos [Aplicar]
5.
Describir consideraciones legales y éticas en la adquisición, uso y modificación de conjuntos de datos [Describir]
6.
Describir problemas de equidad y sesgo en la recolección y uso de datos [Describir]

5.53.5. Referencias Bibliográficas

[White, 2015]

[Karau et al., 2017]

[Lin and Dyer, 2010]

[Sadalage and Fowler, 2012]

[Kleppmann, 2017b]

[Matei et al., 2012]

[Bill and Matei, 2018]

[Psaltis, 2017]

¿Encontraste una errata, un curso desactualizado, un enlace roto, o tienes una sugerencia? Cuéntanos.

Escanea para abrir en tu teléfono