Bases de Datos a Gran Escala

Sesión 0 · Introducción

Curso 2026/2027

Diego Sevilla Ruiz
Departamento de Ingeniería y Tecnología de Computadores
Facultad de Informática · Universidad de Murcia

dsevilla@um.es

Logotipo BDGE

Tira «La piedra de los datos»: un explorador encuentra una piedra Rosetta con el mismo dato escrito en XML, CSV, JSON y Parquet

Bases de Datos a Gran Escala

Curso académico 2026/2027
Titulación Máster en Big Data
Cuatrimestre Primero
Curso Primero
Carácter Obligatoria
Créditos ECTS 4,5
Departamento Ingeniería y Tecnología de Computadores
BDGE · Curso 2026/2027

Profesor y horario

Actividad Profesor Horario Aula
Teoría Diego Sevilla Miércoles, 16:00–18:00 Lab. 2.4
Prácticas Diego Sevilla Jueves, 16:00–17:30 Lab. 2.4

Tutorías y contacto

Tutorías Contacto
Jueves, 11:00–14:00
y tutorías electrónicas
dsevilla@um.es
868 88 7571
Despacho 3.31
BDGE · Curso 2026/2027

Introducción a la asignatura

Tópicos

  • Modelado de datos SQL, NoSQL y NewSQL
  • Lenguajes de consulta de datos
  • Introducción a los data lakes
  • Uso de bases de datos clave/valor, documentales, columnares y de grafos
  • Formatos de intercambio de datos —CSV, XML, JSON, Parquet y Avro— y particionamiento
  • Dimensionamiento correcto de las soluciones de tratamiento de datos
BDGE · Curso 2026/2027

Data Science

Manipulación de datos · 80 % ¡Ciencia! · 20 %

La mayor parte del trabajo está en obtener, limpiar, organizar, transformar y consultar los datos

BDGE · Curso 2026/2027

BDGE · Curso 2026/2027

Data Science

  • Se pasa un 80–90 % del tiempo importando datos, organizándolos y optimizando su tratamiento
  • Estudiaremos las abstracciones del modelado de datos y las herramientas disponibles: las bases de datos
    • ¿Cómo se organizan y modelan los datos?
    • ¿Cómo se consultan de forma eficiente?
    • ¿Cómo se tratan los datos heterogéneos?
    • ¿Cómo se gestionan cantidades de datos que no caben en una máquina (big data)?
    • Modelado relacional, índices, desnormalización, duplicación y agregación
  • Estudiaremos modelado de datos SQL, NoSQL y NewSQL
BDGE · Curso 2026/2027

«…no greater barrier to effective data management will exist than the variety of incompatible data formats, non-aligned data structures, and inconsistent data semantics.»

— Doug Laney, 3-D Data Management: Controlling Data Volume, Velocity and Variety, Gartner, 2001

BDGE · Curso 2026/2027

eScience, Data Science y el cuarto paradigma

  • Tradicionalmente, la ciencia se desarrollaba de forma empírica, por observación o reproduciendo condiciones en el laboratorio
  • Desde hace unos cientos de años, los modelos teóricos se aceptan también como una forma de explicar sucesos y sugerir nuevos experimentos
  • En los últimos ~50 años, la simulación permite reproducir condiciones especiales o no reproducibles. Para modelos demasiado complejos para resolverlos analíticamente, se parte de un estado inicial y se estudia su evolución
BDGE · Curso 2026/2027

Cuarto paradigma

  • Hoy: exploración basada en datos
    • Unifica teoría, experimentación y simulación
    • Los datos se capturan por instrumentos o se generan por simulaciones
    • Son procesados por software; la información y el conocimiento extraído se almacenan en ordenadores
    • Los científicos analizan ficheros y bases de datos con nuevas herramientas estadísticas y de datos, capaces de gestionar cada vez más volumen
    • En vez de «preguntar al mundo», se combinan conjuntos de datos «descargados» de formas antes no previstas
  • Jim Gray, The Fourth Paradigm, Microsoft Research, 2009
BDGE · Curso 2026/2027

Huracán Sandy, 2012

https://rpubs.com/JoFrhwld/sandy · Howe, 2013

BDGE · Curso 2026/2027

¿Cuándo introdujo Apple «Swift»?

Una mirada al tag swift de todas las preguntas de Stack Overflow

BDGE · Curso 2026/2027

¿Bases de datos hoy?

BDGE · Curso 2026/2027

¿Bases de datos hoy?

BDGE · Curso 2026/2027

SQL, NoSQL y persistencia políglota

BDGE · Curso 2026/2027

Bases de datos más populares

BDGE · Curso 2026/2027

Bases de datos emergentes

BDGE · Curso 2026/2027

Comparación con DB-Engines

https://db-engines.com/en/ranking

BDGE · Curso 2026/2027

Bases de datos usadas en el último año

JetBrains, 2024

BDGE · Curso 2026/2027

Reciprocidad entre bases de datos

Alta en combinaciones SQL + NoSQL

