EUR 199.00

Bases de datos NoSQL y datos semiestructurados

Categoría de cursosCiencia de datos

Aprende a guardar, validar y consultar datos que no caben bien en una tabla: documentos XML y JSON, catálogos con atributos que cambian de un producto a otro, perfiles de usuario, sesiones, rankings o redes de relaciones. Es un curso de nivel grado en ingeniería informática y la tercera asignatura de bases de datos: da por sabidos el modelo relacional y SQL, y recorre los datos semiestructurados (XML con XML Schema, XPath y XQuery, y cómo transformarlo con XSLT, modificarlo con XQuery Update y validar sus reglas de negocio con Schematron; JSON con JSON Schema), cómo los maneja PostgreSQL (objeto-relacional, SQL/XML y JSONB), las bases de datos documentales con MongoDB, el resto de familias NoSQL (clave-valor, columna ancha y grafos) y una base de datos de grafos, Neo4j, con su lenguaje Cypher, para terminar con la replicación, el particionado, el teorema CAP y los criterios para elegir el modelo adecuado en cada caso.

Qué incluye: 12 temas y 4 entregas evaluables

  • Módulo 1 · Documentos XML — Tema 1 · Datos semiestructurados y documentos XML; Tema 2 · XML Schema: tipos, restricciones y diseño de vocabularios; Tema 3 · Consultas sobre XML con XPath y XQuery; Tema 12 · XML en profundidad: transformar con XSLT, actualizar con XQuery Update y validar reglas con Schematron; Práctica 1 · Un vocabulario XML validado y consultado
  • Módulo 2 · Datos semiestructurados en PostgreSQL — Tema 4 · PostgreSQL objeto-relacional y SQL/XML; Tema 5 · JSON, JSON Schema y JSONB en PostgreSQL; Práctica 2 · Una base de datos híbrida en PostgreSQL
  • Módulo 3 · Bases de datos documentales con MongoDB — Tema 6 · El movimiento NoSQL y MongoDB: documentos y operaciones CRUD; Tema 7 · Agregación, índices y validación en MongoDB; Tema 8 · Modelado de datos orientado a documentos; Práctica 3 · Diseño y consulta de una base documental
  • Módulo 4 · Sistemas NoSQL distribuidos — Tema 9 · Distribución: replicación, particionado y consistencia; Tema 10 · Clave-valor, columna ancha y grafos: cómo elegir el modelo; Tema 11 · Bases de datos de grafos con Neo4j y Cypher; Proyecto final · Persistencia políglota para una plataforma de recetas

Cada tema trae un PDF propio, un notebook de entrenamiento con ejercicios autocorregibles y su solución, y una autoevaluación que desbloquea lo siguiente. Las entregas plantean problemas abiertos, como en un proyecto real: diseñar y validar un vocabulario XML de intercambio, combinar tablas, tipos compuestos, XML y JSONB en una misma base de datos, modelar y consultar una base documental con sus índices y, en el Proyecto final, repartir los datos de una plataforma entre varios almacenes y justificar cada decisión.

A quién va dirigido: estudiantes de grado en ingeniería informática o titulaciones afines que ya conocen las bases de datos relacionales, y profesionales que trabajan con SQL y necesitan integrar documentos XML o JSON, o decidir si un proyecto debe usar una base NoSQL y cuál.

Metodología y herramientas: todo se trabaja en notebooks de Jupyter con Python — lxml, xmlschema y Saxon (saxonche) para XML, XQuery, XSLT y Schematron, jsonschema, psycopg para PostgreSQL, pymongo para MongoDB, redis/fakeredis, networkx y el driver de Neo4j —, con PostgreSQL, MongoDB y Neo4j instalados en tu ordenador (Windows, macOS o Linux; la guía de instalación paso a paso está en el curso) y Redis como opcional. Dedicación estimada: 152 horas de temas y entregas, más una hora de presentación (unas 10 horas semanales durante 16 semanas). Requisitos: modelo relacional y SQL (consultas con JOIN, GROUP BY y subconsultas), nociones de transacciones e índices y programación básica en Python. Cursos previos recomendados: Diseño de bases de datos y Diseño avanzado de bases de datos.

Profesor: Leroy Deniz