🧠 Lección: Bases de Datos (Relacionales vs No Relacionales)
Entender cuándo usar bases de datos relacionales y no relacionales, cómo modelarlas y cómo elegir la mejor opción para tu producto (incluyendo escenarios AI-native).
Una base de datos es donde:
💾 Guardas información
🔍 Consultas datos
⚙️ Soportas tu lógica de negocio
👉 Es el corazón del sistema
Ej: PostgreSQL, MySQL
Datos estructurados en tablas
Relaciones entre entidades
Uso de SQL
Ej: MongoDB, Redis
Datos más flexibles (JSON, key-value, etc.)
No requieren esquema rígido
Escalan fácilmente
users
- id
- name
- email
orders
- id
- user_id
- total👉 Relación:
Un usuario tiene muchas órdenes
Integridad de datos
Relaciones claras
Consultas complejas
Menos flexible
Cambios de esquema más complejos
{
"user": "Juan",
"orders": [
{ "total": 100 },
{ "total": 50 }
]
}Flexible
Escalable
Rápido para ciertos casos
Menos consistencia
Relaciones limitadas

Tienes relaciones claras
Necesitas consistencia
Ej: usuarios, pagos, cursos
Datos flexibles
Alta velocidad
Ej: logs, chats, sesiones
PostgreSQL → datos principales
Redis → cache / sesiones
(Opcional) MongoDB → datos flexibles
En sistemas AI-native puedes usar:
Vector DB (embeddings)
Cache inteligente
Almacenamiento de prompts
👉 Ej:
Pinecone
Weaviate
Diseña antes de implementar
Usa claves primarias
Normaliza datos (SQL)
Indexa correctamente
Guardar todo en JSON sin control
Queries lentas
No usar índices
Mezclar responsabilidades
SELECT * FROM users WHERE email = 'test@mail.com';db.users.find({ email: "test@mail.com" })¿Qué tipo de datos manejo?
¿Necesito relaciones?
¿Qué tan rápido debo escalar?
¿Qué tan flexible debe ser el esquema?
PostgreSQL → datos core
Redis → cache
Vector DB → AI
👉 Esta es la arquitectura moderna
No hay una mejor base de datos…
hay una mejor elección según el problema.
“El modelo de datos define la calidad del sistema.”