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
- Estudiantes de Sistemas en cuarto ciclo (materia BDD315 o equivalente).
- Programadores que quieren persistir datos seriamente.
- Analistas que necesitan extraer información con SQL.
- Cualquiera curioso por entender qué hay detrás de "guardar en la base".
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:
- Cap 1: diseñar las tablas de productos, clientes, pedidos.
- Cap 2: insertar datos y consultarlos con SQL.
- Cap 3: dibujar el diagrama ER y refinar.
- Cap 4: normalizar hasta 3FN.
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:
- SQLite: viene con Python (
import sqlite3). Cero instalación. Bueno para empezar. - PostgreSQL: descargá de https://www.postgresql.org/. Industrial-strength, gratis, open source. Lo que vas a usar en empresas.
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.