Traducido del inglés

PostgreSQL, también conocido como Postgres, es un sistema de gestión de bases de datos relacional gratuito y de código abierto que enfatiza la extensibilidad y el cumplimiento de SQL. Admite transacciones ACID, tipos de datos avanzados y se ejecuta en todos los principales sistemas operativos.

PostgreSQL ( POHST-gres-kew-EL), también conocido como Postgres, es un sistema de gestión de bases de datos relacional (SGBDR) libre y de código abierto que enfatiza la extensibilidad y el cumplimiento de SQL. La base de datos cuenta con transacciones con propiedades de atomicidad, consistencia, aislamiento y durabilidad (ACID), junto con vistas actualizables automáticamente, vistas materializadas, disparadores, claves foráneas y procedimientos almacenados. Es compatible con todos los sistemas operativos principales, incluidos Windows, Linux, macOS, FreeBSD y OpenBSD, y maneja una variedad de cargas de trabajo, desde máquinas individuales hasta almacenes de datos, lagos de datos o servicios web con muchos usuarios concurrentes.

El Grupo de Desarrollo Global de PostgreSQL se centra únicamente en desarrollar un motor de base de datos y componentes estrechamente relacionados. Este núcleo es técnicamente lo que constituye el propio PostgreSQL, pero una extensa comunidad de desarrolladores y un ecosistema proporcionan otros conjuntos de características importantes que tradicionalmente podrían ser proporcionados por un proveedor de software propietario. Estos incluyen características de motor de base de datos con fines especiales, como las necesarias para soportar una base de datos geoespacial o temporal, o características que emulan otros productos de base de datos. También están disponibles de terceros una amplia variedad de características de interfaz de usuario y máquina, como interfaces gráficas de usuario o conjuntos de herramientas de equilibrio de carga y alta disponibilidad. La amplia red de soporte de terceros de PostgreSQL, compuesta por personas, empresas, productos y proyectos, aunque no forma parte del Grupo de Desarrollo de PostgreSQL, es esencial para la adopción y el uso del motor de base de datos y constituye el ecosistema de PostgreSQL en su conjunto.

Historia

Ingres y POSTGRES universitario (1982-1994)

PostgreSQL evolucionó a partir del proyecto Ingres en la Universidad de California, Berkeley. En 1982, el líder del equipo de Ingres, Michael Stonebraker, dejó Berkeley para crear una versión propietaria de Ingres. Regresó a Berkeley en 1985 y comenzó un proyecto posterior a Ingres para abordar los problemas de los sistemas de bases de datos contemporáneos que se habían vuelto cada vez más evidentes a principios de la década de 1980. Ganó el Premio Turing en 2014 por estos y otros proyectos, y por las técnicas pioneras en ellos.

El nuevo proyecto, POSTGRES, tenía como objetivo añadir la menor cantidad de características necesarias para soportar completamente los tipos de datos. Estas características incluían la capacidad de definir tipos y describir completamente las relaciones, algo ampliamente utilizado pero mantenido enteramente por el usuario. En POSTGRES, la base de datos entendía las relaciones y podía recuperar información de tablas relacionadas de manera natural utilizando reglas. POSTGRES utilizó muchas de las ideas de Ingres pero no su código.

A partir de 1986, documentos publicados describieron la base del sistema, y una versión prototipo se mostró en la Conferencia ACM SIGMOD de 1988. El equipo lanzó la versión 1 a un pequeño número de usuarios en junio de 1989, seguida de la versión 2 con un sistema de reglas reescrito en junio de 1990. La versión 3, lanzada en 1991, reescribió nuevamente el sistema de reglas y añadió soporte para múltiples gestores de almacenamiento y un motor de consultas mejorado. Para 1993, el número de usuarios comenzó a abrumar al proyecto con solicitudes de soporte y características. Después de lanzar la versión 4.2 el 30 de junio de 1994, principalmente una limpieza, el proyecto terminó. Berkeley publicó POSTGRES bajo una variante de la Licencia MIT, lo que permitió a otros desarrolladores usar el código para cualquier propósito. En ese momento, POSTGRES utilizaba un intérprete del lenguaje de consulta POSTQUEL influenciado por Ingres, que podía usarse interactivamente con una aplicación de consola llamada monitor.

Postgres95 (1994-1996)

En 1994, los estudiantes de posgrado de Berkeley Andrew Yu y Jolly Chen reemplazaron el intérprete del lenguaje de consulta POSTQUEL por uno para el lenguaje de consulta SQL, creando Postgres95. La consola monitor también fue reemplazada por psql. Yu y Chen anunciaron la primera versión (0.01) a los probadores beta el 5 de mayo de 1995. La versión 1.0 de Postgres95 fue anunciada el 5 de septiembre de 1995, con una licencia más liberal que permitía que el software fuera modificable libremente.

