¿Qué es Postgres? La base de datos detrás de muchas apps, explicada
Postgres (oficialmente PostgreSQL) es una base de datos relacional gratuita y de código abierto: un programa que guarda los datos de una app en tablas de filas y columnas, enlaza esas tablas entre sí y responde preguntas sobre ellas en un lenguaje llamado SQL. Es conocida por ser fiable, estricta para mantener los datos correctos y lo bastante flexible para manejar desde una lista de registros hasta los datos de una gran empresa. Muchas apps web, y muchos de los servicios que las alojan, se construyen sobre ella.
Por qué importa al construir con IA
Cuando un creador de apps con IA añade «una base de datos» a tu proyecto, hay muchas probabilidades de que sea Postgres. No necesitas escribir SQL para usarla, pero un poco de comprensión ayuda mucho:
- Puedes describir los datos con la forma que la base de datos necesita. «Los clientes tienen muchos pedidos; cada pedido tiene muchos artículos» se traduce directamente en tablas.
- Puedes pedir las protecciones adecuadas. Postgres puede rechazar datos incorrectos por sí mismo (un correo duplicado, un pedido para un cliente que no existe) si la IA configura las reglas.
- Puedes leer lo que hizo la IA. Los nombres de tablas, las columnas y las relaciones son fáciles de revisar en un visor de tablas, aunque nunca toques el código.
Una analogía cotidiana: una oficina de archivo muy estricta
Imagina una oficina de archivo con un armario para cada tipo de cosa: uno para clientes, otro para pedidos, otro para productos. Cada tarjeta de un cajón tiene las mismas casillas impresas para rellenar. Cada tarjeta tiene un número único, y una tarjeta de pedido no repite los datos del cliente; solo dice «cliente n.º 214», que apunta al cajón de clientes.
El empleado es estricto. No archivará un pedido que apunte a un cliente que no existe. No aceptará una tarjeta con la casilla de fecha en blanco si es obligatoria. Y si le pides mover dinero de una tarjeta de cuenta a otra, hace las dos mitades o ninguna, nunca solo una.
Ese empleado es Postgres. Los cajones son las tablas, las casillas impresas son las columnas, cada tarjeta es una fila, y el enlace «cliente n.º 214» es una clave foránea.
En qué destaca Postgres
| Función | Qué significa en palabras sencillas |
|---|---|
| Tablas y relaciones | Los datos viven en tablas que apuntan unas a otras, así nada se copia en cinco sitios |
| SQL | Un lenguaje estándar para hacer preguntas: «todos los pedidos sin pagar del mes pasado, del más reciente al más antiguo» |
| Transacciones (ACID) | Un grupo de cambios ocurre por completo o no ocurre nada, aunque el servidor se caiga a mitad |
| Restricciones | Reglas que la base de datos aplica por sí misma: campos obligatorios, correos únicos, enlaces válidos entre tablas |
| Índices | Atajos de búsqueda para que las consultas sigan siendo rápidas a medida que crecen las tablas |
| JSONB | Guarda datos flexibles, tipo documento, en una columna cuando una estructura fija no encaja |
| Búsqueda de texto completo | Busca palabras en campos de texto sin un servicio de búsqueda aparte, para casos sencillos |
| Extensiones | Complementos como PostGIS para mapas y ubicaciones, o pgvector para guardar embeddings de IA |
| Seguridad a nivel de fila | Reglas dentro de la base de datos sobre qué filas puede ver cada usuario |
Postgres empezó como un proyecto de investigación en la Universidad de California, Berkeley, en los años ochenta, y desde los noventa lo desarrolla de forma abierta una comunidad global. Esa larga historia explica por qué es con frecuencia la opción por defecto: está bien documentada, tiene amplio soporte y todos los grandes proveedores de nube ofrecen una versión gestionada.
Ejemplo práctico: convertir una hoja de cálculo en tablas
Supón que diriges un pequeño negocio de catering y llevas todo en una hoja de cálculo: cada fila es un evento, con el nombre del cliente, su teléfono y correo, la fecha, los platos del menú y el precio.
Enseguida aparecen los problemas. El mismo cliente aparece en seis filas con dos números de teléfono distintos. Los platos del menú están escritos en una sola celda como «canapés x40, ensalada x2», así que no puedes sumar cuántos canapés preparaste este mes.
En Postgres, la misma información se convierte en cuatro tablas:
| Tabla | Columnas | Notas |
|---|---|---|
| clientes | id, nombre, teléfono, correo | El correo debe ser único |
| eventos | id, cliente_id, fecha, lugar, estado | cliente_id debe corresponder a un cliente real |
| platos | id, nombre, precio_unitario | Una fila por plato |
| eventos_platos | evento_id, plato_id, cantidad | Enlaza eventos con platos, con una cantidad |
Ahora el teléfono de un cliente vive en un solo lugar. «¿Cuántos canapés preparamos en marzo?» es una única consulta SQL. Y cuando registras un evento nuevo con sus platos, una transacción asegura que nunca acabes con un evento que tiene la mitad de sus platos guardados.
Este es el paso que la gente se salta cuando le pide a una IA que «haga una app a partir de mi hoja de cálculo». La guía para convertir una hoja de cálculo en app va más allá.
Términos clave
- Tabla, fila, columna: un tipo de cosa, una instancia de ella, una pieza de información sobre ella.
- Clave primaria: el ID único de cada fila, normalmente
id. - Clave foránea: una columna que apunta a una fila de otra tabla, como
cliente_id. - Esquema: el diseño de todas tus tablas y columnas.
- Migración: un cambio guardado y repetible en el esquema, como «añade una columna
lugara eventos». - Consulta (query): una pregunta o instrucción escrita en SQL.
- Cadena de conexión: la dirección y la contraseña que usa tu backend para llegar a la base de datos. Es un secreto; consulta variables de entorno y secretos.
- Postgres gestionado: un servicio que ejecuta, respalda y actualiza Postgres por ti.
Para las operaciones cotidianas que toda app realiza sobre estas tablas (crear, leer, actualizar, borrar), consulta qué significa CRUD.
Errores comunes y malentendidos
- Una tabla gigante. Copiar la hoja de cálculo columna por columna lleva a los mismos problemas de duplicación. Separa en tablas propias lo que se repite.
- Guardar listas en un solo campo de texto. «canapés x40, ensalada x2» en una sola columna no se puede contar ni buscar bien. Usa una tabla de enlace.
- Sin restricciones. Sin «el correo debe ser único» o «cada evento necesita un cliente», los datos malos entran en silencio y aparecen meses después.
- Cambiar la base de datos a mano en producción. Pide los cambios de esquema como migraciones, para que el cambio quede registrado y pueda repetirse.
- Dejar que el navegador hable directamente con la base de datos. El frontend debe pasar por tu backend, que comprueba los permisos. La contraseña de la base de datos nunca debe estar en el código de la página.
- «Postgres es solo para grandes empresas». Funciona igual de bien para una lista de espera de 50 filas, y no tendrás que cambiarlo a medida que crezcas.
- Suponer que una base de datos es una copia de seguridad. Guarda datos; no te protege automáticamente de borrarlos. Revisa qué copias de seguridad ofrece tu host.
Qué pedir a tu creador de apps con IA
- «Guarda [cosas] en una base de datos. Tablas: … con estos campos: … Enlaza cada [pedido] con un [cliente].»
- «Haz que el correo sea único en clientes. Haz obligatorios estos campos. No permitas un pedido sin cliente.»
- «Usa migraciones para cada cambio de esquema.»
- «Añade índices para las búsquedas que más hacemos: pedidos por cliente y por fecha.»
- «Todo el acceso a la base de datos pasa por el servidor. Guarda la cadena de conexión en variables de entorno.»
Si nunca has oído hablar de una base de datos, empieza por qué es una base de datos y vuelve aquí. Una app full-stack muestra dónde se sitúa la base de datos junto al frontend y el backend.
Postgres en Mythex
Mythex da a cada proyecto que lo necesita su propia base de datos Postgres dedicada. No tienes que configurarla: pídelo en el chat («guarda los correos de la lista de espera en una base de datos») o usa el comando /database, y Mythex la conecta, inyecta los datos de conexión en tu app y puede crear las tablas por ti. La base de datos de una app publicada se duerme tras cinco minutos inactiva y se despierta con la siguiente solicitud, y se cobra solo el tiempo que estuvo despierta, con el mismo saldo de créditos que usas para construir. Los detalles están en la documentación de bases de datos, y las plantillas de paneles son un buen lugar para ver apps con datos.
Preguntas
¿Postgres es lo mismo que PostgreSQL?
Sí. PostgreSQL es el nombre oficial y Postgres es el nombre corto habitual; ambos se refieren a la misma base de datos relacional de código abierto.
¿Postgres es gratis?
Sí. PostgreSQL es de código abierto bajo la permisiva licencia PostgreSQL, así que puedes usarlo gratis, incluso en productos comerciales. Solo pagas por los servidores o por el servicio gestionado que lo ejecuta.
¿Cuál es la diferencia entre Postgres y MySQL?
Ambas son bases de datos SQL relacionales y gratuitas, y las dos sirven para la mayoría de las apps. Postgres es conocido por su integridad de datos estricta, sus tipos de datos avanzados como JSONB y arrays, y un amplio ecosistema de extensiones; MySQL es conocido por su simplicidad y su larga trayectoria en el alojamiento web.
¿Postgres sirve para una app pequeña?
Sí. Funciona bien para una lista de espera de una sola tabla y también para sistemas de producción grandes, así que no necesitarás cambiar de base de datos a medida que la app crezca. Los servicios gestionados facilitan ejecutarla sin un administrador de bases de datos.