Diseño avanzado de bases de datos
Aprende a diseñar bases de datos que sigan funcionando cuando crecen: correctas, coherentes y rápidas. Es un curso de nivel de grado en ingeniería informática y la segunda asignatura de bases de datos: da por conocidos el modelo relacional y el SQL básico, y recorre el diseño completo, del enunciado de requisitos al esquema conceptual, de ahí a un esquema relacional normalizado, a las reglas de negocio programadas en el servidor y al diseño físico con índices y planes de ejecución, para terminar con las bases de datos distribuidas y los almacenes de datos.
Qué incluye: 11 temas y 6 entregas evaluables
- Módulo 1 · Diseño conceptual — Tema 1 · El proceso de diseño de bases de datos y PostgreSQL; Tema 2 · Modelado conceptual con el modelo entidad-relación; Tema 3 · Modelo E-R extendido y paso al modelo relacional; Práctica 1 · Del enunciado al esquema relacional
- Módulo 2 · Diseño lógico y normalización — Tema 4 · Dependencias funcionales; Tema 5 · Normalización y descomposición de esquemas; Práctica 2 · Normalización de una base de datos heredada
- Módulo 3 · Integridad y lógica en el servidor — Tema 6 · Vistas, restricciones de integridad y transacciones; Tema 7 · Disparadores y programación en el servidor con PL/pgSQL; Práctica 3 · Reglas de negocio en la base de datos; Tema 11 · Oracle y PL/SQL (se estudia tras la Práctica 3)
- Módulo 4 · Diseño físico y rendimiento — Tema 8 · Diseño físico: almacenamiento e índices; Tema 9 · Planes de ejecución y ajuste de consultas; Práctica 4 · Optimización de una base de datos lenta
- Módulo 5 · Bases de datos distribuidas y analíticas — Tema 10 · Bases de datos distribuidas y almacenes de datos; Práctica 6 · Laboratorio de bases de datos distribuidas; Proyecto final · Diseño de un almacén de datos
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 prácticas plantean problemas abiertos, como en un proyecto real: modelar un dominio, normalizar una tabla heredada, programar reglas de negocio, acelerar consultas con medidas, distribuir una base de datos en dos nodos y diseñar un almacén de datos.
A quién va dirigido: estudiantes de grado en ingeniería informática o titulaciones afines que ya han tenido una primera asignatura de bases de datos, y profesionales que usan SQL a diario y quieren diseñar esquemas con criterio.
Trabajarás con PostgreSQL instalado en tu ordenador (Windows, macOS o Linux; la guía de instalación está en el curso), con psql y pgAdmin o DBeaver, y con Python (notebooks de Jupyter con psycopg, pandas y SQLAlchemy) para cargar datos y comprobar tus soluciones; los diagramas E-R se dibujan con draw.io, dbdiagram.io o Mermaid. En el tema 11 usarás también Oracle Database Free en un contenedor (con python-oracledb) para programar en PL/SQL. Dedicación estimada: 158 horas de temas y entregas, más una hora de presentación (unas 10 horas semanales durante 16 semanas). Requisitos: modelo relacional (relaciones, claves primarias y ajenas) y SQL básico (SELECT, JOIN, GROUP BY y subconsultas), además de programación básica en Python. Curso previo recomendado: Diseño de bases de datos, de nivel introductorio; el tema 1 incluye un repaso breve de lo imprescindible.