Bases de Datos I

Materia central del cuarto ciclo de Ingeniería en Sistemas. Las bases de datos son donde viven los datos de cualquier sistema serio: e-commerce, banca, gobierno, redes sociales, salud. Si vas a trabajar en software profesional, vas a usar bases de datos todos los días.

¿Por qué no archivos JSON o CSV? Para un programa chico funcionan. Para un sistema con millones de registros, miles de usuarios concurrentes y restricciones de integridad — necesitás un gestor de base de datos (DBMS): Postgres, MySQL, Oracle, SQL Server. Te dan transacciones, consistencia, control de acceso, búsqueda eficiente y persistencia confiable.

Quién debería leer este libro

Prerrequisitos

Materia Por qué
Programación I Variables, control de flujo, funciones.
Programación II Diccionarios y manejo de archivos — los conceptos se transfieren.

No se requiere matemática avanzada. Sí, disciplina para pensar en términos de tablas y relaciones.

Cómo está organizado

# Capítulo Idea central
1 Modelo relacional Tablas, llaves, integridad
2 SQL básico SELECT, JOIN, GROUP BY
3 Modelado ER Cómo diseñar el esquema antes de codificar
4 Normalización Por qué dividir tablas y cuándo

Proyecto-hilo: sistema de la pupusería

Vamos a evolucionar el sistema que construimos en Programación I y II:

Al final del libro vas a tener un esquema relacional completo y correcto para una pupusería con catálogo, stock, pedidos, clientes y reportes.

DBMS de referencia

Vamos a usar PostgreSQL y SQLite indistintamente. Las consultas básicas son el mismo SQL — los detalles de instalación cambian:

Notación

Símbolo Significado
PK Primary Key (clave primaria)
FK Foreign Key (clave foránea)
NOT NULL El valor no puede ser nulo
UNIQUE No puede haber duplicados
1FN, 2FN, 3FN, BCNF Formas normales

Vamos.