🎯 Objetivo:
Entender las principales diferencias entre MongoDB (NoSQL documental) y bases de datos relacionales como MySQL o PostgreSQL (SQL), para saber cuándo usar cada una.
🧠 Conceptos base
| MongoDB | SQL (MySQL, PostgreSQL, etc.) |
|---|---|
| No usa tablas, usa colecciones y documentos JSON. | Usa tablas, filas y columnas. |
| No requiere esquema fijo. | Requiere definir estructuras (esquemas). |
| Pensado para escalar horizontalmente. | Escala mejor verticalmente (más recursos en un servidor). |
| Ideal para datos flexibles o cambiantes. | Ideal para datos estructurados y relaciones complejas. |
🔍 Comparación por categorías
1. Modelo de datos
| MongoDB | SQL |
|---|---|
| JSON (documentos) | Tablas relacionales |
| Datos anidados posibles | Solo datos tabulares |
| Sin esquema obligatorio | Esquema rígido y normalización |
2. Lenguaje de consulta
| MongoDB | SQL |
|---|---|
| Usa su propio lenguaje basado en JSON. | Usa el lenguaje SQL estándar. |
Ejemplo MongoDB:
Ejemplo SQL:
3. Escalabilidad
| MongoDB | SQL |
|---|---|
| Escala horizontalmente (sharding). | Escala verticalmente (más CPU/RAM). |
| Mejor para sistemas distribuidos. | Más complejo escalar entre servidores. |
4. Flexibilidad
| MongoDB | SQL |
|---|---|
| Puedes tener documentos distintos en una misma colección. | Todas las filas deben seguir la misma estructura. |
| Se adapta rápido a cambios. | Requiere modificar esquemas. |
5. Relaciones
| MongoDB | SQL |
|---|---|
| Soporta relaciones, pero no es su punto fuerte. | Especialista en relaciones entre tablas. |
| JOINs limitados | JOINs avanzados (INNER, LEFT, etc.) |
6. Transacciones
| MongoDB (moderno) | SQL |
|---|---|
| Soporta transacciones (desde v4.0). | Soporte completo y robusto. |
| Menos optimizado para procesos financieros. | Ideal para operaciones críticas. |
⚖️ ¿Cuál elegir?
| Necesitas… | Elige… |
|---|---|
| Datos muy relacionados entre sí (clientes, órdenes) | ✅ SQL |
| Estructura fija y validaciones complejas | ✅ SQL |
| Escalabilidad para miles de usuarios | ✅ MongoDB |
| Datos en JSON, flexibles o que cambian mucho | ✅ MongoDB |
| Prototipado rápido o MVP de una app web | ✅ MongoDB |
| Transacciones bancarias o contables | ✅ SQL |
📝 Actividad práctica
-
Transforma esta tabla SQL a MongoDB:
→ ¿Cómo sería en MongoDB?
-
Menciona una app que podría usar MongoDB y otra que es mejor con SQL. Explica por qué.
✅ Revisión rápida
-
¿Qué diferencia principal hay entre una colección y una tabla?
-
¿Qué base maneja mejor estructuras flexibles como JSON?
-
¿Qué base es mejor para datos financieros?