BDGE · Curso 2026/2027

Tareas que más consumen tiempo

BDGE · Curso 2026/2027

Métricas más importantes en bases de datos

BDGE · Curso 2026/2027

Uso de bases de datos según el tamaño de la empresa

BDGE · Curso 2026/2027

Stack Overflow: uso de bases de datos

BDGE · Curso 2026/2027

Stack Overflow: bases de datos queridas y admiradas

BDGE · Curso 2026/2027

Resumen

  • Las bases de datos relacionales no van a desaparecer, aunque no sean las favoritas de los desarrolladores: casi la mitad combina SGBDR y NoSQL
  • NoSQL se adopta para roles especializados: Redis y MongoDB muestran una alta reciprocidad con las bases de datos relacionales
  • La IA y el machine learning impulsarán la demanda de datos
  • Aumentan las nubes especializadas y los datos gestionados
  • NoSQL se usará cada vez más con sistemas distribuidos
BDGE · Curso 2026/2027

Fuentes de datos para proceso

BDGE · Curso 2026/2027

Tipos de proceso de datos

BDGE · Curso 2026/2027

Planificación del curso

Fecha Sesión de teoría Sesión de prácticas
23/09 Introducción a la asignatura (teo y pr.) -- (festivo, apertura curso)
30/09 y 01/10 Introducción al modelado de datos, SQL (T1) Prácticas de SQL (P1)
07 y 08/10 SQL (II) (T2) Prácticas de SQL (II) (P2*)
Semana 12/10 -- -- (cambio por IN)
21 y 22/10 Introducción a los sistemas NoSQL (T3) Bases de datos de documentos (T4)
28 y 29/10 Bases de datos de documentos (P3) Bases de datos de documentos (P4*)
04 y 05/11 Bases de datos columnares (T5) Bases de datos columnares (P5)
11 y 12/11 Bases de datos columnares (II) Bases de datos columnares (P6*)
18 y 19/11 Bases de datos de grafos (T6) Práctica de bases de datos de grafos (P7*)
26/11 -- Repaso/Pruebas parciales
03/12 -- Repaso/Pruebas parciales

P2*, P4*, P6* y P7* son los boletines con entrega; el resto son prácticas guiadas

BDGE · Curso 2026/2027

Calendario de las sesiones

SEPTIEMBRE 2026                 CONTENIDO DE LA SEMANA
Lu Ma Mi Ju Vi Sá Do
21 22 23 24 25 26 27              23/09  Introducción a la asignatura
28 29 30                        30/09–01/10  T1/P1 · Modelado de datos y SQL

OCTUBRE 2026
Lu Ma Mi Ju Vi Sá Do
          1  2  3  4
 5  6  7  8  9 10 11              07–08/10  T2/P2 · SQL (II): DDL
12 13 14 15 16 17 18              12/10  (sin clase; cambio por IN)
19 20 21 22 23 24 25              21–22/10  T3/T4 · NoSQL y documentos
26 27 28 29 30 31                 28–29/10  P3/P4 · MongoDB

NOVIEMBRE 2026
Lu Ma Mi Ju Vi Sá Do
                   1
 2  3  4  5  6  7  8              04–05/11  T5/P5 · Cassandra
 9 10 11 12 13 14 15              11–12/11  T5 (II)/P6 · Cassandra
16 17 18 19 20 21 22              18–19/11  T6/P7 · Grafos y Neo4j
23 24 25 26 27 28 29              26/11  Repaso y pruebas parciales
30

DICIEMBRE 2026
Lu Ma Mi Ju Vi Sá Do
    1  2  3  4  5  6              03/12  Repaso y pruebas parciales
BDGE · Curso 2026/2027

Estructura de todos los boletines de prácticas

  • Ejercicios numerados con una celda vacía a continuación para escribir la
    solución y una comprobación automática (assert) justo después de cada uno, para saber al momento si vas bien
  • Guía de estudio para el examen: cada boletín termina con una lista de cuestiones importantes que debes saber hacer sin la IA delante
  • Sirven como guía de práctica (aprendes haciendo), guía de estudio (repasas antes del examen) e instrumento de autoevaluación (los assert te dicen si lo has entendido)
  • Los boletines marcados con * en el cronograma son evaluables: se califican y cuentan hacia la nota final
BDGE · Curso 2026/2027

Sistema de evaluación de los boletines evaluables

  • Identificador personal: al principio de cada boletín evaluable, declares tu DNI
  • Parámetros personalizados: los umbrales, años y actividad mínima de cada ejercicio salen de tu identificador; cada alumno resuelve una variante distinta
  • Entrega única: una celda final con una única consulta pequeña y determinista que, al ejecutarse, envía un «indicio» de ejecución a un servidor de evidencias
  • Acuse de recibo: el servidor devuelve un ID que identifica de forma única tu entrega; puedes comprobarlo en cualquier momento
BDGE · Curso 2026/2027

