# ¿Qué es una base de datos?

> Una base de datos es un archivador digital organizado donde tu aplicación recuerda información entre visitas —como cuentas de usuario, elementos guardados o pedidos—, almacenada en tablas estructuradas en un servidor para que los datos sigan seguros aunque se cierre el navegador.

## Analogía

Piensa en un armario de fichas en la oficina: cada cajón es una tabla (`usuarios`, `recetas`), cada columna es un dato obligatorio (`correo`, `título`, `fecha`) y cada fila es una ficha individual. Cuando alguien guarda una receta, el backend archiva una ficha nueva en el cajón correspondiente.

## Cómo funciona

No todas las aplicaciones necesitan una database. Una página personal, una calculadora o un conversor de unidades no necesitan recordar nada cuando recargas la página: si no se guardan datos, no hace falta base de datos. Solo la añades cuando tu app debe recordar información entre visitas o entre distintas personas.

Dentro de una base de datos relacional (nuestra pila usa **Postgres** alojado en **Neon**), la información vive en **tablas**. Cada tabla tiene **columnas** que definen qué tipo de dato se permite (texto, número, fecha, sí/no) y **filas** para cada elemento guardado, de modo que la app nunca almacena datos desordenados o incompletos.

Tu backend se conecta a Neon mediante una dirección secret guardada en la env-var `DATABASE_URL`. Cuando conectas Neon desde tu proyecto en vercel (**Storage → Neon**), Vercel configura `DATABASE_URL` en línea automáticamente, y tu agente descarga una conexión de desarrollo separada en `.env.local`.

Igual que git tiene ramas para el código, Neon crea una **rama de base de datos** separada para el desarrollo local y para cada preview. Así, cuando pruebas con tu agente a añadir o borrar datos en tu equipo, nunca tocas los datos reales de production.

## En tu proyecto

Durante la etapa **③ Especificación**, tu agente te pregunta qué necesita recordar tu app. Si no hay nada que guardar, omite la base de datos por completo. Si la necesita, espera hasta llegar a esa tarea del plan, te guía paso a paso para conectar Neon en Vercel y escribe consultas parametrizadas seguras para que ningún dato externo altere tus tablas.

## Copia para tu agente

```text
Según mi archivo SPEC.md, dime si mi app necesita una base de datos. Si la necesita, enumera con palabras sencillas qué tablas y columnas nos hacen falta y confirma cómo separamos los datos de desarrollo de los de producción.
```

---
Fuente: [Agentic Makers](https://agenticmakers.app/es/aprende/que-es-una-base-de-datos) · Licencia: CC BY 4.0
