PostgreSQL ( / ˈ p oʊ s t ɡ r ɛ s k j u ˌ ɛ l /ⓘ POHST -gres-kew- EL ), [ 12 ] [ 13 ] también conocido comoPostgres, es unsistema de gestión de bases de datos relacionales(RDBMS)gratuito y de código abiertola extensibilidadyde SQL. PostgreSQL presentatransaccionesconde atomicidad,consistencia,aislamientoydurabilidad(ACIDvistasactualizables automáticamente,vistas materializadas,disparadores,claves foráneasyprocedimientos almacenados. [ 14 ] Es compatible con todos los principalessistemas operativos, incluidosWindows,Linux,macOS,FreeBSDyOpenBSD, y maneja una variedad de cargas de trabajo desde máquinas individuales hastaalmacenes de datos,lagos de datos, [ 15 ] oservicios webcon muchosusuarios concurrentes.
El Grupo de Desarrollo Global de PostgreSQL se centra exclusivamente en el desarrollo de un motor de base de datos y componentes estrechamente relacionados. Este núcleo es, técnicamente, lo que conforma PostgreSQL, pero existe una extensa comunidad de desarrolladores y un ecosistema que proporciona otros conjuntos de características importantes que, tradicionalmente, podrían ser proporcionados por un proveedor de software propietario . Estas incluyen características de motor de base de datos de propósito especial, como las necesarias para admitir una base de datos geoespacial [ 16 ] o temporal [ 17 ] , o características que emulan otros productos de bases de datos. [ 18 ] [ 19 ] [ 20 ] [ 21 ] También están disponibles de terceros una amplia variedad de características de interfaz de usuario y de máquina, como interfaces gráficas de usuario [ 22 ] [ 23 ] [ 24 ] o conjuntos de herramientas de equilibrio de carga y alta disponibilidad . [ 25 ] La gran red de soporte de PostgreSQL de terceros, 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 PostgreSQL y conforma el ecosistema de PostgreSQL en su conjunto. [ 26 ]
PostgreSQL se denominó originalmente POSTGRES, en referencia a sus orígenes como sucesor de la base de datos Ingres desarrollada en la Universidad de California, Berkeley . [ 27 ] [ 28 ] En 1996, el proyecto pasó a llamarse PostgreSQL
para reflejar su compatibilidad con SQL . Tras una revisión en 2007, el equipo de desarrollo decidió conservar el nombre PostgreSQL y el alias Postgres. [ 29 ]
Historia
Ingres y la Universidad POSTGRES (1982–1994)
PostgreSQL evolucionó a partir del proyecto Ingres en la Universidad de California, Berkeley. En 1982, el líder del equipo Ingres, Michael Stonebraker , dejó Berkeley para crear una versión propietaria de Ingres. [ 27 ] 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 hecho cada vez más evidentes a principios de la década de 1980. Ganó el Premio Turing en 2014 por estos y otros proyectos, [ 30 ] y las técnicas pioneras desarrolladas en ellos.
El nuevo proyecto, POSTGRES, tenía como objetivo agregar las mínimas características necesarias para brindar soporte completo a los tipos de datos . [ 31 ] Estas características incluían la capacidad de definir tipos y describir completamente las relaciones , algo ampliamente utilizado, pero mantenido completamente por el usuario. En POSTGRES, la base de datos entendía las relaciones y podía recuperar información en tablas relacionadas de forma natural mediante reglas . POSTGRES utilizaba muchas de las ideas de Ingres, pero no su código. [ 32 ]
A partir de 1986, se publicaron artículos que describían la base del sistema, y se mostró una versión prototipo 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 agregó soporte para múltiples administradores de almacenamiento [ 33 ] y un motor de consulta mejorado. Para 1993, el número de usuarios comenzó a desbordar el proyecto con solicitudes de soporte y funciones. Después de lanzar la versión 4.2 [ 34 ] el 30 de junio de 1994 , principalmente una limpieza , el proyecto terminó. Berkeley lanzó POSTGRES bajo una variante de la Licencia MIT , que permitió a otros desarrolladores usar el código para cualquier uso. En ese momento, POSTGRES usaba un intérprete de lenguaje de consulta POSTQUEL influenciado por Ingres , que podía usarse interactivamente con una aplicación de consola llamada . monitor
PostgreSQL95 (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 así Postgres95. La monitorconsola también fue reemplazada psql. Yu y Chen anunciaron la primera versión (0.01) a los beta testers el 5 de mayo de 1995. La versión 1.0 de Postgres95 se anunció el 5 de septiembre de 1995, con una licencia más permisiva que permitía modificar libremente el software.
El 8 de julio de 1996, Marc Fournier de Hub.org Networking Services proporcionó el primer servidor de desarrollo no universitario para el esfuerzo de desarrollo de código abierto. [ 3 ] Con la participación de Bruce Momjian y Vadim B. Mikheev, se comenzó a trabajar para estabilizar el código heredado de Berkeley.
PostgreSQL (1996–presente)
En 1996, el proyecto pasó a llamarse PostgreSQL para reflejar su compatibilidad con SQL. La presencia en línea en el sitio web PostgreSQL.org comenzó el 22 de octubre de 1996. [ 35 ] La primera versión de PostgreSQL, la versión 6.0, se lanzó 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. [ 2 ]
El proyecto continúa publicando versiones bajo su licencia de software libre y de código abierto PostgreSQL. El código proviene de contribuciones de proveedores de software propietario, empresas de soporte y programadores de código abierto.
A partir de 2025, PostgreSQL se encuentra en la versión principal 18, que destaca por implementar E/S asíncrona (AIO), lo que permite a los usuarios de la base de datos realizar tareas de E/S concurrentes como lectura anticipada y escaneo secuencial. [ 36 ]
Control de concurrencia multiversión (MVCC)
PostgreSQL gestiona la concurrencia mediante el control de concurrencia multiversión (MVCC), que proporciona a cada transacción una "instantánea" de la base de datos, permitiendo realizar cambios sin afectar a otras transacciones. Esto elimina en gran medida la necesidad de bloqueos de lectura y garantiza 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. Dado que PostgreSQL es inmune a las lecturas sucias, solicitar un nivel de aislamiento de transacción de Lectura no confirmada proporciona una lectura confirmada en su lugar. PostgreSQL admite la serialización completa mediante el método de aislamiento de instantánea serializable (SSI). [ 37 ] La implementación de MVCC de PostgreSQL es propensa a problemas de rendimiento que requieren optimización cuando se encuentra bajo una carga de escritura intensa que actualiza filas existentes. [ 38 ]
Almacenamiento y replicación
Replicación
PostgreSQL incluye replicación binaria integrada que se basa en el envío asíncrono de los cambios ( registros de escritura anticipada (WAL)) a los nodos réplica, con la capacidad de ejecutar consultas de solo lectura en estos nodos replicados. Esto permite distribuir el tráfico de lectura entre varios nodos de manera eficiente. El software de replicación anterior que permitía una escalabilidad de lectura similar normalmente dependía de agregar activadores de replicación al nodo maestro, lo que aumentaba la carga.
PostgreSQL incluye replicación síncrona integrada [ 39 ] que garantiza que, para cada transacción de escritura, el maestro espere hasta que al menos un nodo réplica haya escrito los datos en su registro de transacciones . A diferencia de otros sistemas de bases de datos, la durabilidad de una transacción (ya sea asíncrona o síncrona) se puede especificar por base de datos, por usuario, por sesión o incluso por transacción. Esto puede ser útil para cargas de trabajo que no requieren tales garantías y puede no ser deseable para todos los datos, ya que ralentiza el rendimiento debido al requisito de confirmación de que la transacción llegue al nodo en espera síncrono.
Los servidores en espera pueden ser síncronos o asíncronos. En la configuración se especifican los servidores en espera síncronos, que determinan qué servidores son candidatos para la replicación síncrona. El primero de la lista que esté transmitiendo activamente se utilizará como servidor síncrono actual. Si este falla, el sistema conmuta al siguiente en la lista.
La replicación de PostgreSQL puede provocar conflictos entre los servidores principal y de respaldo, especialmente cuando las tuplas se eliminan prematuramente del servidor de respaldo a pesar de que las consultas en curso acceden a ellas. [ 40 ] Para abordar esto, PostgreSQL incluye un indicador de retroalimentación [ 41 ] mediante el cual el servidor de respaldo informa proactivamente al servidor principal sobre cualquier consulta en curso para mitigar este tipo de conflicto.
La replicación síncrona multi-maestro no está incluida en el núcleo de PostgreSQL. Postgres-XC, que se basa en PostgreSQL, proporciona replicación síncrona multi-maestro escalable. [ 42 ] Tiene la misma licencia que PostgreSQL. Un proyecto relacionado se llama Postgres-XL . Postgres-R es otra bifurcación . [ 43 ] La replicación bidireccional (BDR) es un sistema de replicación asíncrona multi-maestro para PostgreSQL. [ 44 ]
Herramientas como repmgr facilitan la gestión de clústeres de replicación.
Existen varios paquetes de replicación asíncrona basados en disparadores. Estos siguen siendo útiles incluso después de la introducción de las capacidades principales ampliadas, para situaciones en las que la replicación binaria de un clúster de base de datos completo no es apropiada:
- Slony-yo
- Londiste, parte de SkyTools (desarrollado por Skype )
- Replicación multi-maestro Bucardo (desarrollada por Backcountry.com ) [ 45 ]
- Replicación multi-maestro y multi-nivel de SymmetricDS
Índices
PostgreSQL incluye soporte integrado para índices de árbol B y tablas hash regulares , y cuatro métodos de acceso a índices: árboles de búsqueda generalizados ( GiST ), índices invertidos generalizados (GIN), GiST particionados espacialmente (SP-GiST) [ 46 ] e índices de rango de bloques (BRIN). Además, se pueden crear métodos de índice definidos por el usuario, aunque este es un proceso bastante complejo. Los índices en PostgreSQL también admiten las siguientes características:
- Los índices de expresiones se pueden crear utilizando un índice del resultado de una expresión o función, en lugar de simplemente el valor de una columna.
- Los índices parciales , que solo indexan una parte de una tabla, se pueden crear agregando una cláusula WHERE al final de la instrucción CREATE INDEX. Esto permite crear un índice más pequeño.
- El planificador puede utilizar varios índices conjuntamente para satisfacer consultas complejas, utilizando operaciones de índice de mapa de bits temporales en memoria (útiles para aplicaciones de almacenamiento de datos para unir una tabla de hechos grande con tablas de dimensiones más pequeñas , como las organizadas en un esquema de estrella ).
- La indexación de k vecinos más cercanos ( k -NN), también conocida como KNN-GiST [ 47 ] , permite buscar de forma eficiente los valores más cercanos al especificado, lo que resulta útil para encontrar palabras similares, objetos o ubicaciones cercanas con datos geoespaciales . Esto se logra sin necesidad de una coincidencia exhaustiva de valores.
- Las exploraciones que solo utilizan índices a menudo permiten que el sistema obtenga datos de los índices sin tener que acceder nunca a la tabla principal.
- Índices de rango de bloques (BRIN).
Esquemas
Los esquemas de PostgreSQL son espacios de nombres que permiten que objetos del mismo tipo y nombre coexistan en una misma base de datos. No deben confundirse con un esquema de base de datos , que es la especificación abstracta, estructural y organizativa que define cómo se relacionan los datos de cada tabla con los de otras tablas. Todos los objetos de la base de datos PostgreSQL, salvo algunos objetos globales como los roles y los espacios de tablas , existen dentro de un esquema. No se pueden anidar, y los esquemas no pueden contener otros esquemas. El sistema de permisos controla el acceso a los esquemas y a su contenido. Por defecto, las bases de datos recién creadas solo tienen un esquema llamado "public" , pero se pueden añadir otros esquemas y el esquema "public" no es obligatorio.
Una search_pathconfiguración determina el orden en que PostgreSQL verifica los esquemas en busca de objetos no calificados (aquellos sin un esquema con prefijo). Por defecto, se establece en $user, public( $userse refiere al usuario de la base de datos actualmente conectado). Este valor predeterminado se puede establecer a nivel de base de datos o rol, pero como es un parámetro de sesión, se puede modificar libremente (incluso varias veces) durante una sesión de cliente, afectando solo a esa sesión.
Los esquemas inexistentes, u otros esquemas no accesibles para el usuario que ha iniciado sesión, que aparecen en search_path, se omiten silenciosamente durante la búsqueda de objetos.
Los nuevos objetos se crean en el esquema válido (uno al que se pueda acceder) que aparezca primero en la ruta de búsqueda.
Tipos de datos
Se admite una amplia variedad de tipos de datos nativos, entre los que se incluyen:
- Booleano
- Aritmética de precisión arbitraria
- Carácter (texto, varchar, char)
- Binario
- Fecha/hora (marca de tiempo/hora con/sin zona horaria, fecha, intervalo)
- Dinero
- Enumeración
- cadenas de bits
- Tipo de búsqueda de texto
- Compuesto
- HStore, un almacén de clave-valor habilitado por extensión dentro de PostgreSQL [ 48 ]
- Matrices ( de longitud variable y que pueden ser de cualquier tipo de datos, incluidos texto y tipos compuestos) con un tamaño de almacenamiento total de hasta 1 GB.
- Primitivas geométricas
- Direcciones IPv4 e IPv6
- Bloques de enrutamiento entre dominios sin clases (CIDR) y direcciones MAC
- XML compatible con consultas XPath
- Identificador único universal (UUID)
- Notación de objetos JavaScript ( JSON ), y un JSONB binario más rápido (no es lo mismo que BSON [ 49 ] )
Además, los usuarios pueden crear sus propios tipos de datos, que generalmente se pueden indexar completamente mediante las infraestructuras de indexación de PostgreSQL : GiST, GIN y SP-GiST. Algunos ejemplos son los tipos de datos del sistema de información geográfica (SIG) del proyecto PostGIS para PostgreSQL.
También existe un tipo de dato llamado dominio , que es igual que cualquier otro tipo de dato, pero con restricciones opcionales definidas por su creador. Esto significa que cualquier dato introducido en una columna mediante dicho dominio deberá ajustarse a las restricciones definidas en el mismo.
Se puede utilizar un tipo de dato que represente un rango de datos, denominado tipo de rango. Estos pueden ser rangos discretos (por ejemplo, todos los valores enteros del 1 al 10) o rangos continuos (por ejemplo, cualquier hora entre las 10:00 y las 11:00 ). Los tipos de rango integrados disponibles incluyen rangos de enteros, números grandes, números decimales, marcas de tiempo (con y sin zona horaria) y fechas.
Se pueden crear tipos de rango personalizados para habilitar nuevos tipos de rangos, como rangos de direcciones IP usando el tipo inet como base, o rangos de punto flotante usando el tipo de datos float como base. Los tipos de rango admiten límites de rango inclusivos y exclusivos usando los caracteres []y respectivamente. (p. ej., representa todos los enteros desde 4 inclusive hasta 9 pero sin incluirlo). Los tipos de rango también son compatibles con los operadores existentes que se utilizan para comprobar la superposición, la contención, el derecho de, etc.()[4,9)
Objetos definidos por el usuario
Se pueden crear nuevos tipos de casi todos los objetos dentro de la base de datos, incluyendo:
- Reparto
- Conversiones
- Tipos de datos
- Dominios de datos
- Funciones, incluidas las funciones de agregación y las funciones de ventana.
- Índices, incluidos índices personalizados para tipos personalizados.
- Operadores (los existentes pueden sobrecargarse )
- Lenguajes de procedimiento
Herencia
Las tablas pueden configurarse para heredar sus características de una tabla principal . Los datos de las tablas secundarias parecerán existir en las tablas principales, a menos que se seleccionen datos de la tabla principal mediante la palabra clave ONLY . Agregar una columna a la tabla principal hará que esa columna aparezca en la tabla secundaria.SELECT*FROMONLYparent_table;
La herencia se puede utilizar para implementar el particionamiento de tablas, empleando disparadores o reglas para dirigir las inserciones de la tabla principal a las tablas secundarias correspondientes.
Esta función no es totalmente compatible. En particular, las restricciones de tabla no son heredables actualmente. Todas las restricciones de comprobación y las restricciones de no nulidad de una tabla principal se heredan automáticamente en sus tablas secundarias. Otros tipos de restricciones (unique, clave primaria y clave externa) no se heredan.
La herencia proporciona una forma de asignar las características de las jerarquías de generalización representadas en los diagramas entidad-relación (DER) directamente a la base de datos PostgreSQL.
Otras características de almacenamiento
- Restricciones de integridad referencial, incluidas restricciones de clave externa , restricciones de columna y comprobaciones de fila.
- Almacenamiento de objetos grandes binarios y textuales
- espacios de tablas
- Intercalación por columna
- Copia de seguridad en línea
- Recuperación puntual, implementada mediante registro de escritura anticipada.
- Actualizaciones in situ con pg_upgrade para un menor tiempo de inactividad.
Control y conectividad
Envoltorios de datos extranjeros
PostgreSQL puede conectarse con otros sistemas para recuperar datos mediante adaptadores de datos externos (FDW). [ 50 ] Estos pueden adoptar cualquier forma de fuente de datos, como un sistema de archivos, otro sistema de gestión de bases de datos relacionales (RDBMS) o un servicio web. Esto significa que las consultas de base de datos habituales pueden usar estas fuentes de datos como tablas normales, e incluso combinar varias fuentes de datos.
Interfaces
PostgreSQL admite un protocolo de comunicación binario que permite a las aplicaciones conectarse al servidor de base de datos. El protocolo tiene versiones (actualmente 3.0, a partir de PostgreSQL 7.4) y cuenta con una especificación detallada. [ 51 ]
La implementación oficial del cliente de este protocolo de comunicación es una API de C , libpq. [ 52 ] Además, la herramienta ECPG, oficialmente compatible , permite incrustar comandos SQL en código C. [ 53 ] Ambas forman parte de la distribución estándar de PostgreSQL. [ 54 ]
Existen bibliotecas de terceros para conectarse a PostgreSQL disponibles para muchos lenguajes de programación , incluidos C++ , [ 55 ] Java , [ 56 ] Julia , [ 57 ] [ 58 ] [ 59 ] Python , [ 60 ] Node.js , [ 61 ] Go , [ 62 ] y Rust . [ 63 ]
Lenguajes de procedimiento
Los lenguajes procedimentales permiten a los desarrolladores extender la base de datos con subrutinas personalizadas (funciones), a menudo llamadas procedimientos almacenados . Estas funciones se pueden usar para crear disparadores de base de datos (funciones que se invocan al modificar ciertos datos), tipos de datos personalizados y funciones de agregación . [ 64 ] Los lenguajes procedimentales también se pueden invocar sin definir una función, utilizando un comando DO a nivel SQL. [ 65 ]
Los lenguajes se dividen en dos grupos: los procedimientos escritos en lenguajes seguros se ejecutan en un entorno aislado (sandbox) y cualquier usuario puede crearlos y utilizarlos sin problemas. Los procedimientos escritos en lenguajes no seguros solo pueden ser creados por superusuarios , ya que permiten eludir las restricciones de seguridad de la base de datos, pero también pueden acceder a fuentes externas a ella. Algunos lenguajes, como Perl, ofrecen versiones tanto seguras como no seguras.
PostgreSQL tiene soporte integrado para tres lenguajes de programación procedimentales:
- SQL simple (seguro). Las funciones SQL más sencillas se pueden expandir directamente en la consulta (SQL) que las llama, lo que ahorra la sobrecarga de la llamada a la función y permite que el optimizador de consultas "vea dentro" de la función.
- Lenguaje de procedimientos/PostgreSQL ( PL/pgSQL ) (seguro), que se asemeja al lenguaje de procedimientos de Oracle para SQL ( PL/SQL ) y a los módulos almacenados persistentes SQL ( SQL/PSM ).
- C (no seguro), que permite cargar una o más bibliotecas compartidas personalizadas en la base de datos. Las funciones escritas en C ofrecen el mejor rendimiento, pero los errores en el código pueden provocar fallos y, potencialmente, dañar la base de datos. La mayoría de las funciones integradas están escritas en C.
Además, PostgreSQL permite cargar lenguajes procedimentales en la base de datos mediante extensiones. Se incluyen tres extensiones de lenguaje con PostgreSQL para admitir Perl , Tcl y Python . Para Python, se utiliza la versión actual Python 3 , y la versión descontinuada Python 2 ya no es compatible a partir de PostgreSQL 15. Ambas eran compatibles anteriormente, con Python 2 como predeterminado , mientras que las versiones antiguas y nuevas no podían usarse en la misma sesión. [ 66 ] Los proyectos externos brindan soporte para muchos otros lenguajes, [ 67 ] incluyendo PL/ Java , JavaScript (PL/V8), PL/ Julia , [ 59 ] PL/ R , [ 68 ] PL/ Ruby y otros.
Desencadenantes
Los disparadores son eventos que se activan mediante las sentencias del lenguaje de manipulación de datos (DML) de SQL. Por ejemplo, una sentencia INSERT podría activar un disparador que compruebe la validez de los valores de la sentencia. La mayoría de los disparadores solo se activan mediante sentencias INSERT o UPDATE .
Los disparadores son totalmente compatibles y pueden asociarse a tablas. Pueden ser por columna y condicionales; por ejemplo, los disparadores UPDATE pueden dirigirse a columnas específicas de una tabla, y se puede configurar su ejecución bajo un conjunto de condiciones, tal como se especifica en la cláusula WHERE del disparador. Los disparadores pueden asociarse a vistas mediante la condición INSTEAD OF. Varios disparadores se ejecutan en orden alfabético. Además de llamar a funciones escritas en PL/pgSQL nativo, los disparadores también pueden invocar funciones escritas en otros lenguajes como PL/Python o PL/Perl.
notificaciones asíncronas
PostgreSQL proporciona un sistema de mensajería asíncrona al que se accede mediante los comandos NOTIFY, LISTEN y UNLISTEN. Una sesión puede emitir un comando NOTIFY, junto con el canal especificado por el usuario y una carga útil opcional, para marcar la ocurrencia de un evento particular. Otras sesiones pueden detectar estos eventos emitiendo un comando LISTEN, que puede escuchar un canal específico. Esta funcionalidad se puede utilizar para una amplia variedad de propósitos, como notificar a otras sesiones cuando se ha actualizado una tabla o para que distintas aplicaciones detecten cuándo se ha realizado una acción específica. Este sistema evita la necesidad de que las aplicaciones realicen sondeos continuos para comprobar si algo ha cambiado, reduciendo así la sobrecarga innecesaria. Las notificaciones son totalmente transaccionales, es decir, los mensajes no se envían hasta que se confirma la transacción de la que proceden. Esto elimina el problema de que se envíen mensajes para una acción que luego se revierte.
Muchos conectores para PostgreSQL ofrecen soporte para este sistema de notificaciones (incluidos libpq, JDBC, Npgsql, psycopg y node.js), por lo que puede ser utilizado por aplicaciones externas.
PostgreSQL puede actuar como un servidor "pub/sub" o servidor de trabajos persistente y eficaz combinando LISTEN con FOR UPDATE SKIP LOCKED. [ 69 ] [ 70 ] [ 71 ]
Normas
Las reglas permiten reescribir el árbol de consultas de una consulta entrante; son un lenguaje de macros SQL que se ejecuta automáticamente. Las reglas de reescritura de consultas se asocian a una tabla o clase y reescriben las sentencias DML entrantes (select, insert, update o delete) en una o más consultas que reemplazan la sentencia DML original o se ejecutan junto con ella. La reescritura de consultas se produce después del análisis de la sentencia DML y antes de la planificación de la consulta.
La funcionalidad que proporcionan las reglas fue, prácticamente en todos los aspectos, replicada posteriormente con la introducción de nuevos tipos de disparadores. Generalmente, se prefiere el uso de disparadores a las reglas, ya que resulta más sencillo comprender su comportamiento e interacciones que cuando se utilizan reglas equivalentes.
Otras funciones de consulta
- Actas
- Búsqueda de texto completo
- Vistas
- Uniones internas, externas (completas, izquierda y derecha) y transversales
- Subselecciones
- Subconsultas correlacionadas [ 75 ]
- Expresiones regulares [ 76 ]
- Expresiones de tabla comunes y expresiones de tabla comunes modificables
- Conexiones cifradas mediante Transport Layer Security (TLS); las versiones actuales no utilizan SSL vulnerable, incluso con esa opción de configuración [ 77 ].
- Dominios
- Puntos de guardado
- Compromiso en dos fases
- La técnica de almacenamiento de atributos de gran tamaño (TOAST) se utiliza para almacenar de forma transparente atributos de tabla grandes (como archivos adjuntos MIME grandes o mensajes XML) en un área separada, con compresión automática.
- SQL embebido se implementa mediante un preprocesador. El código SQL se escribe primero embebido en código C. Luego, el código se ejecuta a través del preprocesador ECPG, que reemplaza el SQL con llamadas a la biblioteca de código. Posteriormente, el código se compila con un compilador de C. El embebido también funciona con C++ , pero no reconoce todas las construcciones de C++.
Modelo de concurrencia
El servidor PostgreSQL se basa en procesos (no en subprocesos) y utiliza un proceso del sistema operativo por sesión de base de datos. El sistema operativo distribuye automáticamente varias sesiones entre todas las CPU disponibles. Muchos tipos de consultas también pueden paralelizarse en varios procesos de trabajo en segundo plano, aprovechando así las múltiples CPU o núcleos. [ 78 ] Las aplicaciones cliente pueden usar subprocesos y crear múltiples conexiones a la base de datos desde cada subproceso. [ 79 ]
Seguridad
PostgreSQL gestiona su seguridad interna por rol . Un rol se considera generalmente un usuario (un rol que puede iniciar sesión) o un grupo (un rol del que otros roles son miembros). Se pueden otorgar o revocar permisos sobre cualquier objeto, incluso a nivel de columna, y se puede permitir o impedir la visibilidad, creación, modificación o eliminación de objetos a nivel de base de datos, esquema , tabla y fila.
La función SECURITY LABEL de PostgreSQL (extensión a los estándares SQL) permite una seguridad adicional; con un módulo cargable incluido que admite el control de acceso obligatorio (MAC) basado en etiquetas según la política de seguridad de Security-Enhanced Linux (SELinux). [ 80 ] [ 81 ]
PostgreSQL admite de forma nativa una amplia gama de mecanismos de autenticación externos, entre los que se incluyen:
- Contraseña: SCRAM-SHA-256 , [ 82 ] MD5 o texto plano .
- Interfaz de programación de aplicaciones de servicios de seguridad genéricos (GSSAPI)
- Interfaz del proveedor de soporte de seguridad (SSPI)
- Kerberos
- ident (asigna el nombre de usuario del sistema operativo proporcionado por un servidor ident al nombre de usuario de la base de datos)
- Par (asigna el nombre de usuario local al nombre de usuario de la base de datos)
- Protocolo ligero de acceso a directorios (LDAP)
- Directorio activo (AD)
- RADIO
- Certificado
- Módulo de autenticación conectable (PAM)
Los métodos GSSAPI, SSPI, Kerberos, peer, ident y certificate también pueden usar un archivo "map" específico que enumera qué usuarios que coinciden con ese sistema de autenticación tienen permitido conectarse como un usuario de base de datos específico.
Estos métodos se especifican en el archivo de configuración de autenticación basada en host del clúster ( pg_hba.conf), que determina qué conexiones están permitidas. Esto permite controlar qué usuario puede conectarse a qué base de datos, desde dónde puede conectarse (dirección IP, rango de direcciones IP, socket de dominio), qué sistema de autenticación se aplicará y si la conexión debe usar Seguridad de la capa de transporte (TLS).
Cumplimiento de las normas
PostgreSQL afirma una alta, pero no completa, conformidad con el último estándar SQL ("a partir de la versión 17, lanzada en septiembre de 2024, PostgreSQL cumple con al menos 170 de las 177 características obligatorias para la conformidad con SQL:2023 Core", y ninguna otra base de datos se ajusta completamente a él [ 83 ] ). Una excepción es el manejo de identificadores sin comillas, como nombres de tablas o columnas. En PostgreSQL, se convierten internamente a minúsculas [ 84 ] , mientras que el estándar indica que los identificadores sin comillas deben convertirse a mayúsculas. Por lo tanto, Foodebería ser equivalente a FOOno foosegún el estándar. Otras deficiencias se refieren a la ausencia de tablas temporales que permitan el registro automático de versiones de filas durante las transacciones con la posibilidad de navegar en el tiempo (predicado FOR SYSTEM TIME), aunque existen extensiones de terceros relativamente compatibles con SQL. [ 17 ]
Puntos de referencia y rendimiento
Se han realizado muchos estudios informales sobre el rendimiento de PostgreSQL. [ 85 ] Las mejoras de rendimiento destinadas a mejorar la escalabilidad comenzaron en gran medida con la versión 8.1. Pruebas comparativas sencillas entre la versión 8.0 y la versión 8.4 mostraron que esta última era más de diez veces más rápida en cargas de trabajo de solo lectura y al menos 7,5 veces más rápida en cargas de trabajo de lectura y escritura. [ 86 ]
El primer benchmark estándar de la industria y validado por pares se completó en junio de 2007, utilizando el servidor de aplicaciones Sun Java System (versión propietaria de GlassFish ) 9.0 Platform Edition, el servidor Sun Fire basado en UltraSPARC T1 y PostgreSQL 8.2. [ 87 ] Este resultado de 778,14 SPECjAppServer2004 JOPS@Standard se compara favorablemente con los 874 JOPS@Standard con Oracle 10 en un sistema HP-UX basado en Itanium . [ 85 ]
En agosto de 2007, Sun presentó una puntuación de referencia mejorada de 813,73 SPECjAppServer2004 JOPS@Standard. Con el sistema bajo prueba a un precio reducido, la relación precio/rendimiento mejoró de 84,98 $/JOPS a 70,57 $/JOPS. [ 88 ]
La configuración predeterminada de PostgreSQL utiliza solo una pequeña cantidad de memoria dedicada para fines críticos de rendimiento, como el almacenamiento en caché de bloques de la base de datos y la ordenación. Esta limitación se debe principalmente a que los sistemas operativos más antiguos requerían cambios en el núcleo para permitir la asignación de grandes bloques de memoria compartida . [ 89 ] PostgreSQL.org ofrece consejos sobre prácticas básicas recomendadas de rendimiento en una wiki . [ 90 ]
En abril de 2012, Robert Haas de EnterpriseDB demostró la escalabilidad lineal de CPU de PostgreSQL 9.2 utilizando un servidor con 64 núcleos. [ 91 ]
Matloob Khushi realizó una prueba comparativa entre PostgreSQL 9.0 y MySQL 5.6.15 para evaluar su capacidad de procesar datos genómicos. En su análisis de rendimiento, descubrió que PostgreSQL extrae regiones genómicas superpuestas ocho veces más rápido que MySQL utilizando dos conjuntos de datos de 80 000 cada uno, que forman regiones aleatorias de ADN humano. La inserción y la carga de datos en PostgreSQL también fueron mejores, aunque la capacidad de búsqueda general de ambas bases de datos fue prácticamente equivalente. [ 92 ]
Plataformas
PostgreSQL está disponible para los siguientes sistemas operativos: Linux (todas las distribuciones recientes), instaladores ARM de 64 bits y x86-64 disponibles y probados para macOS versión 10.14 y posteriores, [ 93 ] Windows (con instaladores disponibles y probados para Windows Server 2022 y 2016 de 64 bits [ 94 ] ), FreeBSD , OpenBSD , [ 95 ] NetBSD , DragonFlyBSD y estos sin ejecutables binarios oficiales (aunque probablemente no oficiales disponibles), Solaris , [ 96 ] e illumos .
Se espera que PostgreSQL funcione en cualquiera de las siguientes arquitecturas de conjunto de instrucciones (y sistemas operativos): x86-64 de 64 bits y x86 de 32 bits en Windows y otros sistemas operativos; además de Windows, también es compatible con: ARM de 64 bits [ 97 ] y el antiguo ARM de 32 bits , incluyendo versiones más antiguas como ARMv6 en Raspberry Pi [ 98 ] , RISC-V , z/Architecture , S/390 , PowerPC (incluido Power ISA de 64 bits ), SPARC (también de 64 bits), MIPS y PA-RISC . También se sabía que funcionaba en otras plataformas (aunque no se había probado en ellas durante años, es decir, en las versiones más recientes). [ 99 ]
Administración de bases de datos
Las interfaces y herramientas de código abierto para la administración de PostgreSQL incluyen:
- psql
- La interfaz principal de PostgreSQL es el
psqlprograma de línea de comandos , que permite introducir consultas SQL directamente o ejecutarlas desde un archivo. Además, psql ofrece varios metacomandos y funciones similares a las de un intérprete de comandos para facilitar la escritura de scripts y la automatización de diversas tareas; por ejemplo, el autocompletado de nombres de objetos y sintaxis SQL. - pgAdmin
- El paquete pgAdmin es una herramienta de administración de interfaz gráfica de usuario (GUI) gratuita y de código abierto para PostgreSQL, compatible con numerosas plataformas informáticas. [ 101 ] El programa está disponible en más de una docena de idiomas. El primer prototipo, denominado pgManager, se escribió para PostgreSQL 6.3.2 en 1998, y posteriormente se reescribió y publicó como pgAdmin bajo la Licencia Pública General GNU (GPL). La segunda versión (denominada pgAdmin II) fue una reescritura completa, publicada por primera vez el 16 de enero de 2002. La tercera versión, pgAdmin III, se publicó inicialmente bajo la Licencia Artística y posteriormente bajo la misma licencia que PostgreSQL. A diferencia de las versiones anteriores, escritas en Visual Basic , pgAdmin III está escrito en C++, utilizando el marco wxWidgets [ 102 ] , lo que le permite ejecutarse en la mayoría de los sistemas operativos comunes. La herramienta de consulta incluye un lenguaje de scripting llamado pgScript para tareas de administración y desarrollo. En diciembre de 2014, Dave Page, fundador y desarrollador principal del proyecto pgAdmin, [ 103 ] anunció que, con el cambio hacia modelos basados en la web, se había comenzado a trabajar en pgAdmin 4 con el objetivo de facilitar las implementaciones en la nube. [ 104 ] En 2016, se lanzó pgAdmin 4. El backend de pgAdmin 4 se escribió en Python , utilizando Flask y el framework Qt . [ 105 ]
- phpPgAdmin
- phpPgAdmin es una herramienta de administración web para PostgreSQL escrita en PHP y basada en la popular interfaz phpMyAdmin , originalmente escrita para la administración de MySQL . [ 106 ]
- PostgreSQL Studio
- PostgreSQL Studio permite a los usuarios realizar tareas esenciales de desarrollo de bases de datos PostgreSQL desde una consola web. PostgreSQL Studio permite a los usuarios trabajar con bases de datos en la nube sin necesidad de abrir cortafuegos. [ 107 ]
- EquipoPostgreSQL
- Interfaz web para PostgreSQL basada en AJAX/JavaScript. Permite explorar, mantener y crear datos y objetos de base de datos a través de un navegador web. La interfaz ofrece un editor SQL con pestañas y autocompletado, widgets para editar filas, navegación mediante claves foráneas entre filas y tablas, gestión de favoritos para scripts de uso frecuente, entre otras características. Admite SSH tanto para la interfaz web como para las conexiones a la base de datos . Hay instaladores disponibles para Windows, Macintosh y Linux, y un archivo multiplataforma sencillo que se ejecuta desde un script. [ 108 ]
- LibreOffice, OpenOffice.org
- LibreOffice y OpenOffice.org Base se pueden usar como interfaz para PostgreSQL. [ 109 ] [ 110 ]
- pgTejón
- El analizador de registros de PostgreSQL pgBadger genera informes detallados a partir de un archivo de registro de PostgreSQL. [ 111 ]
- pgDevOps
- pgDevOps es un conjunto de herramientas web para instalar y administrar múltiples versiones, extensiones y componentes de la comunidad de PostgreSQL, desarrollar consultas SQL, monitorear bases de datos en ejecución y encontrar problemas de rendimiento. [ 112 ]
- Administrador
- Adminer es una herramienta de administración web sencilla para PostgreSQL y otras bases de datos, escrita en PHP.
- pgBackRest
- pgBackRest es una herramienta de copia de seguridad y restauración para PostgreSQL que ofrece soporte para copias de seguridad completas, diferenciales e incrementales. [ 113 ]
- pgaudit
- pgaudit es una extensión de PostgreSQL que proporciona un registro de auditoría detallado de sesiones y/o objetos a través de la función de registro estándar proporcionada por PostgreSQL. [ 114 ]
- WAL-E
- WAL-E es una herramienta de copia de seguridad y restauración para PostgreSQL que proporciona soporte para copias de seguridad físicas ( basadas en WAL ), escrita en Python. [ 115 ]
- DBeaver
- DBeaver es una herramienta de administración gráfica de código abierto y gratuita para PostgreSQL. Incluye diagramas de entidades visuales y funciones de Intellisense . También cuenta con una licencia PRO comercial.
- Postgreso
- Postgresus es una herramienta de copia de seguridad de código abierto con interfaz gráfica de usuario para copias de seguridad programadas, compatible con fuentes externas (S3, NAS, FTP, Google Drive, Google Cloud, etc.) y notificaciones a servicios externos (Slack, Discord, Telegram, SMTP, etc.). [ 116 ]
Varias empresas ofrecen herramientas propietarias para PostgreSQL. Estas suelen constar de un núcleo universal adaptado a diferentes bases de datos específicas. Comparten en su mayoría las funciones de administración con las herramientas de código abierto, pero ofrecen mejoras en el modelado de datos , la importación, la exportación y la generación de informes.
Usuarios destacados
Entre las organizaciones y productos destacados que utilizan PostgreSQL como base de datos principal se incluyen:
- Microsoft , utilizado para un panel de análisis de "Vista de calidad de lanzamiento" (RQV) a escala de petabytes, que realiza un seguimiento de la calidad de las actualizaciones de Windows analizando 20 000 tipos de métricas de más de 800 millones de dispositivos Windows. [ 117 ]
- En 2009, el sitio web de redes sociales Myspace utilizó la base de datos nCluster de Aster Data Systems para el almacenamiento de datos, que estaba construida sobre PostgreSQL sin modificar. [ 118 ] [ 119 ]
- Geni.com utiliza PostgreSQL para su base de datos genealógica principal. [ 120 ]
- OpenStreetMap , un proyecto colaborativo para crear un mapa del mundo editable y gratuito. [ 121 ]
- Afilias , registros de dominios para .org , .info y otros. [ 122 ] [ 123 ]
- Juegos multijugador en línea de Sony Online . [ 124 ]
- BASF , plataforma de compras para su portal agroindustrial. [ 125 ]
- Reddit, sitio web de noticias sociales. [ 126 ]
- Aplicación VoIP Skype , bases de datos empresariales centrales . [ 127 ]
- Sun xVM , la suite de virtualización y automatización de centros de datos de Sun. [ 128 ]
- MusicBrainz , enciclopedia musical en línea abierta. [ 129 ]
- La Estación Espacial Internacional – para recopilar datos de telemetría en órbita y replicarlos en la Tierra. [ 130 ]
- Sitio de redes sociales MyYearbook . [ 131 ]
- Instagram , un servicio móvil para compartir fotos. [ 132 ]
- Disqus , un servicio de discusión y comentarios en línea. [ 133 ]
- TripAdvisor , sitio web de información de viajes con contenido generado principalmente por los usuarios. [ 134 ]
- Yandex , una empresa rusa de internet, cambió su servicio Yandex.Mail de Oracle a Postgres. [ 135 ]
- Amazon Redshift , parte de AWS, es un sistema de procesamiento analítico en línea (OLAP) basado en columnas, que utiliza modificaciones de Postgres de ParAccel .
- El Sistema Interactivo de Preparación de Pronósticos (IFPS) del Servicio Meteorológico Nacional (NWS ) de la Administración Nacional Oceánica y Atmosférica (NOAA ) integra datos de los radares meteorológicos NEXRAD , sistemas de superficie e hidrológicos para construir modelos de pronóstico localizados detallados. [ 123 ] [ 136 ]
- El servicio meteorológico nacional del Reino Unido , Met Office , ha comenzado a reemplazar Oracle por PostgreSQL en una estrategia para implementar más tecnología de código abierto. [ 136 ] [ 137 ]
- WhitePages.com había estado utilizando Oracle y MySQL , pero cuando llegó el momento de trasladar sus directorios principales internamente, optó por PostgreSQL. Dado que WhitePages.com necesita combinar grandes conjuntos de datos de múltiples fuentes, la capacidad de PostgreSQL para cargar e indexar datos a altas velocidades fue clave en su decisión de utilizar PostgreSQL. [ 123 ]
- FlightAware , un sitio web de seguimiento de vuelos. [ 138 ]
- Grofers , un servicio de entrega de comestibles en línea. [ 139 ]
- The Guardian migró de MongoDB a PostgreSQL en 2018. [ 140 ]
- YugabyteDB implementa la capa de consulta de PostgreSQL como su modo SQL predeterminado.
- OpenAI utiliza PostgreSQL como parte de su servicio API principal, incluso para ChatGPT. [ 141 ] [ 142 ]
Implementaciones de servicios
Algunos proveedores destacados ofrecen PostgreSQL como software como servicio :
- Heroku , un proveedor de plataforma como servicio , ha sido compatible con PostgreSQL desde sus inicios en 2007. [ 143 ] Ofrecen funciones de valor añadido como la reversión completa de la base de datos (capacidad de restaurar una base de datos desde cualquier momento especificado), [ 144 ] que se basa en WAL-E, software de código abierto desarrollado por Heroku. [ 145 ]
- En enero de 2012, EnterpriseDB lanzó una versión en la nube tanto de PostgreSQL como de su propio servidor propietario Postgres Plus Advanced Server con aprovisionamiento automatizado para conmutación por error, replicación, equilibrio de carga y escalado. Se ejecuta en Amazon Web Services . [ 146 ] Desde 2015, Postgres Advanced Server se ofrece como ApsaraDB para PPAS, una base de datos relacional como servicio en Alibaba Cloud. [ 147 ]
- VMware ha ofrecido vFabric Postgres (también denominado vPostgres [ 148 ] ) para nubes privadas en VMware vSphere desde mayo de 2012. [ 149 ] La compañía anunció el fin de disponibilidad (EOA) del producto en 2014. [ 150 ]
- En noviembre de 2013, Amazon Web Services anunció la incorporación de PostgreSQL a su oferta de servicios de bases de datos relacionales . [ 151 ] [ 152 ]
- En noviembre de 2016, Amazon Web Services anunció la incorporación de compatibilidad con PostgreSQL a su oferta de base de datos administrada nativa de la nube, Amazon Aurora . [ 153 ]
- En mayo de 2017, Microsoft Azure anunció Azure Databases para PostgreSQL. [ 154 ]
- En mayo de 2019, Alibaba Cloud anunció PolarDB para PostgreSQL. [ 155 ]
- La plataforma Jelastic Multicloud como servicio ha proporcionado soporte para PostgreSQL basado en contenedores desde 2011. También ofrece replicación asíncrona automatizada maestro-esclavo de PostgreSQL. [ 156 ]
- En junio de 2019, IBM Cloud anunció IBM Cloud Hyper Protect DBaaS para PostgreSQL. [ 157 ]
- En septiembre de 2020, Crunchy Data anunció Crunchy Bridge. [ 158 ]
- En octubre de 2021, Render ha brindado soporte para bases de datos PostgreSQL administradas desde 2021. [ 159 ] .
- En junio de 2022, Neon.tech anunció Neon Serverless Postgres. [ 160 ]
- En diciembre de 2022, Google Cloud Platform anunció la disponibilidad general de AlloyDB como un servicio en la nube PostgreSQL totalmente administrado. [ 161 ]
- En octubre de 2023, Nile anunció Nile Postgres Platform. [ 162 ]
- En abril de 2024, Google Cloud Platform anunció la disponibilidad general de AlloyDB Omni, una versión descargable de AlloyDB diseñada para ejecutarse en cualquier infraestructura, incluyendo entornos locales, otras nubes o entornos de borde. [ 163 ]
- En septiembre de 2025, PlanetScale.com anunció la disponibilidad general de PlanetScale para Postgres, una versión administrada y de alta disponibilidad de Postgres. [ 164 ]
Historial de lanzamientos

Ecosistema y derivados
Gracias a su permisiva licencia de código abierto y su arquitectura extensible, se ha desarrollado un amplio ecosistema en torno a PostgreSQL. Este incluye numerosas empresas que ofrecen soporte y alojamiento especializados, así como varias bifurcaciones y bases de datos derivadas que adaptan PostgreSQL a cargas de trabajo específicas. Entre las derivadas más destacadas se encuentran:
- Base de datos Greenplum : Un almacén de datos de procesamiento masivamente paralelo (MPP) basado en una versión anterior de PostgreSQL, diseñado para análisis a gran escala. [ 188 ]
- TimescaleDB : Una base de datos de series temporales que se ofrece como una extensión de PostgreSQL, optimizada para manejar la ingesta rápida y las consultas complejas de datos de series temporales. [ 189 ]
- Amazon Aurora : Una base de datos relacional nativa de la nube ofrecida por Amazon Web Services que proporciona una edición compatible con PostgreSQL. [ 190 ]
- Neon: Una implementación de PostgreSQL de código abierto y sin servidor que separa el almacenamiento y el procesamiento para ofrecer características de desarrollo modernas como la ramificación de bases de datos. [ 191 ]
- AlloyDB: Una base de datos de Google Cloud totalmente administrada y compatible con PostgreSQL que separa el procesamiento y el almacenamiento, diseñada para cargas de trabajo híbridas y capacidades de IA integradas. [ 192 ]
- PlanetScale Postgres: Instancias de Postgres totalmente administradas y de alta disponibilidad que admiten ramificación de bases de datos y Database Traffic Control™. [ 164 ] [ 193 ]
Véase también
- Comparación de sistemas de gestión de bases de datos relacionales
- Escalabilidad de la base de datos
- Lista de bases de datos que utilizan MVCC
- LLVM (llvmjit es el motor JIT utilizado por PostgreSQL)
Referencias
- ↑ "PostgreSQL" . Consultado el 21 de septiembre de 2019.
PostgreSQL: La base de datos relacional de código abierto más avanzada del mundo
. - 1 2 "Perfiles de colaboradores" . Grupo de Desarrollo Global de PostgreSQL . Consultado el 14 de marzo de 2017 .
- 1 2 "¡Feliz cumpleaños, PostgreSQL!" . Grupo de Desarrollo Global de PostgreSQL. 8 de julio de 2008.
- ↑ "¡PostgreSQL 18.4, 17.10, 16.14, 15.18 y 14.23 ya están disponibles!" 14 de mayo de 2026.
- ↑ "¡PostgreSQL 19 Beta 2 publicado!" 16 de julio de 2026.
- 1 2 "Licencia" . Grupo de Desarrollo Global de PostgreSQL . Consultado el 20 de septiembre de 2010 .
- ↑ "Licencia de PostgreSQL aprobada por OSI" . Crynwr. 18 de febrero de 2010. Archivado del original el 8 de agosto de 2016. Consultado el 18 de febrero de 2010 .
- 1 2 "Licencia OSI PostgreSQL" . Open Source Initiative. 20 de febrero de 2010. Recuperado el 20 de febrero de 2010 .
- ↑ "Debian -- Detalles del paquete postgresql en sid" . packages.debian.org . Consultado el 25 de enero de 2021 .
- ↑ "Licencias: Principal" . Proyecto Fedora .
- ↑ "PostgreSQL" . fsf.org .
- ↑ "Preguntas frecuentes: ¿Qué es PostgreSQL? ¿Cómo se pronuncia? ¿Qué es Postgres?" . Wiki de PostgreSQL . Comunidad de PostgreSQL . Consultado el 2 de octubre de 2021 .
- ↑ "Muestra de audio, MP3 de 5,6 kbps" .
- ↑ "¿Qué es PostgreSQL?" . Documentación de PostgreSQL 9.3.0 . Grupo de Desarrollo Global de PostgreSQL . Consultado el 20 de septiembre de 2013 .
- ↑ "Parquet y Postgres en el Data Lake | Blog de Crunchy Data" . Crunchy Data . 3 de mayo de 2022. Consultado el 19 de septiembre de 2024 .
- ↑ "PostGIS" . postgis.net . 18 de diciembre de 2023. Consultado el 18 de diciembre de 2023. PostGIS
amplía las capacidades de la base de datos relacional PostgreSQL al añadir soporte para almacenar, indexar y consultar datos geoespaciales.
- 1 2 "Extensiones temporales" . Wiki de PostgreSQL . 18 de diciembre de 2023. Consultado el 18 de diciembre de 2023. Postgres
puede extenderse para convertirse en una base de datos temporal. Estas bases de datos registran el historial del contenido a lo largo del tiempo, conservando automáticamente dicho historial y permitiendo su modificación y consulta.
- ↑ "Orafce - Funciones y paquetes de compatibilidad de Oracle" . GitHub.com . 17 de diciembre de 2023. Consultado el 18 de diciembre de 2023. Funciones
y operadores que emulan un subconjunto de funciones y paquetes del SGBD de Oracle.
- ↑ "pg_dbms_job" . GitHub.com . 8 de noviembre de 2023. Consultado el 18 de diciembre de 2023. Extensión
de PostgreSQL para programar y administrar trabajos en una cola de trabajos similar al paquete Oracle DBMS_JOB.
- ↑ "WiltonDB" . WiltonDB . 2023. Consultado el 18 de diciembre de 2023. WiltonDB
está empaquetado para Windows. Su objetivo es ser un reemplazo directo de Microsoft SQL Server.
- ↑ "Babelfish para PostgreSQL" . babelfishpg.org . Consultado el 18 de diciembre de 2023.
Babelfish para PostgreSQL... proporciona la capacidad para que PostgreSQL entienda consultas de aplicaciones escritas para Microsoft SQL Server.
- ↑ "Clientes de PostgreSQL" . wiki.postgresql.org . 18 de octubre de 2023. Consultado el 18 de diciembre de 2023. Esta
página es una lista parcial de clientes SQL interactivos (con o sin interfaz gráfica)... en los que puede escribir SQL y obtener resultados.
- ↑ "Herramientas de diseño" . wiki.postgresql.org . 23 de octubre de 2023. Consultado el 18 de diciembre de 2023. Herramientas
para ayudar a diseñar un esquema, mediante la creación de diagramas entidad-relación y similares. La mayoría son con interfaz gráfica de usuario (GUI).
- ↑ "Guía de la comunidad sobre herramientas GUI de PostgreSQL" . wiki.postgresql.org . 1 de diciembre de 2023. Consultado el 18 de diciembre de 2023. Esta
página es una lista de utilidades diversas que funcionan con Postgres (por ejemplo, cargadores de datos, comparadores, etc.).
- ↑ "Replicación, agrupación en clústeres y agrupación de conexiones" . wiki.postgresql.org . 13 de julio de 2020. Consultado el 18 de diciembre de 2023. Existen
muchos enfoques para escalar PostgreSQL más allá de ejecutarse en un solo servidor. ... No existe una solución universal...
- ↑ Esto se reconoce mediante el permiso liberal para usar el nombre PostgreSQL, como se aprobó (para uso justo, cuando no confunda a las personas sobre una relación legal con el proyecto PostgreSQL real) cuando se usa en apoyo de PostgreSQL, sujeto a la Política de Marcas Registradas de PostgreSQL: "Política de Marcas Registradas" . PostgreSQL.org . 8 de diciembre de 2020. Recuperado el 17 de diciembre de 2023. Intentaremos
trabajar con usted para permitir usos [del nombre PostgreSQL] que apoyen el proyecto PostgreSQL y nuestra Comunidad.
- 1 2 Stonebraker, M.; Rowe, LA (mayo de 1986). El diseño de POSTGRES (PDF) . Actas de la Conferencia ACM SIGMOD de 1986 sobre Gestión de Datos. Washington, DC . Recuperado el 17 de diciembre de 2011 .
- ↑ "PostgreSQL: Historia" . Grupo de Desarrollo Global de PostgreSQL. Archivado del original el 26 de marzo de 2017. Consultado el 27 de agosto de 2016 .
- ↑ "Nombre del proyecto: declaración del equipo principal" . archives.postgresql.org. 16 de noviembre de 2007. Consultado el 16 de noviembre de 2007 .
- ↑ "Michael Stonebraker – Ganador del Premio AM Turing" . amturing.acm.org . Consultado el 20 de marzo de 2018. Las
técnicas pioneras en Postgres se implementaron ampliamente [...] Stonebraker es el único ganador del Premio Turing que se ha dedicado al emprendimiento en serie a una escala similar, lo que le otorga una perspectiva distintiva del mundo académico.
- ↑ Stonebraker, M.; Rowe, LA. El modelo de datos POSTGRES (PDF) . Actas de la 13.ª Conferencia Internacional sobre Bases de Datos Muy Grandes. Brighton, Inglaterra: Morgan Kaufmann Publishers. págs. 83–96 . ISBN 0-934613-46-X.
- ↑ Pavel Stehule (9 de junio de 2012). "Historie projektu PostgreSQL" (en checo).
- ↑ Breve historia de PostgreSQL : «La versión 3 apareció en 1991 y añadió soporte para múltiples gestores de almacenamiento, un ejecutor de consultas mejorado y un sistema de reglas reescrito». . postgresql.org . Grupo de Desarrollo Global de PostgreSQL , consultado el 18 de marzo de 2020.
- ↑ "University POSTGRES, Versión 4.2" . 26 de julio de 1999.
- ↑ Page, Dave (7 de abril de 2015). "Re: ¿20.º aniversario de PostgreSQL ?" . pgsql-advocacy (Lista de correo) . Recuperado el 9 de abril de 2015 .
- ↑ Grupo, Desarrollo Global de PostgreSQL (25 de septiembre de 2025). "¡PostgreSQL 18 lanzado!" . Noticias de PostgreSQL . Consultado el 6 de diciembre de 2025 .
{{cite web}}:|last=tiene nombre genérico ( ayuda ) - ↑ Dan RK Ports; Kevin Grittner (2012). "Aislamiento de instantáneas serializables en PostgreSQL" (PDF) . Actas de la Fundación VLDB . 5 (12): 1850–1861 . arXiv : 1208.4179 . Bibcode : 2012arXiv1208.4179P . doi : 10.14778/2367502.2367523 . S2CID 16006111 .
- ↑ Bohan Zhang; Andy Pavlo (2023). "La parte de PostgreSQL que más odiamos" . OtterTune (blog).
- ↑ PostgreSQL 9.1 con replicación síncrona (noticias), H Online
- ↑ "26.4. Hot Standby" . Documentación de PostgreSQL . 8 de mayo de 2025. Consultado el 22 de julio de 2025 .
- ↑ Hood, Stu (30 de junio de 2025). "Hicimos que las escrituras de Postgres fueran más rápidas, pero se rompió la replicación" . ParadeDB . Recuperado el 22 de julio de 2025 .
- ↑ "Página del proyecto Postgres-XC" (sitio web). Postgres-XC. Archivado del original el 1 de julio de 2012.
- ↑ "Postgres-R: un sistema de replicación de bases de datos para PostgreSQL" . Grupo de Desarrollo Global de Postgres. Archivado del original el 29 de marzo de 2010. Recuperado el 27 de agosto de 2016 .
- ↑ "Postgres-BDR" . 2ndQuadrant Ltd. Consultado el 27 de agosto de 2016 .
- ↑ Marit Fischer (10 de noviembre de 2007). «Backcountry.com finalmente retribuye a la comunidad de código abierto» (Comunicado de prensa). Backcountry.com. Archivado del original el 26 de diciembre de 2010.
- ↑ Bartunov, O; Sigaev, T (mayo de 2011). SP-GiST: un nuevo marco de indexación para PostgreSQL (PDF) . PGCon 2011. Ottawa, Canadá . Recuperado el 31 de enero de 2016 .
- ↑ Bartunov, O; Sigaev, T (mayo de 2010). Búsqueda de k vecinos más cercanos para PostgreSQL (PDF) . PGCon 2010. Ottawa, Canadá . Recuperado el 31 de enero de 2016 .
- ↑ "PostgreSQL, la base de datos NoSQL | Linux Journal" . www.linuxjournal.com .
- ↑ Geoghegan, Peter (23 de marzo de 2014). "Lo que pienso de jsonb" .
- ↑ Obe, Regina; Hsu, Leo S. (2012). "10: Replicación y datos externos". PostgreSQL: Puesta en marcha (1.ª ed.). Sebastopol, CA: O'Reilly Media, Inc. pág. 129. ISBN 978-1-4493-2633-3Recuperado el 17 de octubre de 2016. Los
Foreign Data Wrappers (FDW) [...] son mecanismos para consultar fuentes de datos externas. PostgreSQL 9.1 introdujo esta característica compatible con los estándares SQL/MED .
- ↑ "Protocolo Frontend/Backend" . postgresql.org . 9 de noviembre de 2023. Consultado el 17 de diciembre de 2023.
Este documento describe la versión 3.0 del protocolo, implementada en PostgreSQL 7.4 y versiones posteriores
. - ↑ "libpq" . postgresql.org . 9 de noviembre de 2023. Consultado el 17 de diciembre de 2023 .
- ↑ "SQL integrado en C" . postgresql.org . 9 de noviembre de 2023. Consultado el 17 de diciembre de 2023 .
- ↑ "Interfaces de cliente" . postgresql.org . 9 de noviembre de 2023. Consultado el 17 de diciembre de 2023 .
- ↑ "libpqxx" . Consultado el 4 de abril de 2020 .
- ↑ "Controlador JDBC de PostgreSQL" . Consultado el 4 de abril de 2020 .
- ↑ " [ ANN ] PostgresORM.jl: Mapeo objeto-relacional para PostgreSQL" . JuliaLang . 30 de junio de 2021 . Consultado el 26 de agosto de 2021 .
- ^ "GitHub - invenia/LibPQ.jl: un contenedor de Julia para libpq" . GitHub . Consultado el 26 de agosto de 2021 .
- 1 2 "Extensión PL/Julia (mínima)" . JuliaLang . 8 de marzo de 2020. Recuperado el 26 de agosto de 2021 .
- ↑ "PostgreSQL + Python | Psycopg" . initd.org . Archivado del original el 1 de noviembre de 2012. Consultado el 21 de enero de 2015 .
- ↑ "node-postgres" . Consultado el 4 de abril de 2020 .
- ↑ "Controladores de bases de datos SQL" . Wiki de Go . golang.org . Consultado el 22 de junio de 2015 .
- ↑ "Rust-Postgres" . Consultado el 4 de abril de 2020 .
- ↑ "Programación de servidores" . Documentación de PostgreSQL . Consultado el 19 de mayo de 2019 .
- ↑ "DO" . Documentación de PostgreSQL . Consultado el 19 de mayo de 2019 .
- ↑ "PL/Python - Lenguaje de procedimientos de Python" . Documentación de PostgreSQL . Consultado el 23 de octubre de 2022 .
- ↑ "Lenguajes procedimentales" . postgresql.org. 31 de marzo de 2016. Consultado el 7 de abril de 2016 .
- ↑ "postgres-plr/plr" . 17 de junio de 2021 – vía GitHub.
- ↑ Chartier, Colin (8 de noviembre de 2019). "Truco de diseño de sistemas: Postgres es un excelente servidor pub/sub y de trabajos" . Blog de LayerCI . Recuperado el 24 de noviembre de 2019 .
- ↑ "Versión 9.5" . postgresql.org . 11 de febrero de 2021.
- ↑ Ringer, Craig (13 de abril de 2016). "¿Para qué sirve SKIP LOCKED en PostgreSQL 9.5?" . 2nd Quadrant . Consultado el 24 de noviembre de 2019 .
- ↑ "Agregar relaciones de vista materializadas" . 4 de marzo de 2013. Consultado el 4 de marzo de 2013 .
- ↑ "Compatibilidad con vistas actualizables automáticamente" . 8 de diciembre de 2012. Consultado el 8 de diciembre de 2012 .
- ↑ "Agregar sintaxis CREATE RECURSIVE VIEW" . 1 de febrero de 2013. Consultado el 28 de febrero de 2013 .
- ↑ Momjian, Bruce (2001). "Subconsultas" . PostgreSQL: Introducción y conceptos . Addison-Wesley. ISBN 0-201-70331-9Archivado del original el 9 de agosto de 2010. Consultado el 25 de septiembre de 2010 .
- ↑ Bernier, Robert (2 de febrero de 2006). "Uso de expresiones regulares en PostgreSQL" . O'Reilly Media . Recuperado el 25 de septiembre de 2010 .
- ↑ "Algunas notas breves sobre PostgreSQL y POODLE" . hagander.net .
- ↑ Berkus, Josh (2 de junio de 2016). "PostgreSQL 9.6 Beta y PGCon 2016" . LWN.net .
- ↑ "Preguntas frecuentes – Wiki de PostgreSQL" . wiki.postgresql.org . Consultado el 13 de abril de 2017 .
- ↑ "Documentación de SEPostgreSQL – Wiki de PostgreSQL" . wiki.postgresql.org .
- ↑ "NB SQL 9.3 - SELinux Wiki" . selinuxproject.org .
- ↑ "Documentación de PostgreSQL 10: Apéndice E. Notas de la versión" . 12 de agosto de 2021.
- ↑ "PostgreSQL: Acerca de" . www.postgresql.org . Consultado el 14 de octubre de 2024 .
- ↑ "Sensibilidad a mayúsculas y minúsculas en los identificadores" . Grupo de Desarrollo Global de PostgreSQL. 11 de noviembre de 2021.
- 1 2 Berkus, Josh (6 de julio de 2007). "PostgreSQL publica su primer benchmark real" . Archivado del original el 12 de julio de 2007. Recuperado el 10 de julio de 2007 .
- ^ Vilmos, György (29 de septiembre de 2009). "Historia de PostgreSQL" . Consultado el 28 de agosto de 2010 .
- ↑ "Resultado de SPECjAppServer2004" . SPEC . 6 de julio de 2007. Consultado el 10 de julio de 2007 .
- ↑ "Resultado de SPECjAppServer2004" . SPEC . 4 de julio de 2007. Consultado el 1 de septiembre de 2007 .
- ↑ "Administración de recursos del kernel" . Manual de PostgreSQL . PostgreSQL.org . Consultado el 12 de noviembre de 2011 .
- ↑ Greg Smith (15 de octubre de 2010). PostgreSQL 9.0 Alto Rendimiento . Packt Publishing . ISBN 978-1-84951-030-1.
- ↑ Robert Haas (3 de abril de 2012). "¿Dije 32 núcleos? ¿Qué tal 64?" . Consultado el 8 de abril de 2012 .
- ↑ Khushi, Matloob (junio de 2015). "Evaluación comparativa del rendimiento de bases de datos para datos genómicos". J Cell Biochem . 116 (6): 877–83 . arXiv : 2008.06835 . doi : 10.1002/jcb.25049 . PMID 25560631. S2CID 27458866 .
- ↑ "Paquetes para Mac OS X" . El Grupo de Desarrollo Global de PostgreSQL . Consultado el 27 de agosto de 2016 .
- ↑ "PostgreSQL: Instaladores para Windows" . www.postgresql.org . Consultado el 26 de agosto de 2021 .
- ↑ "postgresql-client-10.5p1 – PostgreSQL RDBMS (cliente)" . Puertos de OpenBSD . 4 de octubre de 2018 . Consultado el 10 de octubre de 2018 .
- ↑ "Instalación y configuración de PostgreSQL - Guía de Oracle Solaris Cluster Data Service para PostgreSQL" . docs.oracle.com . Consultado el 4 de febrero de 2023 .
- ↑ "Planificación de AArch64 BoF en DebConf" . debian.org .
- ↑ Souza, Rubens (17 de junio de 2015). "Paso 5 (actualización): Instalación de PostgreSQL en mi Raspberry Pi 1 y 2" . Raspberry PG . Archivado del original el 20 de septiembre de 2016. Recuperado el 27 de agosto de 2016 .
- ↑ "Plataformas compatibles" . Grupo de Desarrollo Global de PostgreSQL . Consultado el 6 de abril de 2012 .
- ↑ "Léxicos disponibles — Pigmentos" .
- ↑ "pgAdmin: Herramientas de administración y gestión de PostgreSQL" . Sitio web . Consultado el 12 de noviembre de 2011 .
- ↑ "Debian -- Detalles del paquete pgadmin3 en jessie" . Consultado el 10 de marzo de 2017 .
- ↑ "Equipo de desarrollo de pgAdmin" . pgadmin.org . Consultado el 22 de junio de 2015 .
- ↑ Dave, Page (7 de diciembre de 2014). "La historia de pgAdmin" . Blog de Postgres de Dave . pgsnake.blogspot.co.uk . Consultado el 7 de diciembre de 2014 .
- ↑ "pgAdmin 4 README" . GitHub . Consultado el 15 de agosto de 2018 .
- ↑ Proyecto phpPgAdmin (25 de abril de 2008). "Acerca de phpPgAdmin" . Consultado el 25 de abril de 2008 .
- ↑ PostgreSQL Studio (9 de octubre de 2013). "Acerca de PostgreSQL Studio" . Archivado del original el 7 de octubre de 2013. Consultado el 9 de octubre de 2013 .
- ↑ "Sitio web de TeamPostgreSQL" . 3 de octubre de 2013. Consultado el 3 de octubre de 2013 .
- ↑ oooforum.org (10 de enero de 2010). "Back Ends para OpenOffice" . Archivado del original el 28 de septiembre de 2011. Recuperado el 5 de enero de 2011 .
- ↑ libreoffice.org (14 de octubre de 2012). "Funciones básicas" . Archivado del original el 7 de enero de 2012. Recuperado el 14 de octubre de 2012 .
- ↑ Greg Smith; Robert Treat y Christopher Browne. "Optimización de su servidor PostgreSQL" . Wiki . PostgreSQL.org . Consultado el 12 de noviembre de 2011 .
- ↑ "pgDevOps" . BigSQL.org . Archivado del original el 1 de abril de 2017. Consultado el 4 de mayo de 2017 .
- ↑ "pgbackrest/pgbackrest" . GitHub . 21 de noviembre de 2021.
- ↑ "pgaudit/pgaudit" . GitHub . 21 de noviembre de 2021.
- ↑ «wal-e/wal-e» . 24 de junio de 2021 – vía GitHub.
- ↑ Dugin, Rostislav (28 de noviembre de 2025), RostislavDugin/postgresus , consultado el 28 de noviembre de 2025
- ↑ Claire Giordano (31 de octubre de 2019). "Diseño de análisis a escala de petabytes mediante la ampliación de Postgres en Azure con la extensión Citus" . Blog . Comunidad tecnológica de Microsoft.
- ↑ Emmanuel Cecchet (21 de mayo de 2009). Creación de almacenes de petabytes con PostgreSQL sin modificar (PDF) . PGCon 2009. Consultado el 12 de noviembre de 2011 .
- ↑ "MySpace.com amplía sus análisis para todos sus amigos" (PDF) . Estudio de caso. Aster Data. 15 de junio de 2010. Archivado (PDF) del original el 14 de noviembre de 2010. Consultado el 12 de noviembre de 2011 .
- ↑ "Apagón del fin de semana pasado" . Blog . Geni. 1 de agosto de 2011.
- ↑ "Base de datos" . Wiki . OpenStreetMap.
- ↑ Dominio .ORG afiliado a PostgreSQL , Australia: Computer World, 24 de agosto de 2023
- 1 2 3 W. Jason Gilmore; RH Treat (2006). Introducción a PHP y PostgreSQL 8: De principiante a profesional . Apress. ISBN 978-1-43020-136-6. Consultado el 30 de agosto de 2017 .
- ↑ Sony Online opta por una base de datos de código abierto en lugar de Oracle , Computer World
- ↑ "Estudio de caso de un grupo de comercio web sobre PostgreSQL" (PDF) (1.2 ed.). PostgreSQL.
- ↑ "Descripción general de la arquitectura" . Wiki de software de Reddit . Reddit. 27 de marzo de 2014. Consultado el 25 de noviembre de 2014 .
- ^ Pihlak, Martín. "PostgreSQL @Skype" (PDF) . wiki.postgresql.org . Consultado el 16 de enero de 2019 .
- ↑ "¿Cuánto pagas por tu base de datos?" . Blog de Sun Microsystems. 2007. Archivado del original el 7 de marzo de 2009. Consultado el 14 de diciembre de 2007 .
- ↑ "Base de datos – MusicBrainz" . Wiki de MusicBrainz . Consultado el 5 de febrero de 2011 .
- ↑ Duncavage, Daniel P (13 de julio de 2010). "La NASA necesita ayuda de Postgres-Nagios" .
- ↑ Roy, Gavin M (2010). "PostgreSQL en myYearbook.com" (discusión). Conferencia PostgreSQL de la región este de EE. UU. Archivado del original el 27 de julio de 2011.
- ↑ "Manteniendo Instagram activo con más de un millón de nuevos usuarios en doce horas" . Instagram-engineering.tumblr.com. 17 de mayo de 2011. Consultado el 7 de julio de 2012 .
- ↑ "Postgres en Disqus" . Consultado el 24 de mayo de 2013 .
- ↑ Kelly, Matthew (27 de marzo de 2015). En el corazón de un gigante: Postgres en TripAdvisor . PGConf US 2015. Archivado del original el 23 de julio de 2015. Recuperado el 23 de julio de 2015 .( Vídeo de presentación )
- ↑ "Migración exitosa de Yandex.Mail de Oracle a Postgres [ pdf ] " . Hacker News: news.ycombinator.com . Consultado el 28 de septiembre de 2016 .
- 1 2 S. Riggs; G. Ciolli; H. Krosing; G. Bartolini (2015). Libro de recetas de administración de PostgreSQL 9: segunda edición . Paquete. ISBN 978-1-84951-906-9. Consultado el 5 de septiembre de 2017 .
- ↑ "Met Office cambia Oracle por PostgreSQL" . computerweekly.com . 17 de junio de 2014. Consultado el 5 de septiembre de 2017 .
- ↑ "Software de código abierto" . FlightAware . Consultado el 22 de noviembre de 2017 .
- ↑ "Ansible en Grofers (Parte 2) — Administración de PostgreSQL" . Lambda - El blog de ingeniería de Grofers . 28 de febrero de 2017. Consultado el 5 de septiembre de 2018 .
- ↑ McMahon, Philip; Chiorean, Maria-Livia; Coleman, Susie; Askoolum, Akash (30 de noviembre de 2018). "Blog digital: Adiós Mongo, hola Postgres" . The Guardian . ISSN 0261-3077 .
- ↑ "Errores elevados en la API y ChatGPT" . 21 de noviembre de 2023. Consultado el 2 de diciembre de 2023 .
- ↑ "Conferencia telefónica de Microsoft sobre los resultados del tercer trimestre del año fiscal 2025" . 5 de mayo de 2025.
- ↑ Alex Williams (1 de abril de 2013). "Heroku obliga a un cliente a actualizar para solucionar una grave vulnerabilidad de seguridad en PostgreSQL" . TechCrunch .
- ↑ Barb Darrow (11 de noviembre de 2013). "Heroku mejora Postgres con reversión de base de datos y alertas proactivas" . GigaOM. Archivado del original el 12 de noviembre de 2013.
- ↑ Craig Kerstiens (26 de septiembre de 2013). "WAL-E y protección continua con Heroku Postgres" . Blog de Heroku.
- ↑ "EnterpriseDB ofrece Postgres Plus Cloud Database" . Techweekeurope.co.uk. 27 de enero de 2012. Archivado del original el 30 de enero de 2012. Consultado el 7 de julio de 2012 .
- ↑ "Alibaba Cloud amplía su colaboración técnica con EnterpriseDB" . Milestone Partners . 26 de septiembre de 2018. Consultado el 9 de junio de 2020 .
- ↑ O'Doherty, Paul; Asselin, Stephane (2014). "3: Arquitectura de VMware Workspace". VMware Horizon Suite: Creación de servicios para el usuario final . VMware Press Technology. Upper Saddle River, NJ: VMware Press. pág. 65. ISBN 978-0-13-347910-2Consultado el 19 de septiembre de 2016. Además
de la versión de código abierto de PostgreSQL, VMware ofrece vFabric Postgres, o vPostgres. vPostgres es un dispositivo virtual de PostgreSQL optimizado para entornos virtuales.
- ↑ Al Sargent (15 de mayo de 2012). "Presentación de VMware vFabric Suite 5.1: Implementación automatizada, nuevos componentes y compatibilidad con código abierto" . Blogs de VMware.
- ↑ "VMware vFabric Suite EOA" (PDF) . 1 de septiembre de 2014. Consultado el 17 de diciembre de 2023 .
- ↑ Jeff (14 de noviembre de 2013). "Amazon RDS para PostgreSQL: ya disponible" . Blog de Amazon Web Services.
- ↑ Alex Williams (14 de noviembre de 2013). "PostgreSQL ya está disponible en el servicio de bases de datos relacionales de Amazon" . TechCrunch .
- ↑ "Actualización de Amazon Aurora: compatibilidad con PostgreSQL" . Blog de AWS . 30 de noviembre de 2016. Consultado el 1 de diciembre de 2016 .
- ↑ "Anuncio de Azure Database para PostgreSQL" . Blog de Azure . 10 de mayo de 2017. Consultado el 19 de junio de 2019 .
- ↑ "Aliyun PolarDB lanzó importantes actualizaciones para admitir la migración con un solo clic de bases de datos como Oracle a la nube" . Develop Paper . 6 de julio de 2019.
- ↑ "Replicación asíncrona maestro-esclavo de bases de datos PostgreSQL con un solo clic" . DZone . Consultado el 26 de mayo de 2017 .
- ↑ "Documentación de IBM Cloud Hyper Protect DBaaS para PostgreSQL" . cloud.ibm.com . Consultado el 24 de junio de 2020 .
- ↑ "Crunchy Data continúa brindando soporte para PostgreSQL con el lanzamiento de Crunchy Bridge" . 18 de septiembre de 2020.
- ↑ "¿Qué hay de nuevo en PostgreSQL 14?" . render.com . Consultado el 26 de mayo de 2026 .
- ↑ "SELECT 'Hola, mundo' Postgres sin servidor creado para la nube" . 15 de junio de 2022.
- ↑ "AlloyDB para PostgreSQL: base de datos en la nube rápida y de alta disponibilidad - Blog de Google Cloud" . 6 de marzo de 2025.
- ↑ "Presentamos Nile, Postgres sin servidor para SaaS moderno" . 25 de octubre de 2023.
- ↑ "Anuncio de la disponibilidad general de AlloyDB Omni" . Blog de Google Cloud . 10 de abril de 2024.
- 1 2 "PlanetScale para Postgres ya está disponible — PlanetScale" . planetscale.com . 22 de septiembre de 2025. Consultado el 28 de abril de 2026 .
- ↑ "Política de control de versiones" . Grupo de Desarrollo Global de PostgreSQL . Consultado el 4 de octubre de 2018 .
- ↑ Vaas, Lisa (2 de diciembre de 2002). "Las bases de datos se dirigen a las empresas" . eWeek . Consultado el 29 de octubre de 2016 .
- ↑ Krill, Paul (20 de noviembre de 2003). "PostgreSQL impulsa las bases de datos de código abierto" . InfoWorld . Consultado el 21 de octubre de 2016 .
- ↑ Krill, Paul (19 de enero de 2005). "La base de datos de código abierto PostgreSQL cuenta con un impulso para Windows" . InfoWorld . Recuperado el 2 de noviembre de 2016 .
- ↑ Weiss, Todd R. (5 de diciembre de 2006). "Lanzamiento de la versión 8.2 de la base de datos PostgreSQL de código abierto" . Computerworld . Consultado el 17 de octubre de 2016 .
- ↑ Gilbertson, Scott (5 de febrero de 2008). "PostgreSQL 8.3: La base de datos de código abierto promete una velocidad vertiginosa" . Wired . Consultado el 17 de octubre de 2016 .
- ↑ Huber, Mathias (2 de julio de 2009). "PostgreSQL 8.4 demuestra ser rico en funcionalidades" . Linux Magazine . Consultado el 17 de octubre de 2016 .
- ↑ Brockmeier, Joe (30 de septiembre de 2010). "Cinco características empresariales en PostgreSQL 9" . Linux.com . Linux Foundation . Consultado el 6 de febrero de 2017 .
- ↑ Timothy Prickett Morgan (12 de septiembre de 2011). "PostgreSQL se actualiza a la versión 9.1 y apunta al ámbito empresarial" . The Register . Consultado el 6 de febrero de 2017 .
- ↑ "PostgreSQL: Lanzamiento de PostgreSQL 9.2" . www.postgresql.org . 10 de septiembre de 2012.
- ↑ "Reintroducción de Hstore para PostgreSQL" . InfoQ .
- ↑ Richard, Chirgwin (7 de enero de 2016). "Oye, ¡sorpresa!: La versión 9.5 de PostgreSQL ya está aquí" . The Register . Consultado el 17 de octubre de 2016 .
- ↑ "PostgreSQL: Documentación: 10: Capítulo 31. Replicación lógica" . www.postgresql.org . 12 de agosto de 2021.
- ↑ "PostgreSQL 11 lanzado" . 18 de octubre de 2018. Consultado el 18 de octubre de 2018 .
- ↑ "Notas de la versión de PostgreSQL" . Consultado el 18 de octubre de 2018 .
- ↑ "PostgreSQL: ¡PostgreSQL 12 ya está disponible!" . Noticias de PostgreSQL . 3 de octubre de 2019.
- ↑ "Notas de la versión 13 de PostgreSQL" . www.postgresql.org . 12 de agosto de 2021.
- ↑ "¡PostgreSQL 13 lanzado!" . www.postgresql.org . 24 de septiembre de 2020.
- ↑ "Notas de la versión 14 de PostgreSQL" . www.postgresql.org . 11 de noviembre de 2021.
- ↑ "¡PostgreSQL 14 lanzado!" . www.postgresql.org . 30 de septiembre de 2021.
- ↑ "¡PostgreSQL 16 lanzado!" . 14 de septiembre de 2023.
- ↑ "¡PostgreSQL 17 lanzado!" 26 de septiembre de 2024.
- ↑ "¡PostgreSQL 18 lanzado!" 25 de septiembre de 2025.
- ↑ "Documentación de la base de datos Greenplum" . docs.greenplum.org . Consultado el 10 de agosto de 2025 .
- ↑ "Acerca de Timescale" . Timescale . Consultado el 10 de agosto de 2025.
TimescaleDB se implementa como una extensión de PostgreSQL, lo que significa que se ejecuta dentro de una instancia de PostgreSQL y que se interactúa con ella de la misma manera que se interactúa con PostgreSQL.
- ↑ "Amazon Aurora con compatibilidad con PostgreSQL" . Amazon Web Services, Inc. Consultado el 10 de agosto de 2025 .
- ↑ "¿Qué es Neon?" . Neon . Consultado el 10 de agosto de 2025 .
Neon es una versión de PostgreSQL sin servidor totalmente administrada. Separa el almacenamiento y el procesamiento y sustituye la capa de almacenamiento de PostgreSQL por un motor de almacenamiento multiusuario personalizado diseñado para la nube.
- ↑ "Descripción general de AlloyDB" . Google Cloud . Consultado el 10 de agosto de 2025.
AlloyDB para PostgreSQL es un servicio de base de datos totalmente administrado y compatible con PostgreSQL, diseñado para las cargas de trabajo más exigentes, incluido el procesamiento híbrido transaccional y analítico... AlloyDB emplea una arquitectura desagregada. Las capas de computación y almacenamiento están separadas y ofrecen escalabilidad individual.
- ↑ "Presentación del control de tráfico de bases de datos — PlanetScale" . planetscale.com . 23 de marzo de 2026. Consultado el 28 de abril de 2026 .
Lecturas adicionales
- Obe, Regina; Hsu, Leo (8 de julio de 2012). PostgreSQL: Puesta en marcha . O'Reilly . ISBN 978-1-4493-2633-3.
- Krosing, Hannu; Roybal, Kirk (15 de junio de 2013). Programación de servidores PostgreSQL (segunda edición). Packt Publishing . ISBN 978-1-84951-698-3.
- Riggs, Simon; Krosing, Hannu (27 de octubre de 2010). PostgreSQL 9 Administration Cookbook (segunda edición). Packt Publishing . ISBN 978-1-84951-028-8.
- Smith, Greg (15 de octubre de 2010). PostgreSQL 9 Alto Rendimiento . Packt Publishing . ISBN 978-1-84951-030-1.
- Gilmore, W. Jason; Treat, Robert (27 de febrero de 2006). Introducción a PHP y PostgreSQL 8: De principiante a profesional . Apress . pág. 896. ISBN 1-59059-547-5Archivado del original el 8 de julio de 2009. Consultado el 28 de abril de 2009 .
- Douglas, Korry (5 de agosto de 2005). PostgreSQL (segunda edición). Sams . pág. 1032. ISBN 0-672-32756-2.
- Matthew, Neil; Stones, Richard (6 de abril de 2005). Introducción a las bases de datos con PostgreSQL (segunda edición). Apress . pág. 664. ISBN 1-59059-478-9Archivado del original el 9 de abril de 2009. Consultado el 28 de abril de 2009 .
- Worsley, John C.; Drake, Joshua D. (enero de 2002). PostgreSQL práctico . O'Reilly Media . 636 págs . ISBN 1-56592-846-6.
Enlaces externos
- Sitio web oficial ywiki

- Un catálogo de software con proyectos y productos relacionados.
- El repositorio oficial principal del código fuente (para consultarlo) y las preguntas frecuentes para desarrolladores.
- La referencia oficial para los autores de la documentación de PostgreSQL
- Todos los repositorios oficiales de código fuente de PostgreSQL
- PostgreSQL en GitHub
- PostgreSQL
- Software de 1996
- Sistemas de gestión de bases de datos cliente-servidor
- Software multiplataforma
- Sistemas de gestión de bases de datos gratuitos
- Software libre programado en C
- Software ORDBMS para Linux
- Software de gestión de bases de datos relacionales para Linux
- Software que utiliza Meson
- bases de datos vectoriales