Tema 14: Modelado ER: del mundo real al diagrama
Identificador: PF-014 | XP: 200 | Insignia: 🥇 Oro | Tier: Aprendiz
Tiempo estimado: 80-100 min | Pre-requisitos: PF-013
🖼️ Imagen de inicio del tema

[Moka con mapa de Tenochtitlan mostrando altépetl conectados. Sofía con diagramas, Don Carlos con código, Citlalli con planos de la ciudad.]
🎯 Aprenderás
🏛️ Visión mexica — Por Citlalli
"El altépetl mexica era una ciudad-estado con barrios (calpulli), templos, mercados y tributos. Cada elemento tenía un lugar, una relación con los demás. Un mapa del altépetl era un DIAGRAMA ENTIDAD-RELACIÓN: barrios (entidades), relaciones (los barrios pertenecen al altépetl, los tributos van al templo), atributos (nombre, población, ubicación).
Un buen modelo ER es como un buen mapa del altépetl: muestra todo lo esencial sin abrumar, y te permite navegar la información de un vistazo. El modelo ER es el puente entre el MUNDO REAL (tu tienda, tu negocio) y el MUNDO DE DATOS (las tablas SQL)."
📚 Bloque 1: Entidades, atributos y relaciones
- Entidad: una "cosa" del mundo real que queremos representar. Ejemplo: Cliente, Producto, Pedido.
- Atributo: una propiedad de la entidad. Ejemplo: nombre, email, precio.
- Relación: cómo se conectan dos entidades. Ejemplo: un Cliente tiene muchos Pedidos.
📚 Bloque 2: Cardinalidad
- 1:1 (uno a uno): cada A se conecta con exactamente un B. Ejemplo: cada cliente tiene un único perfil.
- 1:N (uno a muchos): cada A se conecta con muchos B. Ejemplo: un cliente tiene muchos pedidos.
- N:M (muchos a muchos): cada A se conecta con muchos B y viceversa. Ejemplo: clientes y productos (un cliente compra muchos productos, un producto es comprado por muchos clientes).
📚 Bloque 3: Diagrama ER de Tienda Tlalli
CLIENTE (1) ----< (N) PEDIDO (1) ----< (N) PEDIDO_ITEM >---- (N) ---- (1) PRODUCTO
|
|
v
(N) ---- (1) CATEGORIA
^
|
RESENA (N) >---- (1) PRODUCTO |
RESENA (N) >---- (1) CLIENTE ---+Reglas:
- CLIENTE (1) -- (N) PEDIDO: un cliente tiene muchos pedidos.
- PEDIDO (1) -- (N) PEDIDO_ITEM: un pedido tiene muchos items.
- PRODUCTO (1) -- (N) PEDIDO_ITEM: un producto aparece en muchos items.
- CATEGORIA (1) -- (N) PRODUCTO: una categoría tiene muchos productos.
- CLIENTE (1) -- (N) RESENA: un cliente escribe muchas reseñas.
- PRODUCTO (1) -- (N) RESENA: un producto tiene muchas reseñas.
📚 Bloque 4: Convertir ER a tablas SQL
Por cada entidad, una tabla. Por cada relación 1:N, una llave foránea en la tabla hija. Por cada N:M, una tabla intermedia.
-- Entidades principales
CREATE TABLE clientes (
id INT PRIMARY KEY,
nombre VARCHAR(120) NOT NULL,
email VARCHAR(150) UNIQUE
);CREATE TABLE productos (
id INT PRIMARY KEY,
nombre VARCHAR(150) NOT NULL,
precio DECIMAL(10,2) NOT NULL,
categoria_id INT,
FOREIGN KEY (categoria_id) REFERENCES categorias(id)
);
-- Relación N:M
CREATE TABLE pedido_items (
pedido_id INT,
producto_id INT,
cantidad INT,
PRIMARY KEY (pedido_id, producto_id),
FOREIGN KEY (pedido_id) REFERENCES pedidos(id),
FOREIGN KEY (producto_id) REFERENCES productos(id)
);
📚 Bloque 5: Tipos de relaciones en cardinalidad
Cardinalidad 1:1 (rara):
CREATE TABLE usuarios_perfil (
usuario_id INT PRIMARY KEY,
bio TEXT,
FOREIGN KEY (usuario_id) REFERENCES usuarios(id)
);Cardinalidad N:M (con atributos propios): A veces la relación N:M tiene datos propios. Por ejemplo, `pedido_items` no es solo una relación: tiene `cantidad` y `precio_unitario`.
🤖 AI Mission
Pídele: "Diseña el modelo ER para un sistema de biblioteca. Incluye libros, usuarios, préstamos y multas. Dibuja el diagrama y convierte a SQL."
⚠️ Errores típicos
🧪 LAB 14.1 — "Modela una nueva funcionalidad"
Tarea: agrega al modelo de Tienda Tlalli un sistema de direcciones de envío. Cada cliente puede tener múltiples direcciones (casa, oficina, etc.). Cada pedido se envía a una de esas direcciones.
📝 Quest 14
✅ Respuestas
1-B, 2-B, 3-B, 4-B, 5-B, 6-B, 7-A, 8-A, 9-B, 10-B.
🏛️ Tras las huellas — Por Citlalli
"El altépetl mexica era una ciudad-estado con barrios, templos, mercados y tributos. Un buen mapa del altépetl era un DIAGRAMA ER: barrios (entidades), relaciones (los barrios pertenecen al altépetl, los tributos van al templo), atributos (nombre, población, ubicación)."
📓 Cierre
1. El concepto más útil fue:
2. La cardinalidad más difícil:
3. Mi propio modelo de un proyecto:
4. Cómo voy a aplicar modelado ER:
🚀 ¿Qué sigue?
Tema 15 — Normalización 1FN, 2FN, 3FN, BCNF: por qué las tablas no deben repetirse.