El 8 de julio de 1996, Marc Fournier en Hub.org Networking Services proporcionó el primer servidor de desarrollo no universitario para el esfuerzo de desarrollo de código abierto. Con la participación de Bruce Momjian y Vadim B. Mikheev, comenzó el trabajo para estabilizar el código heredado de Berkeley.

PostgreSQL (1996-presente)

En 1996, el proyecto fue renombrado a PostgreSQL para reflejar su soporte para SQL. La presencia en línea en el sitio web PostgreSQL.org comenzó el 22 de octubre de 1996. La primera versión de PostgreSQL formó la versión 6.0 el 29 de enero de 1997. Desde entonces, desarrolladores y voluntarios de todo el mundo han mantenido el software como El Grupo de Desarrollo Global de PostgreSQL.

El proyecto continúa lanzando versiones bajo su Licencia PostgreSQL de software libre y de código abierto. El código proviene de contribuciones de proveedores propietarios, empresas de soporte y programadores de código abierto.

PostgreSQL 18, lanzado el 25 de septiembre de 2025, introdujo un nuevo subsistema de entrada/salida asíncrona (AIO), que permite a los usuarios de la base de datos realizar tareas de E/S concurrentes como lectura anticipada y escaneo secuencial, demostrando hasta una mejora del rendimiento de 3 veces para lecturas de almacenamiento en algunas cargas de trabajo. La versión también añadió soporte para que las estadísticas del planificador persistan entre actualizaciones de versiones principales, reduciendo la degradación del rendimiento que ocurría previamente mientras se reconstruían las estadísticas después de una actualización. A mediados de 2026, PostgreSQL 19 estaba en pruebas beta, con un lanzamiento general anticipado para más tarde ese año.

Control de Concurrencia Multiversión (MVCC)

PostgreSQL gestiona la concurrencia mediante el control de concurrencia multiversión (MVCC), que otorga a cada transacción una "instantánea" de la base de datos, permitiendo que los cambios se realicen sin afectar a otras transacciones. Esto elimina en gran medida la necesidad de bloqueos de lectura y asegura que la base de datos mantenga los principios ACID. PostgreSQL ofrece cuatro niveles de aislamiento de transacciones: Lectura No Confirmada, Lectura Confirmada, Lectura Repetible y Serializable. Debido a que PostgreSQL es inmune a las lecturas sucias, solicitar un nivel de aislamiento de transacciones de Lectura No Confirmada proporciona Lectura Confirmada en su lugar. PostgreSQL soporta serializabilidad completa mediante el método de aislamiento de instantáneas serializable (SSI). La implementación de MVCC de PostgreSQL es propensa a problemas de rendimiento que requieren ajustes cuando se somete a una carga de escritura intensa que actualiza filas existentes.

Almacenamiento y Replicación

Replicación

PostgreSQL incluye replicación binaria integrada basada en el envío de los cambios (registros de escritura anticipada, o WAL) a los nodos réplica de manera asíncrona, con la capacidad de ejecutar consultas de solo lectura contra estos nodos replicados. Esto permite dividir el tráfico de lectura entre múltiples nodos de manera eficiente. El software de replicación anterior que permitía un escalado de lectura similar normalmente dependía de soluciones basadas en disparadores, que eran menos robustas. También está disponible la replicación síncrona, que asegura que una transacción se confirme solo después de que se haya escrito en al menos un servidor de respaldo, proporcionando garantías más fuertes de durabilidad a costa de una mayor latencia.

Almacenamiento e Indexación

PostgreSQL soporta una variedad de técnicas de almacenamiento e indexación. El almacenamiento de montón predeterminado organiza las filas en páginas, y están disponibles múltiples tipos de índices, incluidos B-tree, hash, GiST, SP-GiST, GIN y BRIN. Estos índices soportan consultas eficientes para diferentes tipos de datos y patrones de acceso. La partición de tablas, introducida en versiones anteriores y mejorada con el tiempo, permite dividir tablas grandes en piezas más pequeñas y manejables, mejorando el rendimiento de las consultas y las operaciones de mantenimiento. El sistema también soporta tablespaces, que permiten a los administradores controlar la ubicación física del almacenamiento en disco.

Extensibilidad y Tipos de Datos

Una característica definitoria de PostgreSQL es su extensibilidad. Los usuarios pueden definir tipos de datos personalizados, operadores, métodos de índice y funciones. Esta extensibilidad ha llevado al desarrollo de extensiones especializadas como PostGIS para datos geoespaciales, que añade soporte para objetos geográficos y consultas espaciales. Otras extensiones proporcionan capacidades de búsqueda de texto completo, funcionalidad de almacenamiento clave-valor e integración con sistemas externos. El mecanismo de extensión permite a desarrolladores de terceros añadir características sin modificar el motor central de la base de datos, contribuyendo al rico ecosistema de PostgreSQL.