Evaluación

  • Trabajos: 20 % (opcional)
    • Propuestos por el profesor o el alumnado
    • Estudio de alguna publicación relevante y entrega de trabajo
  • Prácticas de la asignatura: 30 %
  • Pruebas periódicas, examen final o trabajo final: 50 %
BDGE · Curso 2026/2027

Dentro de ese 30 % de prácticas

  • 15 % la entrega de los boletines evaluables, con el envío automático que acabamos de ver
  • 15 % la parte práctica de la prueba final: modelar, escribir una consulta, interpretar un plan o reparar una solución
  • La prueba final es teórico-práctica, y el reparto global de la guía no cambia
  • No hay nota mínima por parte: se aprueba con 5 sobre 10 en la suma ponderada
  • No presentar las prácticas o la prueba final supone «No presentado»

El boletín no es la prueba de que has aprendido: es la preparación para demostrarlo

BDGE · Curso 2026/2027

Prácticas interactivas en el navegador

En el sitio web de la asignatura, sección Prácticas interactivas, hay páginas de prueba con consultas para cada sistema, sin instalar nada:

Sistema Sesiones Motor en el navegador Qué se practica
SQL 1 y 2 DuckDB-Wasm Consultas, CTE, funciones ventana, JSON y EXPLAIN
MongoDB 3 y 4 mingo (sintaxis PyMongo) Consultas, actualización y agregación
Cassandra 5 y 6 Simulador de CQL Particionado, clustering y optimización de consultas
Neo4j 7 Ladybug (Cypher) Patrones, recorridos y modelado, con el grafo dibujado
BDGE · Curso 2026/2027

Prácticas interactivas: cómo usarlas

  • Los datos son los de Stack Overflow en español; en Cassandra, un conjunto sintético pequeño
  • Cada ejercicio permite comprobar tu resultado contra el de referencia
  • El motor del navegador no es exactamente el de los boletines (MySQL 8, MongoDB, Cassandra, Neo4j): en Cassandra es un simulador de un subconjunto de CQL, y lo que depende del producto, como EXPLAIN ANALYZE o APOC, sigue necesitando el boletín en Colab/Jupyter
  • Sirven para practicar en cada base de datos
BDGE · Curso 2026/2027

Bibliografía

  • Nathan Marz y James Warren. Big Data: Principles and Best Practices of Scalable Realtime Data Systems, Manning, 2015
  • Eric Redmond y Jim R. Wilson. Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement, Pragmatic Bookshelf, 2012
  • Pramod J. Sadalage y Martin Fowler. NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence, Addison-Wesley, 2013
BDGE · Curso 2026/2027

Repositorio de la asignatura

$ git clone --depth 1 -b 26-27 https://github.com/dsevilla/bdge.git
$ cd bdge

La copia contiene todos los archivos actuales de 26-27, sin descargar el historial anterior

No hace falta clonarlo para las prácticas: usaremos Google Colab; para ejecutarlas en local con Docker, ver las últimas diapositivas

BDGE · Curso 2026/2027

Google Colab

https://colab.research.google.com/

BDGE · Curso 2026/2027

Google Colab

  • En Archivo → Abrir cuaderno, seleccionar GitHub
    • Habrá que dar permiso de acceso; pueden limitarse a repositorios públicos
  • En el primer cuadro de texto: dsevilla
  • Repositorio: dsevilla/bdge; rama: 26-27
  • Las sesiones están en subdirectorios; por ejemplo, intro/sesion0.ipynb
  • Al terminar, usar Archivo → Guardar cuaderno en:
    • Drive, o
    • GitHub (en un repositorio propio, que puede ser privado)
BDGE · Curso 2026/2027

Google Colab

BDGE · Curso 2026/2027

Google Colab

BDGE · Curso 2026/2027

Ejecutar los notebooks en local: Docker

Cada directorio de sesiones (intro, sql, mongo, cassandra, neo4j) trae un docker-compose.yml que levanta Jupyter y, salvo en intro, la base de datos del tema

$ git clone --depth 1 -b 26-27 https://github.com/dsevilla/bdge.git
$ cd bdge/sql           # igual para intro, mongo, cassandra, neo4j...
$ docker compose up
  • Jupyter en http://localhost:8888 (token bdge); lo que se guarda queda en el repositorio local
  • Ctrl+C para parar; docker compose down elimina los contenedores
  • En cassandra, añadir -f docker-compose-cassandra.yml
BDGE · Curso 2026/2027

Cassandra: uno o dos nodos

  • docker-compose-cassandra.yml: un nodo, la más ligera y la habitual
  • docker-compose-cassandra-2.yml: dos nodos (cassandra1, cassandra2) en la misma red: un clúster pequeño con replicación; más memoria (4 GB de heap por nodo) y arranque más lento (hasta un par de minutos)
  • Con dos nodos, el notebook corre en el contenedor notebook de esa red; desde el equipo sólo va cqlsh (puertos 9042 y 9043): cada nodo publica su dirección dentro de la red de Docker
$ cd cassandra
$ docker compose -f docker-compose-cassandra-2.yml up
BDGE · Curso 2026/2027