¿Qué es una base de datos? Guía para quienes crean apps
Una base de datos es un almacén organizado de información que una app guarda y de donde lee: sus usuarios, pedidos, reservas, mensajes. A diferencia de la información que solo vive en una pestaña del navegador, los datos de una base de datos siguen ahí tras recargar o reiniciar, y todas las personas que usan la app ven los mismos registros. La mayoría de las bases de datos organizan los datos en tablas, parecidas a las hojas de una hoja de cálculo, pero con reglas estrictas que mantienen los datos coherentes.
Por qué importa cuando construyes con IA
La sorpresa más habitual para quien construye con IA es una app que parece terminada pero se olvida de todo. Añades un cliente, recargas la página y ha desaparecido. Normalmente eso significa que la app guardaba los datos en la memoria del navegador, no en una base de datos.
Una base de datos es también donde viven muchas de tus decisiones más importantes, te des cuenta o no:
- Qué registras. Si no guardas el estado de una reserva, no puedes mostrar cuáles se cancelaron.
- Cómo se relacionan las cosas. Que un cliente pueda tener muchas reservas, o que una reserva tenga muchos servicios, determina toda la app.
- Quién puede ver qué. La mayoría de los errores de privacidad tienen que ver con qué registros puede leer cada usuario.
No necesitas diseñar tú la base de datos. Pero entender lo básico te permite describir tus datos con claridad y detectar problemas a tiempo.
Una analogía cotidiana
Imagina un archivador bien organizado en una pequeña oficina.
Cada cajón guarda un tipo de cosa: uno para clientes, otro para citas, otro para facturas. Dentro de cada cajón, cada carpeta sigue el mismo formato, con los mismos campos rellenos. Cada carpeta tiene un número de referencia único, y cuando una factura pertenece a un cliente, la carpeta de la factura anota el número de ese cliente en lugar de fotocopiar todo su expediente.
Eso es una base de datos relacional. Los cajones son las tablas, las carpetas son las filas, los campos son las columnas, los números de referencia son las claves primarias y las anotaciones que apuntan a otra carpeta son las claves externas. Un buen responsable de oficina también hace cumplir reglas —ninguna cita sin fecha, ningún par de clientes con el mismo número—, igual que lo hace una base de datos.
Un ejemplo práctico: una app de reservas para una peluquería
Supón que pides a una IA que cree una web de reservas para una peluquería. Una base de datos razonable tendría cuatro tablas.
services
| id | name | duration_minutes | price |
|---|---|---|---|
| 1 | Corte | 45 | 40.00 |
| 2 | Color | 90 | 95.00 |
staff
| id | name | |
|---|---|---|
| 1 | Sara | sara@example.com |
| 2 | Omar | omar@example.com |
customers
| id | name | phone | |
|---|---|---|---|
| 101 | Lena Park | lena@example.com | 555-0100 |
bookings
| id | customer_id | service_id | staff_id | starts_at | status |
|---|---|---|---|---|---|
| 5001 | 101 | 1 | 2 | 2026-10-03 14:00 | confirmed |
Fíjate en la tabla bookings. No copia el nombre ni el teléfono de Lena en cada reserva; guarda customer_id = 101. Si Lena cambia de teléfono, se cambia en un solo sitio y todas sus reservas muestran el nuevo. Esta es la idea central de una base de datos relacional: guardar cada dato una sola vez y enlazarlo.
La misma estructura responde preguntas útiles:
- «¿Qué huecos están libres para Omar el viernes?» — mira las reservas de Omar ese día.
- «¿Cuánto han facturado los servicios de color este mes?» — une las reservas con los servicios y suma los precios.
- «¿Qué clientes no han reservado en 90 días?» — compara los clientes con su última reserva.
Términos comunes explicados
| Término | Qué significa |
|---|---|
| Tabla | Una colección de un tipo de registro, como clientes o reservas. |
| Fila (registro) | Un elemento de una tabla: un cliente, una reserva. |
| Columna (campo) | Un dato que tienen todas las filas, como el correo o el precio. |
| Clave primaria | Un ID único para cada fila, normalmente un número o una cadena aleatoria. |
| Clave externa | Una columna que apunta a una fila de otra tabla, como customer_id en las reservas. |
| Esquema | El diseño general: qué tablas existen, sus columnas y cómo se enlazan. |
| Consulta | Una petición para leer o cambiar datos, como «todas las reservas de mañana». |
| SQL | Lenguaje de consulta estructurado, el estándar para las bases de datos relacionales. |
| Migración | Un cambio guardado y repetible en el esquema, como añadir una columna. |
| Índice | Una estructura de búsqueda que acelera las consultas sobre una columna, como el índice de un libro. |
| CRUD | Crear, leer, actualizar y borrar: las cuatro operaciones básicas que hacen las apps con los datos. |
| Copia de seguridad | Una copia de los datos que puedes restaurar si algo sale mal. |
Tipos de bases de datos
| Tipo | Cómo guarda los datos | Ejemplos | Ideal para |
|---|---|---|---|
| Relacional (SQL) | Tablas con columnas fijas y enlaces entre ellas | Postgres, MySQL, SQLite | La mayoría de las apps de negocio: reservas, tiendas, CRM, SaaS |
| Documental (NoSQL) | Documentos flexibles tipo JSON | MongoDB, Firestore | Datos cuya forma varía mucho de un registro a otro |
| Clave-valor | Un valor guardado bajo una clave | Redis | Caché, datos de corta duración como sesiones |
Para casi todo lo que un emprendedor o una pequeña empresa construye primero, una base de datos relacional es la opción segura por defecto.
Dónde encaja la base de datos en tu app
Los visitantes nunca hablan directamente con la base de datos. La página en su navegador (el frontend) pide datos a tu servidor (el backend), normalmente a través de una API. El servidor comprueba quién pide los datos y si tiene permiso, luego consulta la base de datos y devuelve solo lo que esa persona debe ver.
Ese paso intermedio es importante. Si el navegador pudiera consultar la base de datos directamente con acceso total, cualquiera podría abrir las herramientas de desarrollo y leerlo todo.
Errores comunes e ideas equivocadas
- Guardar los datos solo en el navegador. El almacenamiento del navegador (como localStorage) vive en un dispositivo y en un navegador concretos. Vale para recordar un filtro, no para los pedidos.
- Meterlo todo en una sola tabla. Una única tabla de «reservas» con el nombre, el teléfono y el precio del servicio del cliente copiados en cada fila se desincroniza muy pronto.
- Guardar las contraseñas en texto plano. Las contraseñas deben guardarse cifradas (hash), nunca legibles. Consulta qué es la autenticación.
- Sin reglas sobre los datos. Sin campos obligatorios ni reglas de unicidad, acabarás con reservas sin fecha y clientes duplicados.
- Olvidarse de los borrados. Decide si borrar un cliente elimina también sus reservas, las conserva o queda bloqueado.
- Usar datos reales para experimentar. Prueba los cambios arriesgados en un entorno seguro primero, y mantén copias de seguridad.
- Tratar la hoja de cálculo como base de datos para siempre. Las hojas de cálculo son ideales para empezar, pero no están preparadas para muchos usuarios simultáneos ni para los permisos. Consulta cómo convertir una hoja de cálculo en una app.
Qué pedir a tu creador de apps con IA
- «Guarda esto en una base de datos, no en el navegador. Dime qué tablas vas a crear.»
- «Muéstrame el esquema como una tabla sencilla: cada tabla, sus columnas y cómo se enlazan.»
- «Un cliente puede tener muchas reservas; cada reserva tiene exactamente un servicio y un miembro del personal.»
- «Haz obligatorio el correo de los clientes y que sea único.»
- «Impide que dos reservas del mismo miembro del personal se solapen.»
- «Solo el propietario con sesión iniciada puede leer todas las reservas; los clientes solo ven las suyas. Aplícalo en el servidor.»
- «Cuando borre un servicio, no borres las reservas pasadas: márcalo como inactivo.»
Bases de datos en Mythex
Cuando tu app necesita guardar datos, Mythex añade al proyecto una base de datos Postgres dedicada. Puedes pedirlo en el chat («guarda los registros de la lista de espera en una base de datos») o usar el comando /database. Los datos de conexión se pasan automáticamente a tu app, y el agente crea las tablas. La base de datos se duerme tras cinco minutos sin actividad y se despierta con la siguiente petición; en las apps publicadas se cobra el tiempo que estuvo activa, con el mismo saldo de créditos que se usa para construir. Está disponible en los planes Free y Pro. Los documentos de la base de datos explican los detalles, y las plantillas de apps incluyen puntos de partida basados en datos.
Preguntas
¿Qué es una base de datos en términos sencillos?
Una base de datos es un almacén organizado de información en el que una app puede guardar y leer datos, como usuarios, pedidos o reservas. A diferencia de los datos que solo viven en una pestaña del navegador, sigue ahí tras recargar, reiniciar o cuando alguien abre la app desde otro dispositivo.
¿Es una hoja de cálculo una base de datos?
Una hoja de cálculo puede guardar el mismo tipo de datos, pero no está pensada para apps. Una base de datos real aplica reglas sobre lo que contiene cada columna, relaciona las tablas de forma fiable, aguanta a muchas personas escribiendo a la vez y controla quién puede leer cada cosa.
¿Cuál es la diferencia entre bases de datos SQL y NoSQL?
Las bases de datos SQL (relacionales), como Postgres y MySQL, guardan los datos en tablas con columnas definidas y relaciones entre ellas. Las NoSQL, como MongoDB, guardan documentos más flexibles. La mayoría de las apps de negocio —reservas, CRM, tiendas— encajan muy bien en el modelo relacional.
¿Necesita mi app una base de datos?
Si necesita recordar algo que introduce la gente —registros, pedidos, mensajes, ajustes— y mostrarlo más tarde o a otra persona, sí. Una web puramente informativa, sin formularios que guarden datos, normalmente no la necesita.