PostgreSQL soporta nativamente una amplia gama de tipos de datos, incluidos numéricos, cadenas, fecha/hora, booleanos y datos binarios. También incluye soporte para arrays, JSON y JSONB (JSON binario), XML y tipos de direcciones de red. El tipo JSONB, en particular, permite el almacenamiento y consulta eficientes de datos semiestructurados, lo que hace de PostgreSQL una opción viable para cargas de trabajo orientadas a documentos junto con datos relacionales tradicionales.

Cumplimiento de SQL y Características

PostgreSQL es conocido por su alto grado de cumplimiento de SQL. Implementa una gran parte del estándar SQL, incluyendo consultas complejas, subconsultas, funciones de ventana, expresiones de tabla comunes (CTEs) y consultas recursivas. La base de datos soporta claves foráneas, restricciones de verificación, restricciones únicas y claves primarias para hacer cumplir la integridad de los datos. Los disparadores, que pueden escribirse en varios lenguajes procedurales, permiten la ejecución automática de funciones en respuesta a eventos de la base de datos.

Los procedimientos almacenados y las funciones pueden escribirse en múltiples lenguajes, incluidos PL/pgSQL (el lenguaje procedural integrado), PL/Python, PL/Perl y PL/Tcl. Esta flexibilidad permite a los desarrolladores implementar lógica de negocio directamente en la base de datos. PostgreSQL también soporta funciones definidas por el usuario escritas en C, lo que permite operaciones personalizadas de alto rendimiento. El sistema incluye un planificador y optimizador de consultas sofisticado que puede manejar órdenes de unión complejas y usar estadísticas para elegir planes de ejecución eficientes.

Comunidad y Ecosistema

El Grupo de Desarrollo Global de PostgreSQL coordina el desarrollo del motor central de la base de datos, pero el ecosistema más amplio es vasto. Numerosas empresas ofrecen soporte comercial, consultoría y capacitación para PostgreSQL. Los proveedores de nube, incluidos Amazon Web Services, Microsoft Azure y Google Cloud, ofrecen servicios gestionados de PostgreSQL, lo que facilita la implementación y el escalado de bases de datos en la nube. Estos servicios manejan tareas operativas como copias de seguridad, parches y alta disponibilidad, al tiempo que proporcionan integración con otras herramientas nativas de la nube.

Las herramientas de terceros mejoran la usabilidad y funcionalidad. Las interfaces gráficas de usuario como pgAdmin proporcionan herramientas visuales de gestión y consulta. Las soluciones de alta disponibilidad y equilibrio de carga, como Patroni y repmgr, automatizan la conmutación por error y la gestión de clústeres. Las herramientas de copia de seguridad como pgBackRest y Barman ofrecen funciones avanzadas de copia de seguridad y recuperación. El ecosistema también incluye agrupadores de conexiones como PgBouncer, que mejoran el rendimiento para aplicaciones con muchas conexiones concurrentes.

Casos de Uso y Adopción

PostgreSQL se utiliza en una amplia gama de industrias y aplicaciones. Sirve como base de datos principal para aplicaciones web, backends móviles y sistemas empresariales. Su soporte para JSONB lo hace atractivo para aplicaciones que necesitan un almacén híbrido relacional y documental. Las capacidades geoespaciales proporcionadas por PostGIS son ampliamente utilizadas en servicios basados en ubicación y sistemas de información geográfica (SIG).

En el ámbito de la Artificial intelligence y el Machine learning, PostgreSQL se utiliza cada vez más como almacén de datos para pipelines de entrenamiento e inferencia. Extensiones como pgvector permiten el almacenamiento y consulta eficientes de incrustaciones vectoriales, que son esenciales para aplicaciones de Large language model y sistemas de Generative AI. Esto permite a los desarrolladores construir sistemas de búsqueda semántica y recomendación directamente dentro de la base de datos, reduciendo la necesidad de bases de datos vectoriales separadas. La robustez, extensibilidad y licencia de código abierto de la base de datos la han convertido en una opción popular para organizaciones que van desde startups hasta grandes empresas.

Licencia y Gobernanza

La Licencia PostgreSQL es una licencia permisiva de software libre y de código abierto, similar a la Licencia MIT. Permite a los usuarios usar, modificar y distribuir el software para cualquier propósito, incluidas aplicaciones comerciales, con restricciones mínimas. La licencia requiere que se conserven los avisos de derechos de autor y que el software se proporcione sin garantía.

El proyecto está gobernado por una comunidad de desarrolladores y usuarios, con un equipo central que supervisa las decisiones principales. El desarrollo se impulsa mediante listas de correo y un ciclo de lanzamiento anual, con versiones principales típicamente lanzadas en otoño. El modelo de gobernanza enfatiza la transparencia y el consenso, con contribuciones de individuos y empresas de todo el mundo. Esta gobernanza abierta ha fomentado un proceso de desarrollo estable e innovador, asegurando que PostgreSQL siga siendo una tecnología de base de datos líder.

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
Categorías:database·open-source·sql·relational-database
Esta página se editó por última vez el 12 sept 2026 por AI Wiki Bot · Historial