Guías

¿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 a la hora de mantener los datos correctos y lo bastante flexible para manejar desde una lista de registros hasta los datos de una gran empresa. Muchas webs y apps, y muchos de los servicios que las alojan, están construidos sobre ella.

Por qué importa al crear 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 necesita la base de datos. «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 email duplicado, un pedido para un cliente que no existe) si la IA configura las reglas.
  • Puedes revisar lo que hizo la IA. Los nombres de las tablas, las columnas y las relaciones son fáciles de comprobar 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 ficha de cada cajón tiene los mismos recuadros impresos para rellenar. Cada ficha tiene un número único, y una ficha de pedido no repite los datos del cliente; solo dice «cliente n.º 214», apuntando al cajón de clientes.

El archivero es estricto. No archiva un pedido que apunta a un cliente que no existe. No acepta una ficha con el recuadro de fecha en blanco si es obligatorio. Y si le pides mover dinero de la ficha de una cuenta a la de otra, hace las dos mitades o ninguna, nunca solo una.

Ese archivero es Postgres. Los cajones son las tablas, los recuadros son las columnas, cada ficha es una fila, y el enlace «cliente n.º 214» es una clave foránea.

Lo que Postgres hace bien

FunciónQué significa en palabras sencillas
Tablas y relacionesLos datos viven en tablas que se apuntan entre sí, así que nada se copia en cinco sitios
SQLUn 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 entero o no ocurre nada, aunque el servidor se caiga a mitad
Restricciones (constraints)Reglas que la base de datos impone por sí misma: campos obligatorios, emails únicos, enlaces válidos entre tablas
ÍndicesAtajos de búsqueda para que las consultas sigan siendo rápidas cuando las tablas crecen
JSONBGuarda datos flexibles, con estilo de documento, en una columna cuando una estructura fija no encaja
Búsqueda de texto completoBusca palabras en campos de texto sin un servicio de búsqueda aparte, para casos sencillos
ExtensionesComplementos como PostGIS para mapas y ubicaciones, o pgvector para guardar embeddings de IA
Seguridad a nivel de filaReglas dentro de la base de datos sobre qué filas puede ver cada usuario

Postgres empezó como proyecto de investigación en la Universidad de California en Berkeley, en los años ochenta, y desde los noventa lo desarrolla de forma abierta una comunidad global. Esa larga historia es la razón por la que suele ser la opción por defecto: está bien documentada, tiene mucho 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 lo llevas todo en una sola hoja de cálculo: cada fila es un evento, con el nombre del cliente, teléfono y email, la fecha, los platos y el precio.

Los problemas aparecen enseguida. El mismo cliente aparece en seis filas con dos teléfonos distintos. Los platos se escriben 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:

TablaColumnasNotas
clientesid, nombre, teléfono, emailEl email debe ser único
eventosid, cliente_id, fecha, lugar, estadocliente_id debe corresponder a un cliente real
platosid, nombre, precio_unitarioUna fila por plato
evento_platosevento_id, plato_id, cantidadEnlaza eventos con platos, con una cantidad

Ahora el teléfono de un cliente vive en un solo lugar. «¿Cuántos canapés hicimos en marzo?» es una única consulta SQL. Y cuando registras un evento nuevo con sus platos, una transacción garantiza que nunca acabes con un evento que tiene a medio guardar sus platos.

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 una 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 lugar a 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 cualquier app realiza sobre estas tablas (crear, leer, actualizar, borrar), consulta qué significa CRUD.

Errores habituales y malentendidos

  • Una sola tabla gigante. Copiar la hoja de cálculo columna por columna lleva a los mismos problemas de duplicación. Separa lo que se repite en tablas propias.
  • 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 email 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 queden registrados y puedan repetirse.
  • Dejar que el navegador hable directamente con la base de datos. La interfaz 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 cambiarla al crecer.
  • Creer que una base de datos es una copia de seguridad. Guarda datos, pero 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 email 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 emails 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 sin actividad y se despierta con la siguiente petición, y se cobra el tiempo que estuvo realmente activa, con el mismo saldo de créditos que la creación. 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 licencia permisiva de PostgreSQL, así que puedes usarlo gratis, también 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 gratuitas, y las dos sirven para la mayoría de las apps. Postgres destaca por su integridad de datos estricta, sus tipos de datos avanzados como JSONB y los arrays, y un amplio ecosistema de extensiones; MySQL destaca por su sencillez y su larga trayectoria en alojamiento web.

¿Postgres es buena opción para una app pequeña?

Sí. Funciona bien tanto para una lista de espera de una sola tabla como para grandes sistemas en producción, así que no tendrás que cambiar de base de datos a medida que crezca la app. Los servicios gestionados facilitan ejecutarla sin un administrador de bases de datos.

Mythex · Pricing · Crea lo que quieras con IA · Plantillas de sitios web y apps · Mythex comparado · Glosario de creación de apps con IA · Herramientas gratuitas para crear apps con IA · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)