stringtranslate.com

PostgreSQL

PostgreSQL ( / ˈ p s t ɡ r ɛ s ˌ k juː ˈ ɛ l / , POHST -gres kyoo el ), [11] [12] также известная как Postgres , представляет собой бесплатную систему управления реляционными базами данных с открытым исходным кодом ( РСУБД), уделяя особое внимание расширяемости и совместимости с SQL . PostgreSQL поддерживает транзакции со свойствами атомарности , согласованности , изоляции , долговечности ( ACID ), автоматически обновляемые представления , материализованные представления , триггеры , внешние ключи и хранимые процедуры . [13] Он поддерживается во всех основных операционных системах , включая Linux , FreeBSD , OpenBSD , macOS и Windows , и обрабатывает широкий спектр рабочих нагрузок — от отдельных компьютеров до хранилищ данных или веб-сервисов со многими одновременно работающими пользователями .

Группа глобального развития PostgreSQL занимается только разработкой ядра базы данных и тесно связанных с ним компонентов. Технически это ядро ​​представляет собой то, что включает в себя сам PostgreSQL, но существует обширное сообщество разработчиков и экосистема, предоставляющая другие важные наборы функций, которые традиционно могут предоставляться поставщиком проприетарного программного обеспечения. К ним относятся специальные функции ядра базы данных, например, необходимые для поддержки геопространственной [14] или временной [15] базы данных, а также функции, которые имитируют другие продукты баз данных. [16] [17] [18] [19] Также от третьих лиц доступен широкий спектр функций пользовательского и машинного интерфейса, таких как графические пользовательские интерфейсы [20] [21] [22] или наборы инструментов для балансировки нагрузки и обеспечения высокой доступности . [23] Большая сторонняя сеть поддержки PostgreSQL, состоящая из людей, компаний, продуктов и проектов, хотя и не входит в группу разработчиков PostgreSQL, важна для внедрения и использования ядра базы данных PostgreSQL и составляет экосистему PostgreSQL в целом. [24]

Первоначально PostgreSQL назывался POSTGRES, что указывает на его происхождение как преемника базы данных Ingres , разработанной в Калифорнийском университете в Беркли . [25] [26] В 1996 году проект был переименован в PostgreSQL , чтобы отразить поддержку SQL . После проверки в 2007 году команда разработчиков решила сохранить название PostgreSQL и псевдоним Postgres. [27]

История

PostgreSQL развился из проекта Ingres в Калифорнийском университете в Беркли. В 1982 году лидер команды Ingres Майкл Стоунбрейкер покинул Беркли, чтобы создать собственную версию Ingres. [25] Он вернулся в Беркли в 1985 году и начал пост-Ингровский проект по решению проблем современных систем баз данных, которые стали все более очевидными в начале 1980-х годов. За эти и другие проекты [28] и впервые использованные в них методы он получил премию Тьюринга в 2014 году.

Новый проект POSTGRES был направлен на добавление наименьшего количества функций, необходимых для полной поддержки типов данных . [29] Эти функции включали возможность определять типы и полностью описывать отношения — то, что широко используется, но полностью поддерживается пользователем. В POSTGRES база данных понимала взаимосвязи и могла извлекать информацию из связанных таблиц естественным способом с использованием правил . POSTGRES использовал многие идеи Ingres, но не его код. [30]

Начиная с 1986 года, в опубликованных статьях описывалась основа системы, а прототипная версия была показана на конференции ACM SIGMOD 1988 года . В июне 1989 года команда выпустила версию 1 для небольшого числа пользователей, а в июне 1990 года — версию 2 с переписанной системой правил. Версия 3, выпущенная в 1991 году, снова переписала систему правил и добавила поддержку нескольких менеджеры хранения [31] и улучшенный механизм запросов. К 1993 году количество пользователей начало перегружать проект просьбами о поддержке и функциях. После выпуска версии 4.2 [32] 30 июня 1994 года (в основном в виде очистки) проект закрылся. Беркли выпустил POSTGRES под лицензией MIT , которая позволяла другим разработчикам использовать код для любых целей. В то время POSTGRES использовал интерпретатор языка запросов POSTQUEL, основанный на Ingres , который можно было интерактивно использовать с консольным приложением с именем monitor.

В 1994 году аспиранты Беркли Эндрю Ю и Джолли Чен заменили интерпретатор языка запросов POSTQUEL интерпретатором языка запросов SQL, создав Postgres95. Консоль monitorтакже была заменена на psql. Ю и Чен анонсировали первую версию (0.01) бета-тестерам 5 мая 1995 года. Версия 1.0 Postgres95 была анонсирована 5 сентября 1995 года с более либеральной лицензией, которая позволяла свободно модифицировать программное обеспечение.

8 июля 1996 года Марк Фурнье из Hub.org Networking Services предоставил первый неуниверситетский сервер разработки для разработки с открытым исходным кодом. [3] При участии Брюса Момджяна и Вадима Б. Михеева начались работы по стабилизации кода, унаследованного от Беркли.

В 1996 году проект был переименован в PostgreSQL, чтобы отразить поддержку SQL. Присутствие в Интернете на веб-сайте PostgreSQL.org началось 22 октября 1996 года. [33] Первый выпуск PostgreSQL сформировал версию 6.0 29 января 1997 года. С тех пор разработчики и волонтеры по всему миру поддерживают это программное обеспечение как The PostgreSQL Global Development Group. . [2]

Проект продолжает выпускать выпуски под лицензией бесплатного программного обеспечения PostgreSQL с открытым исходным кодом. Код создается благодаря вкладу проприетарных поставщиков, компаний поддержки и программистов с открытым исходным кодом.

Управление многоверсионным параллелизмом (MVCC)

PostgreSQL управляет параллелизмом посредством управления многоверсионным параллелизмом (MVCC), который предоставляет каждой транзакции «моментальный снимок» базы данных, позволяя вносить изменения, не затрагивая другие транзакции. Это в значительной степени устраняет необходимость в блокировках чтения и гарантирует, что база данных поддерживает принципы ACID . PostgreSQL предлагает три уровня изоляции транзакций : зафиксированное чтение, повторяемое чтение и сериализуемое. Поскольку PostgreSQL невосприимчив к «грязному» чтению, запрос уровня изоляции транзакции «Чтение незафиксированной» вместо этого обеспечивает зафиксированное чтение. PostgreSQL поддерживает полную сериализуемость с помощью метода изоляции сериализуемых снимков (SSI). [34] Реализация PostreSQL MVCC склонна к проблемам с производительностью, которые требуют настройки при большой нагрузке на запись, которая обновляет существующие строки. [35]

Хранение и репликация

Репликация

PostgreSQL включает встроенную двоичную репликацию, основанную на асинхронной доставке изменений ( журналы упреждающей записи (WAL)) на узлы реплик с возможностью выполнения запросов только для чтения к этим реплицированным узлам. Это позволяет эффективно распределять трафик чтения между несколькими узлами. Более раннее программное обеспечение репликации, которое позволяло аналогичное масштабирование чтения, обычно полагалось на добавление триггеров репликации к ведущему устройству, увеличивая нагрузку.

PostgreSQL включает встроенную синхронную репликацию [36] , которая гарантирует, что для каждой транзакции записи мастер ждет, пока хотя бы один узел реплики не запишет данные в свой журнал транзакций. В отличие от других систем баз данных, долговечность транзакции (независимо от того, является ли она асинхронной или синхронной) может быть указана для каждой базы данных, для каждого пользователя, для каждого сеанса или даже для каждой транзакции. Это может быть полезно для рабочих нагрузок, которые не требуют таких гарантий, и может быть нежелательно для всех данных, поскольку это снижает производительность из-за требования подтверждения транзакции, достигающей синхронного резервного сервера.

Резервные серверы могут быть синхронными или асинхронными. Синхронные резервные серверы можно указать в конфигурации, которая определяет, какие серверы являются кандидатами на синхронную репликацию. Первый в списке, который активно осуществляет потоковую передачу, будет использоваться в качестве текущего синхронного сервера. Если это не удается, система переключается на следующую в очереди.

Синхронная репликация с несколькими хозяевами не включена в ядро ​​PostgreSQL. Postgres-XC, основанный на PostgreSQL, обеспечивает масштабируемую синхронную репликацию с несколькими хозяевами. [37] Он лицензируется по той же лицензии, что и PostgreSQL. Связанный проект называется Postgres-XL . Postgres-R — это еще один форк . [38] Двунаправленная репликация (BDR) — это асинхронная система репликации с несколькими хозяевами для PostgreSQL. [39]

Такие инструменты, как Repmgr, упрощают управление кластерами репликации.

Доступно несколько пакетов асинхронной репликации на основе триггеров. Они остаются полезными даже после введения расширенных основных возможностей в ситуациях, когда двоичная репликация полного кластера базы данных неуместна:

Индексы

PostgreSQL включает встроенную поддержку обычных индексов B-деревьев и хеш-таблиц , а также четыре метода доступа к индексам: обобщенные деревья поиска ( GiST ), обобщенные инвертированные индексы (GIN), пространственно-разделенный GiST (SP-GiST) [41] и блочный. Индексы диапазона (BRIN). Кроме того, можно создавать пользовательские индексные методы, хотя это довольно трудоемкий процесс. Индексы в PostgreSQL также поддерживают следующие функции:

Схемы

Схемы PostgreSQL представляют собой пространства имен , позволяющие объектам одного типа и имени сосуществовать в одной базе данных. Их не следует путать со схемой базы данных — абстрактной, структурной, организационной спецификацией, которая определяет, как данные каждой таблицы соотносятся с данными в других таблицах. Все объекты базы данных PosgreSQL, за исключением нескольких глобальных объектов, таких как роли и табличные пространства , существуют внутри схемы. Они не могут быть вложенными, схемы не могут содержать схемы. Система разрешений контролирует доступ к схемам и их содержимому. По умолчанию вновь создаваемые базы данных имеют только одну схему, называемую общедоступной , но можно добавлять и другие схемы, причем общедоступная схема не является обязательной.

Параметр search_pathопределяет порядок, в котором PostgreSQL проверяет схемы на наличие неквалифицированных объектов (без префиксной схемы). По умолчанию установлено значение $user, public( $userотносится к текущему подключенному пользователю базы данных). Это значение по умолчанию можно установить на уровне базы данных или роли, но, поскольку это параметр сеанса, его можно свободно изменять (даже несколько раз) во время сеанса клиента, влияя только на этот сеанс.

Несуществующие схемы или другие схемы, недоступные вошедшему в систему пользователю, перечисленные в search_path, автоматически пропускаются во время поиска объекта.

Новые объекты создаются в зависимости от того, какая действительная схема (та, к которой возможен доступ) появляется первой в search_path.

Типы данных

Поддерживается широкий спектр собственных типов данных , в том числе:

Кроме того, пользователи могут создавать свои собственные типы данных, которые обычно можно сделать полностью индексируемыми с помощью инфраструктур индексирования PostgreSQL — GiST, GIN, SP-GiST. Примеры таких типов включают типы данных географической информационной системы (ГИС) из проекта PostGIS для PostgreSQL.

Существует также тип данных, называемый доменом , который аналогичен любому другому типу данных, но с дополнительными ограничениями, определенными создателем этого домена. Это означает, что любые данные, введенные в столбец с использованием домена, должны будут соответствовать ограничениям, определенным как часть домена.

Можно использовать тип данных, представляющий диапазон данных, который называется типами диапазона. Это могут быть дискретные диапазоны (например, все целые значения от 1 до 10) или непрерывные диапазоны (например, любое время между 10:00 и 11:00 ). Доступные встроенные типы диапазонов включают диапазоны целых чисел, большие целые числа, десятичные числа, отметки времени (с часовым поясом и без него) и даты.

Пользовательские типы диапазонов можно создавать, чтобы сделать доступными новые типы диапазонов, например диапазоны IP-адресов, использующие тип inet в качестве основы, или диапазоны с плавающей точкой, использующие тип данных float в качестве основы. Типы диапазонов поддерживают инклюзивные и исключительные границы диапазона с использованием символов []и ()соответственно. (например, [4,9)представляет все целые числа, начиная с 4 включительно и до 9, но не включая.) Типы диапазонов также совместимы с существующими операторами, используемыми для проверки перекрытия, включения, права и т. д.

Пользовательские объекты

Могут быть созданы новые типы практически всех объектов внутри базы данных, в том числе:

Наследование

Таблицы можно настроить так, чтобы они наследовали свои характеристики от родительской таблицы. Данные в дочерних таблицах будут отображаться в родительских таблицах, если только данные не выбраны из родительской таблицы с помощью ключевого слова ONLY, т.е. Добавление столбца в родительскую таблицу приведет к тому, что этот столбец появится в дочерней таблице.SELECT * FROM ONLY parent_table;

Наследование можно использовать для реализации секционирования таблиц, используя триггеры или правила для направления вставок из родительской таблицы в соответствующие дочерние таблицы.

Эта функция поддерживается не полностью. В частности, ограничения таблицы в настоящее время не наследуются. Все проверочные ограничения и ненулевые ограничения родительской таблицы автоматически наследуются ее дочерними элементами. Другие типы ограничений (уникальный ключ, ограничения первичного ключа и ограничения внешнего ключа) не наследуются.

Наследование обеспечивает способ сопоставления функций иерархий обобщения, изображенных в диаграммах отношений сущностей (ERD), непосредственно в базе данных PostgreSQL.

Другие возможности хранения

Управление и подключение

Обертки сторонних данных

PostgreSQL может подключаться к другим системам для получения данных через внешние оболочки данных (FDW). [45] Они могут принимать форму любого источника данных, например файловой системы, другой системы управления реляционными базами данных (СУБД) или веб-службы. Это означает, что обычные запросы к базе данных могут использовать эти источники данных так же, как обычные таблицы, и даже объединять несколько источников данных вместе.

Интерфейсы

PostgreSQL поддерживает двоичный протокол связи , который позволяет приложениям подключаться к серверу базы данных. Протокол имеет версию (на данный момент 3.0, начиная с PostgreSQL 7.4) и имеет подробную спецификацию. [46]

Официальной клиентской реализацией этого протокола связи является C API , libpq. [47] Кроме того, официально поддерживаемый инструмент ECPG позволяет встраивать команды SQL в код C. [48] ​​Оба являются частью стандартного дистрибутива PostgreSQL. [49]

Сторонние библиотеки для подключения к PostgreSQL доступны для многих языков программирования , включая C++ , [50] Java , [51] Julia , [52] [53] [54] Python , [55] Node.js , [56] Go , [57] и Раст . [58]

Процедурные языки

Процедурные языки позволяют разработчикам расширять базу данных с помощью пользовательских подпрограмм (функций), часто называемых хранимыми процедурами . Эти функции можно использовать для создания триггеров базы данных (функций, вызываемых при изменении определенных данных), а также пользовательских типов данных и агрегатных функций . [59] Процедурные языки также можно вызывать без определения функции, используя команду DO на уровне SQL. [60]

Языки разделены на две группы: Процедуры, написанные на безопасных языках, изолированы в песочнице и могут безопасно создаваться и использоваться любым пользователем. Процедуры, написанные на небезопасных языках, могут создаваться только суперпользователями , поскольку они позволяют обходить ограничения безопасности базы данных, но также могут получать доступ к источникам, внешним по отношению к базе данных. Некоторые языки, такие как Perl, предоставляют как безопасные, так и небезопасные версии.

PostgreSQL имеет встроенную поддержку трёх процедурных языков:

Кроме того, PostgreSQL позволяет загружать процедурные языки в базу данных через расширения. В состав PostgreSQL включены три языковых расширения для поддержки Perl , Tcl и Python . Для Python используется текущий Python 3 , а прекращенная версия Python 2 больше не поддерживается, начиная с PostgreSQL 15. Оба поддерживаются ранее, по умолчанию используется Python 2 , тогда как старая и новая версии не могут использоваться в одном сеансе. [61] Внешние проекты обеспечивают поддержку многих других языков, [62] включая PL/ Java , JavaScript (PL/V8), PL/ Julia , [54] PL/ R , [63] PL/ Ruby и других.

Триггеры

Триггеры — это события, инициируемые действием операторов языка манипулирования данными SQL (DML). Например, инструкция INSERT может активировать триггер, который проверяет допустимость значений инструкции. Большинство триггеров активируются только операторами INSERT или UPDATE .

Триггеры полностью поддерживаются и могут быть прикреплены к таблицам. Триггеры могут быть постолбцовыми и условными: триггеры UPDATE могут быть нацелены на определенные столбцы таблицы, а триггерам можно указать выполняться при наборе условий, указанных в предложении WHERE триггера. Триггеры можно прикрепить к представлениям с помощью условия INSTEAD OF. Несколько триггеров срабатывают в алфавитном порядке. Помимо вызова функций, написанных на родном языке PL/pgSQL, триггеры также могут вызывать функции, написанные на других языках, таких как PL/Python или PL/Perl.

Асинхронные уведомления

PostgreSQL предоставляет асинхронную систему обмена сообщениями, доступ к которой осуществляется с помощью команд NOTIFY, LISTEN и UNLISTEN. Сеанс может выдать команду NOTIFY вместе с указанным пользователем каналом и дополнительной полезной нагрузкой, чтобы отметить возникновение определенного события. Другие сеансы могут обнаруживать эти события, выдавая команду LISTEN, которая может прослушивать определенный канал. Эту функцию можно использовать для самых разных целей, например, чтобы сообщить другим сеансам об обновлении таблицы или чтобы отдельные приложения могли обнаружить, когда было выполнено определенное действие. Такая система исключает необходимость постоянного опроса приложений, чтобы узнать, изменилось ли что-нибудь, и снижает ненужные накладные расходы. Уведомления являются полностью транзакционными: сообщения не отправляются до тех пор, пока транзакция, из которой они были отправлены, не будет зафиксирована. Это устраняет проблему отправки сообщений о выполняемом действии, которое затем откатывается.

Многие коннекторы для PostgreSQL обеспечивают поддержку этой системы уведомлений (включая libpq, JDBC, Npgsql, psycopg и node.js), поэтому ее могут использовать внешние приложения.

PostgreSQL может действовать как эффективный, постоянный сервер «pub/sub» или сервер заданий, комбинируя LISTEN с FOR UPDATE SKIP LOCKED. [64] [65] [66]

Правила

Правила позволяют перезаписывать «дерево запросов» входящего запроса; это автоматически вызываемый макроязык для SQL. «Правила перезаписи запросов» прикрепляются к таблице/классу и «переписывают» входящий DML (выбирают, вставляют, обновляют и/или удаляют) в один или несколько запросов, которые либо заменяют исходный оператор DML, либо выполняются в дополнение к нему. Перезапись запроса происходит после анализа оператора DML и перед планированием запроса.

Предоставленная функциональность правил была почти во всех отношениях позже продублирована с введением новых типов триггеров. Использование триггеров обычно предпочтительнее правил, поскольку легче рассуждать о поведении и взаимодействии триггеров, чем при использовании эквивалентных правил.

Другие функции запросов

Модель параллелизма

Сервер PostgreSQL основан на процессах (не многопоточный) и использует один процесс операционной системы для каждого сеанса базы данных. Несколько сеансов автоматически распределяются по всем доступным процессорам операционной системы. Многие типы запросов также можно распараллелить между несколькими фоновыми рабочими процессами, используя преимущества нескольких процессоров или ядер. [73] Клиентские приложения могут использовать потоки и создавать несколько подключений к базе данных из каждого потока. [74]

Безопасность

PostgreSQL управляет своей внутренней безопасностью для каждой роли . Роль обычно считается пользователем (роль, которая может войти в систему) или группой (роль, членами которой являются другие роли). Разрешения могут быть предоставлены или отозваны для любого объекта вплоть до уровня столбца, а также могут разрешить или запретить видимость/создание/изменение/удаление объектов на уровнях базы данных, схемы, таблицы и строки.

Функция SECURITY LABEL PostgreSQL (расширение стандартов SQL) обеспечивает дополнительную безопасность; со встроенным загружаемым модулем, который поддерживает обязательный контроль доступа на основе меток (MAC) на основе политики безопасности Security-Enhanced Linux (SELinux). [75] [76]

PostgreSQL изначально поддерживает широкий спектр внешних механизмов аутентификации, в том числе:

Методы GSSAPI, SSPI, Kerberos, однорангового узла, идентификатора и сертификата также могут использовать указанный файл «карты», в котором указано, каким пользователям, соответствующим этой системе аутентификации, разрешено подключаться как конкретному пользователю базы данных.

Эти методы указаны в файле конфигурации аутентификации на основе узла кластера ( pg_hba.conf), который определяет, какие соединения разрешены. Это позволяет контролировать, какой пользователь может подключиться к какой базе данных, откуда он может подключиться (IP-адрес, диапазон IP-адресов, сокет домена), какая система аутентификации будет применяться и должно ли соединение использовать безопасность транспортного уровня (TLS).

Соответствие стандартам

PostgreSQL заявляет о высоком, но не полном соответствии последнему стандарту SQL («по состоянию на выпуск версии 15 в октябре 2022 года PostgreSQL соответствует как минимум 170 из 179 обязательных функций для соответствия SQL: 2016 Core», и ни одна другая база данных не полностью соответствует требованиям SQL:2016 Core). соответствовало этому [78] ). Единственным исключением является обработка идентификаторов без кавычек, таких как имена таблиц или столбцов. В PostgreSQL они внутренне преобразуются в символы нижнего регистра [79] , тогда как стандарт гласит, что идентификаторы, не заключенные в кавычки, должны быть преобразованы в верхний регистр. Таким образом, Fooдолжно быть эквивалентно FOOне в fooсоответствии со стандартом. Другие недостатки касаются отсутствия темпоральных таблиц, позволяющих автоматически регистрировать версии строк во время транзакций с возможностью просмотра во времени (предикат FOR SYSTEM TIME), хотя доступны относительно SQL-совместимые сторонние расширения. [15]

Тесты и производительность

Было проведено множество неофициальных исследований производительности PostgreSQL. [80] Улучшения производительности, направленные на улучшение масштабируемости, начались в версии 8.1. Простые тесты между версией 8.0 и версией 8.4 показали, что последняя была более чем в десять раз быстрее при рабочих нагрузках только чтения и как минимум в 7,5 раз быстрее при рабочих нагрузках чтения и записи. [81]

Первый тест, соответствующий отраслевым стандартам и проверенный экспертами, был завершен в июне 2007 года с использованием сервера приложений Sun Java System (собственная версия GlassFish ) 9.0 Platform Edition, сервера Sun Fire на базе UltraSPARC T1 и PostgreSQL 8.2. [82] Этот результат 778.14 SPECjAppServer2004 JOPS@Standard выгодно отличается от результата 874 JOPS@Standard с Oracle 10 в системе HP-UX на базе Itanium . [80]

В августе 2007 года Sun представила улучшенный результат теста — 813,73 SPECjAppServer2004 JOPS@Standard. Благодаря сниженной цене тестируемой системы соотношение цена/производительность улучшилось с 84,98 долларов США за JOPS до 70,57 долларов США за JOPS. [83]

Конфигурация PostgreSQL по умолчанию использует лишь небольшой объем выделенной памяти для задач, критически важных для производительности, таких как кэширование блоков базы данных и сортировка. Это ограничение связано прежде всего с тем, что старые операционные системы требовали изменений в ядре, чтобы обеспечить возможность выделения больших блоков общей памяти . [84] PostgreSQL.org предоставляет рекомендации по основным рекомендуемым практикам производительности в вики . [85]

В апреле 2012 года Роберт Хаас из EnterpriseDB продемонстрировал линейную масштабируемость ЦП PostgreSQL 9.2 с использованием сервера с 64 ядрами. [86]

Matloob Khushi провел сравнительное тестирование PostgreSQL 9.0 и MySQL 5.6.15 на предмет их способности обрабатывать геномные данные. В своем анализе производительности он обнаружил, что PostgreSQL извлекает перекрывающиеся геномные области в восемь раз быстрее, чем MySQL, используя два набора данных по 80 000 каждый, образуя случайные области человеческой ДНК. Вставка и загрузка данных в PostgreSQL также были лучше, хотя общие возможности поиска в обеих базах данных были почти одинаковыми. [87]

Платформы

PostgreSQL доступен для следующих операционных систем: Linux (все последние версии), 64-битные установщики ARM и x86-64 доступны и протестированы для macOS (OS X) [88] версии 10.12 и новее, Windows (доступны и протестированы установщики для 64-разрядные версии Windows Server 2019 и 2016; некоторые старые версии PostgreSQL были протестированы на Windows 2012 R2 [89] ), FreeBSD , OpenBSD , [90] NetBSD , а также без официальных (хотя неофициальные, вероятно, доступны) двоичных исполняемых файлов, Solaris , [ 91] AIX и HP-UX . [92] Большинство других (современных) Unix-подобных систем также работают.

Можно ожидать, что PostgreSQL будет работать на любой из следующих архитектур набора команд (и операционных систем): 64-битные x86-64 и 32-битные x86 в Windows XP (или более поздних версиях) и других операционных системах; они поддерживаются в других системах, кроме Windows: 64-разрядная версия ARM [93] и более старая 32-разрядная версия ARM , включая более старые версии, такие как ARMv6 в Raspberry Pi [94] ), z/Architecture , S/390 , PowerPC (включая 64-разрядную версию). бит Power ISA ), SPARC (также 64-битный), IA-64 Itanium ( HP-UX ), MIPS и PA-RISC . Также было известно, что он работает на некоторых других платформах (хотя они не тестировались в течение многих лет, то есть для последних версий). [95]

Администрирование базы данных

Интерфейсы и инструменты с открытым исходным кодом для администрирования PostgreSQL включают:

psql
Основным интерфейсом PostgreSQL является psql программа командной строки , которую можно использовать для прямого ввода SQL-запросов или выполнения их из файла. Кроме того, psql предоставляет ряд метакоманд и различных функций оболочки, облегчающих написание сценариев и автоматизацию широкого спектра задач; например, заполнение имен объектов и синтаксиса SQL с помощью табуляции.
pgAdmin
Пакет pgAdmin — это бесплатный инструмент администрирования с графическим пользовательским интерфейсом (GUI) с открытым исходным кодом для PostgreSQL, который поддерживается на многих компьютерных платформах. [96] Программа доступна более чем на десятке языков. Первый прототип, названный pgManager, был написан для PostgreSQL 6.3.2 в 1998 году, а в последующие месяцы переписан и выпущен как pgAdmin под лицензией GNU General Public License (GPL). Вторая версия (названная pgAdmin II) представляла собой полностью переписанную версию и впервые была выпущена 16 января 2002 года. Третья версия, pgAdmin III, первоначально была выпущена под лицензией Artistic , а затем выпущена под той же лицензией, что и PostgreSQL. В отличие от предыдущих версий, написанных на Visual Basic , pgAdmin III написан на C++ с использованием инфраструктуры wxWidgets [97] , что позволяет ему работать в большинстве распространенных операционных систем. Инструмент запросов включает в себя язык сценариев pgScript для поддержки задач администрирования и разработки. В декабре 2014 года Дэйв Пейдж, основатель и основной разработчик проекта pgAdmin, [98] объявил, что с переходом к веб-моделям началась работа над pgAdmin 4 с целью облегчить развертывание в облаке. [99] В 2016 году была выпущена версия pgAdmin 4. Серверная часть pgAdmin 4 была написана на Python с использованием Flask и инфраструктуры Qt . [100]
phpPgAdmin
phpPgAdmin — это веб-инструмент администрирования PostgreSQL, написанный на PHP и основанный на популярном интерфейсе phpMyAdmin , изначально написанном для администрирования MySQL . [101]
PostgreSQL Студия
PostgreSQL Studio позволяет пользователям выполнять основные задачи разработки баз данных PostgreSQL с помощью веб-консоли. PostgreSQL Studio позволяет пользователям работать с облачными базами данных без необходимости открывать брандмауэры. [102]
КомандаPostgreSQL
Веб-интерфейс PostgreSQL на основе AJAX/JavaScript. Позволяет просматривать, поддерживать и создавать данные и объекты базы данных через веб-браузер. Интерфейс предлагает редактор SQL с вкладками с автозаполнением, виджеты редактирования строк, навигацию по внешним клавишам между строками и таблицами, управление избранным для часто используемых сценариев и другие функции. Поддерживает SSH как для веб-интерфейса, так и для подключений к базе данных . Установщики доступны для Windows, Macintosh и Linux, а также простой кроссплатформенный архив, который запускается из сценария. [103]
ЛибреОфис, OpenOffice.org
LibreOffice и OpenOffice.org Base можно использовать в качестве внешнего интерфейса для PostgreSQL. [104] [105]
pgBadger
Анализатор журнала pgBadger PostgreSQL генерирует подробные отчеты из файла журнала PostgreSQL. [106]
пгдевопс
pgDevOps — это набор веб-инструментов для установки и управления несколькими версиями PostgreSQL, расширениями и компонентами сообщества, разработки SQL-запросов, мониторинга работающих баз данных и поиска проблем с производительностью. [107]
Администратор
Adminer — это простой веб-инструмент администрирования PostgreSQL и других систем, написанный на PHP.
пгбакрест
pgBackRest — это инструмент резервного копирования и восстановления для PostgreSQL, который обеспечивает поддержку полного, дифференциального и инкрементального резервного копирования. [108]
pgaudit
pgaudit — это расширение PostgreSQL, которое обеспечивает подробное ведение журнала аудита сеансов и/или объектов с помощью стандартного средства ведения журнала, предоставляемого PostgreSQL. [109]
ва-ли
Wal-e — это инструмент резервного копирования и восстановления для PostgreSQL, который обеспечивает поддержку физических (на основе WAL) резервных копий, написанный на Python [110].

Ряд компаний предлагают собственные инструменты для PostgreSQL. Они часто состоят из универсального ядра, адаптированного для различных конкретных продуктов баз данных. Эти инструменты в основном имеют те же функции администрирования, что и инструменты с открытым исходным кодом, но предлагают улучшения в моделировании данных , импорте, экспорте или составлении отчетов.

Известные пользователи

Известные организации и продукты, использующие PostgreSQL в качестве основной базы данных, включают:

Реализации сервисов

Некоторые известные поставщики предлагают PostgreSQL как программное обеспечение как услугу :

История выпусков

Легенда:
Старая версия
Старая версия, все еще поддерживается
Последняя версия
Последняя предварительная версия
Будущий выпуск

Смотрите также

Рекомендации

  1. ^ "ПостгреSQL" . Проверено 21 сентября 2019 г. PostgreSQL: самая совершенная в мире реляционная база данных с открытым исходным кодом
  2. ^ ab «Профили участников». Группа глобального развития PostgreSQL . Проверено 14 марта 2017 г.
  3. ^ ab «С Днем Рождения, PostgreSQL!». Группа глобального развития PostgreSQL. 8 июля 2008 г.
  4. ^ «Выпущены версии PostgreSQL 16.2, 15.6, 14.11, 13.14 и 12.18!». 8 февраля 2024 г.
  5. ^ ab «Лицензия». Группа глобального развития PostgreSQL . Проверено 20 сентября 2010 г.
  6. ^ «Лицензия PostgreSQL одобрена OSI» . Кринвр. 18 февраля 2010 года. Архивировано из оригинала 8 августа 2016 года . Проверено 18 февраля 2010 г.
  7. ^ ab «Лицензия OSI PostgreSQL». Инициатива открытого исходного кода. 20 февраля 2010 года . Проверено 20 февраля 2010 г.
  8. ^ «Debian — Подробная информация о пакете postgresql в sid». packages.debian.org . Проверено 25 января 2021 г.
  9. ^ «Лицензирование:Основное». Проект Федора .
  10. ^ "ПостгреSQL". fsf.org .
  11. ^ «Часто задаваемые вопросы: что такое PostgreSQL? Как оно произносится? Что такое Postgres?». PostgreSQL Wiki . Сообщество PostgreSQL . Проверено 2 октября 2021 г.
  12. ^ «Аудиообразец, 5,6 тыс. MP3» .
  13. ^ «Что такое PostgreSQL?». Документация PostgreSQL 9.3.0 . Группа глобального развития PostgreSQL . Проверено 20 сентября 2013 г.
  14. ^ "ПостГИС". postgis.net . 18 декабря 2023 г. . Проверено 18 декабря 2023 г. PostGIS расширяет возможности реляционной базы данных PostgreSQL, добавляя поддержку хранения, индексирования и запроса геопространственных данных.
  15. ^ ab «Временные расширения». PostgreSQL Wiki . 18 декабря 2023 г. . Проверено 18 декабря 2023 г. Postgres можно расширить и превратить в временную базу данных. Такие базы данных отслеживают историю содержимого базы данных с течением времени, автоматически сохраняя эту историю и позволяя ее изменять и запрашивать.
  16. ^ «Orafce — функции и пакеты совместимости Oracle» . github.com . 17 декабря 2023 г. . Проверено 18 декабря 2023 г. Функции и операторы, эмулирующие подмножество функций и пакетов из СУБД Oracle.
  17. ^ "pg_dbms_job". github.com . 8 ноября 2023 г. . Проверено 18 декабря 2023 г. Расширение PostgreSQL для планирования и управления заданиями в очереди заданий, аналогично пакету Oracle DBMS_JOB.
  18. ^ "УилтонДБ". УилтонДБ . 2023 . Проверено 18 декабря 2023 г. WiltonDB [упакован] для Windows. Его стремятся использовать в качестве замены Microsoft SQL Server.
  19. ^ "Babelfish для PostgreSQL" . www.babelfishpg.org . Проверено 18 декабря 2023 г. Babelfish для PostgreSQL... предоставляет PostgreSQL возможность понимать запросы из приложений, написанных для Microsoft SQL Server.
  20. ^ «Клиенты PostgreSQL». wiki.postgresql.org . 18 октября 2023 г. . Проверено 18 декабря 2023 г. Эта страница представляет собой неполный список интерактивных клиентов SQL (с графическим интерфейсом или нет)... в которые вы можете вводить SQL и получать от них результаты.
  21. ^ «Инструменты дизайна». wiki.postgresql.org . 23 октября 2023 г. . Проверено 18 декабря 2023 г. Инструменты, помогающие в разработке схемы путем создания диаграмм «сущность-связь» и тому подобного. Большинство из них имеют графический интерфейс.
  22. ^ «Руководство сообщества по инструментам графического интерфейса PostgreSQL» . wiki.postgresql.org . 1 декабря 2023 г. . Проверено 18 декабря 2023 г. На этой странице представлен список различных утилит, которые работают с Postgres (например, загрузчики данных, компараторы и т. д.).
  23. ^ «Репликация, кластеризация и объединение пулов соединений». wiki.postgresql.org . 13 июля 2020 г. Проверено 18 декабря 2023 г. Существует множество подходов к масштабированию PostgreSQL за пределы одного сервера. ... Не существует универсального решения, подходящего всем...
  24. ^ Это подтверждается либеральным разрешением на использование имени PostgreSQL, как оно одобрено (для добросовестного использования, если не вводить людей в заблуждение по поводу юридических отношений с реальным проектом PostgreSQL) при использовании для поддержки PostgreSQL, в соответствии с Политикой в ​​отношении товарных знаков PostgreSQL: " Политика в отношении товарных знаков». PostgreSQL.org . 8 декабря 2020 г. . Проверено 17 декабря 2023 г. Мы постараемся работать с вами, чтобы разрешить использование [названия PostgreSQL®] для поддержки проекта PostgreSQL® и нашего сообщества.
  25. ^ аб Стоунбрейкер, М.; Роу, Луизиана (май 1986 г.). Дизайн POSTGRES (PDF) . Учеб. 1986 Конференция ACM SIGMOD по управлению данными. Вашингтон . Проверено 17 декабря 2011 г.
  26. ^ «PostgreSQL: История». Группа глобального развития PostgreSQL. Архивировано из оригинала 26 марта 2017 года . Проверено 27 августа 2016 г.
  27. ^ «Название проекта – заявление основной команды» . archives.postgresql.org. 16 ноября 2007 года . Проверено 16 ноября 2007 г.
  28. ^ "Майкл Стоунбрейкер - обладатель премии AM Тьюринга" . amturing.acm.org . Проверено 20 марта 2018 г. Техники, впервые разработанные в Postgres, были широко реализованы [..] Стоунбрейкер — единственный лауреат премии Тьюринга, который занимался серийным предпринимательством такого масштаба, что дало ему особый взгляд на академический мир.
  29. ^ Стоунбрейкер, М.; Роу, Луизиана Модель данных POSTGRES (PDF) . Материалы 13-й Международной конференции по очень большим базам данных. Брайтон, Англия: Издательство Morgan Kaufmann. стр. 83–96. ISBN 0-934613-46-Х.
  30. Павел Стехуле (9 июня 2012 г.). «История проекта PostgreSQL» (на чешском языке).
  31. ^ Краткая история PostgreSQL «Версия 3 появилась в 1991 году и добавила поддержку нескольких менеджеров хранения, улучшенного исполнителя запросов и переписанной системы правил». postgresql.org . Группа глобального развития PostgreSQL , дата обращения 18 марта 2020 г.
  32. ^ «Университет POSTGRES, версия 4.2» . 26 июля 1999 г.
  33. Пейдж, Дэйв (7 апреля 2015 г.). «Re: 20-летие PostgreSQL?». pgsql-advocacy (список рассылки) . Проверено 9 апреля 2015 г.
  34. ^ Дэн Р.К. Портс; Кевин Гриттнер (2012). «Изоляция сериализуемых снимков в PostgreSQL» (PDF) . Труды Фонда VLDB . 5 (12): 1850–1861. arXiv : 1208.4179 . Бибкод : 2012arXiv1208.4179P. дои : 10.14778/2367502.2367523. S2CID  16006111.
  35. ^ Бохан Чжан; Энди Павло (2023). «Та часть PostgreSQL, которую мы ненавидим больше всего». OtterTune (блог).
  36. ^ PostgreSQL 9.1 с синхронной репликацией (новости), H Online
  37. ^ «Страница проекта Postgres-XC» (веб-сайт). Постгрес-XC. Архивировано из оригинала 1 июля 2012 года.
  38. ^ «Postgres-R: система репликации базы данных для PostgreSQL». Группа глобального развития Postgres. Архивировано из оригинала 29 марта 2010 года . Проверено 27 августа 2016 г.
  39. ^ "Постгрес-БДР". ООО "2-й Квадрант" . Проверено 27 августа 2016 г.
  40. Марит Фишер (10 ноября 2007 г.). «Backcountry.com наконец-то вернул что-то сообществу открытого исходного кода» (пресс-релиз). Бэккантри.com. Архивировано из оригинала 26 декабря 2010 года.
  41. ^ Бартунов, О; Сигаев Т. (май 2011 г.). SP-GiST — новая платформа индексирования для PostgreSQL (PDF) . PGCon 2011. Оттава, Канада . Проверено 31 января 2016 г.
  42. ^ Бартунов, О; Сигаев Т. (май 2010 г.). Поиск K-ближайшего соседа для PostgreSQL (PDF) . PGCon 2010. Оттава, Канада . Проверено 31 января 2016 г.
  43. ^ «PostgreSQL, база данных NoSQL | Журнал Linux» . www.linuxjournal.com .
  44. Геохеган, Питер (23 марта 2014 г.). «Что я думаю о jsonb».
  45. ^ Обе, Регина; Сюй, Лео С. (2012). «10: Репликация и внешние данные». PostgreSQL: В работе (1-е изд.). Севастополь, Калифорния: O'Reilly Media, Inc. с. 129. ИСБН 978-1-4493-2633-3. Проверено 17 октября 2016 г. Обертки внешних данных (FDW) [...] представляют собой механизмы запроса внешних источников данных. В PostgreSQL 9.1 появилась эта функция, соответствующая стандартам SQL/MED .
  46. ^ «Внешний/бэкэнд-протокол». postgresql.org . 9 ноября 2023 г. . Проверено 17 декабря 2023 г. В этом документе описывается версия протокола 3.0, реализованная в PostgreSQL 7.4 и более поздних версиях.
  47. Ссылки _ postgresql.org . 9 ноября 2023 г. . Проверено 17 декабря 2023 г.
  48. ^ «Встроенный SQL в C». postgresql.org . 9 ноября 2023 г. . Проверено 17 декабря 2023 г.
  49. ^ «Клиентские интерфейсы». postgresql.org . 9 ноября 2023 г. . Проверено 17 декабря 2023 г.
  50. ^ "libpqxx" . Проверено 4 апреля 2020 г.
  51. ^ «Драйвер JDBC PostgreSQL» . Проверено 4 апреля 2020 г.
  52. ^ «[ANN] PostgresORM.jl: Реляционное сопоставление объектов для PostgreSQL» . Джулия Ланг . 30 июня 2021 г. . Проверено 26 августа 2021 г.
  53. ^ "GitHub - invenia/LibPQ.jl: оболочка Julia для libpq" . Гитхаб . Проверено 26 августа 2021 г.
  54. ^ ab «Расширение PL/Julia (минимальное)» . Джулия Ланг . 8 марта 2020 г. Проверено 26 августа 2021 г.
  55. ^ «PostgreSQL + Python | Psycopg». initd.org .
  56. ^ "узел-постгрес" . Проверено 4 апреля 2020 г.
  57. ^ «Драйверы базы данных SQL» . Зайдите в вики . golang.org . Проверено 22 июня 2015 г.
  58. ^ "Ржавчина-Постгрес" . Проверено 4 апреля 2020 г.
  59. ^ «Серверное программирование». Документация PostgreSQL . Проверено 19 мая 2019 г.
  60. ^ "ДЕЛАТЬ". Документация PostgreSQL . Проверено 19 мая 2019 г.
  61. ^ «PL/Python — процедурный язык Python» . Документация PostgreSQL . Проверено 23 октября 2022 г.
  62. ^ «Процедурные языки». postgresql.org. 31 марта 2016 года . Проверено 7 апреля 2016 г.
  63. ^ "postgres-plr/plr". 17 июня 2021 г. — через GitHub.
  64. Шартье, Колин (8 ноября 2019 г.). «Хак с системным дизайном: Postgres — отличный сервер для публикации/подписки и работы». Блог LayerCI . Проверено 24 ноября 2019 г.
  65. ^ «Выпуск 9.5». postgresql.org . 11 февраля 2021 г.
  66. Рингер, Крейг (13 апреля 2016 г.). «Для чего нужен SKIP LOCKED в PostgreSQL 9.5?». 2-й квадрант . Проверено 24 ноября 2019 г.
  67. ^ «Добавить отношения материализованного представления» . 4 марта 2013 года . Проверено 4 марта 2013 г.
  68. ^ «Поддержка автоматически обновляемых представлений» . 8 декабря 2012 года . Проверено 8 декабря 2012 г.
  69. ^ «Добавить синтаксис CREATE RECURSIVE VIEW» . 1 февраля 2013 года . Проверено 28 февраля 2013 г.
  70. ^ Момджян, Брюс (2001). «Подзапросы». PostgreSQL: введение и концепции. Аддисон-Уэсли. ISBN 0-201-70331-9. Архивировано из оригинала 9 августа 2010 года . Проверено 25 сентября 2010 г.
  71. Бернье, Роберт (2 февраля 2006 г.). «Использование регулярных выражений в PostgreSQL». О'Рейли Медиа . Проверено 25 сентября 2010 г.
  72. ^ «Несколько коротких заметок о PostgreSQL и POODLE». хагандер.нет .
  73. Беркус, Джош (2 июня 2016 г.). «PostgreSQL 9.6 Beta и PGCon 2016». LWN.net .
  74. ^ «Часто задаваемые вопросы - вики PostgreSQL» . wiki.postgresql.org . Проверено 13 апреля 2017 г.
  75. ^ «Документация SEPostgreSQL - вики PostgreSQL» . wiki.postgresql.org .
  76. ^ "Примечание: SQL 9.3 — SELinux Wiki" . selinuxproject.org .
  77. ^ «Документация PostgreSQL 10: Приложение E. Примечания к выпуску» . 12 августа 2021 г.
  78. ^ «PostgreSQL: О программе» . www.postgresql.org . Проверено 26 августа 2021 г.
  79. ^ «Учет регистра идентификаторов» . Группа глобального развития PostgreSQL. 11 ноября 2021 г.
  80. ↑ Аб Беркус, Джош (6 июля 2007 г.). «PostgreSQL публикует первый настоящий тест». Архивировано из оригинала 12 июля 2007 года . Проверено 10 июля 2007 г.
  81. Вилмош, Дьёрдь (29 сентября 2009 г.). «История PostgreSQL» . Проверено 28 августа 2010 г.
  82. ^ "Результат SPECjAppServer2004" . СПЕЦ . 6 июля 2007 года . Проверено 10 июля 2007 г.
  83. ^ "Результат SPECjAppServer2004" . СПЕЦ . 4 июля 2007 года . Проверено 1 сентября 2007 г.
  84. ^ «Управление ресурсами ядра». Руководство по PostgreSQL . PostgreSQL.org . Проверено 12 ноября 2011 г.
  85. Грег Смит (15 октября 2010 г.). PostgreSQL 9.0 Высокая производительность. Пакт Паблишинг . ISBN 978-1-84951-030-1.
  86. Роберт Хаас (3 апреля 2012 г.). «Я сказал 32 ядра? А как насчет 64?» . Проверено 8 апреля 2012 г.
  87. ^ Хуши, Матлуб (июнь 2015 г.). «Сравнительный анализ производительности базы данных для геномных данных». J Cell Biochem . 116 (6): 877–83. arXiv : 2008.06835 . дои : 10.1002/jcb.25049. PMID  25560631. S2CID  27458866.
  88. ^ «Пакеты Mac OS X». Группа глобального развития PostgreSQL . Проверено 27 августа 2016 г.
  89. ^ «PostgreSQL: установщики Windows» . www.postgresql.org . Проверено 26 августа 2021 г.
  90. ^ «postgresql-client-10.5p1 – СУБД PostgreSQL (клиент)» . Порты OpenBSD . 4 октября 2018 г. Проверено 10 октября 2018 г.
  91. ^ «Установка и настройка PostgreSQL — Руководство по службе кластерных данных Oracle Solaris для PostgreSQL» . docs.oracle.com . Проверено 4 февраля 2023 г.
  92. ^ «Центр портирования и архивирования HP-UX | postgresql-12.4» . hpux.connect.org.uk . Проверено 4 февраля 2023 г.
  93. ^ «AArch64 планирует BoF на DebConf» . debian.org .
  94. Соуза, Рубенс (17 июня 2015 г.). «Шаг 5 (обновление). Установка PostgreSQL на Raspberry Pi 1 и 2». Малина ПГ . Проверено 27 августа 2016 г.
  95. ^ «Поддерживаемые платформы». Группа глобального развития PostgreSQL . Проверено 6 апреля 2012 г.
  96. ^ «pgAdmin: инструменты администрирования и управления PostgreSQL» . Веб-сайт . Проверено 12 ноября 2011 г.
  97. ^ «Debian — Подробности о пакете pgadmin3 в jessie» . Проверено 10 марта 2017 г.
  98. ^ "Команда разработчиков pgAdmin" . pgadmin.org . Проверено 22 июня 2015 г.
  99. Дэйв, Пейдж (7 декабря 2014 г.). «История pgAdmin». Блог Дэйва о Postgres . pgsnake.blogspot.co.uk . Проверено 7 декабря 2014 г.
  100. ^ "README pgAdmin 4" . Гитхаб . Проверено 15 августа 2018 г.
  101. ^ Проект phpPgAdmin (25 апреля 2008 г.). «О phpPgAdmin» . Проверено 25 апреля 2008 г.
  102. ^ PostgreSQL Studio (9 октября 2013 г.). «О PostgreSQL Studio». Архивировано из оригинала 7 октября 2013 года . Проверено 9 октября 2013 г.
  103. ^ "Веб-сайт TeamPostgreSQL" . 3 октября 2013 года . Проверено 3 октября 2013 г.
  104. ^ oooforum.org (10 января 2010 г.). «Бэкенды для OpenOffice». Архивировано из оригинала 28 сентября 2011 года . Проверено 5 января 2011 г.
  105. ^ libreoffice.org (14 октября 2012 г.). «Базовые возможности». Архивировано из оригинала 7 января 2012 года . Проверено 14 октября 2012 г.
  106. ^ Грег Смит; Роберт Трит и Кристофер Браун. «Настройка вашего сервера PostgreSQL». Вики . PostgreSQL.org . Проверено 12 ноября 2011 г.
  107. ^ "pgDevOps". BigSQL.org . Архивировано из оригинала 1 апреля 2017 года . Проверено 4 мая 2017 г.
  108. ^ "pgbackrest/pgbackrest". Гитхаб . 21 ноября 2021 г.
  109. ^ "пгаудит/пгаудит" . Гитхаб . 21 ноября 2021 г.
  110. ^ "Вал-и / Вал-и" . 24 июня 2021 г. — через GitHub.
  111. Клэр Джордано (31 октября 2019 г.). «Архитектура аналитики петабайтного масштаба путем масштабирования Postgres в Azure с помощью расширения Citus». Блог . Техническое сообщество Microsoft.
  112. ^ Эммануэль Чекше (21 мая 2009 г.). Создание хранилищ PetaByte с помощью немодифицированного PostgreSQL (PDF) . ПГКон 2009 . Проверено 12 ноября 2011 г.
  113. ^ «MySpace.com масштабирует аналитику для всех своих друзей» (PDF) . тематическое исследование. Данные Астер. 15 июня 2010 г. Архивировано (PDF) из оригинала 14 ноября 2010 г. . Проверено 12 ноября 2011 г.
  114. ^ "Отключение на прошлых выходных" . Блог . Гени. 1 августа 2011 г.
  115. ^ «База данных». Вики . OpenStreetMap.
  116. ^ Домен .ORG филиала PostgreSQL, Австралия: Computer World, 24 августа 2023 г.
  117. ^ abc В. Джейсон Гилмор; Р. Х. Трит (2006). Начало PHP и PostgreSQL 8: от новичка до профессионала. Апресс. ISBN 978-1-43020-136-6. Проверено 30 августа 2017 г.
  118. ^ Sony Online предпочитает базу данных с открытым исходным кодом вместо Oracle, Computer World.
  119. ^ «Пример использования PostgreSQL группой веб-торговли» (PDF) (изд. 1.2). ПостгреSQL.
  120. ^ «Обзор архитектуры» . Вики-версия программного обеспечения Reddit . Реддит. 27 марта 2014 года . Проверено 25 ноября 2014 г.
  121. ^ Пихлак, Мартин. «PostgreSQL @Skype» (PDF) . wiki.postgresql.org . Проверено 16 января 2019 г.
  122. ^ «Сколько вы платите за свою базу данных?». Блог Sun Microsystems. 2007. Архивировано из оригинала 7 марта 2009 года . Проверено 14 декабря 2007 г.
  123. ^ "База данных - MusicBrainz" . MusicBrainz Wiki . Проверено 5 февраля 2011 г.
  124. ^ Дункавадж, Дэниел П. (13 июля 2010 г.). «НАСА нуждается в помощи Postgres-Nagios».
  125. ^ Рой, Гэвин М (2010). «PostgreSQL на myYearbook.com» (обсуждение). Восток США: конференция PostgreSQL. Архивировано из оригинала 27 июля 2011 года.
  126. ^ «Поддержание Instagram с более чем миллионом новых пользователей за двенадцать часов» . Instagram-engineering.tumblr.com. 17 мая 2011 года . Проверено 7 июля 2012 г.
  127. ^ "Postgres в Disqus" . Проверено 24 мая 2013 г.
  128. Келли, Мэтью (27 марта 2015 г.). В сердце гиганта: Postgres на TripAdvisor. PGConf US 2015. Архивировано из оригинала 23 июля 2015 года . Проверено 23 июля 2015 г.(Презентационный видеоролик)
  129. ^ "Успешный переход Яндекс.Почты с Oracle на Postgres [pdf]" . Хакерские новости: news.ycombinator.com . Проверено 28 сентября 2016 г.
  130. ^ аб С. Риггс; Дж. Чолли; Х. Кросинг; Г. Бартолини (2015). Пособия по администрированию PostgreSQL 9 — второе издание. Пакет. ISBN 978-1-84951-906-9. Проверено 5 сентября 2017 г.
  131. ^ «Met Office заменяет Oracle на PostgreSQL» . www.computerweekly.com . 17 июня 2014 года . Проверено 5 сентября 2017 г.
  132. ^ «Программное обеспечение с открытым исходным кодом». FlightAware . Проверено 22 ноября 2017 г.
  133. ^ «Ansible в Grofers (Часть 2) — Управление PostgreSQL» . Lambda — Инженерный блог Grofers . 28 февраля 2017 г. . Проверено 5 сентября 2018 г.
  134. ^ МакМахон, Филип; Хиореан, Мария-Ливия; Коулман, Сьюзи; Аскулум, Акаш (30 ноября 2018 г.). «Цифровой блог: прощай, Монго, здравствуй, Postgres». Хранитель . ISSN  0261-3077.
  135. ^ «Повышенные ошибки в API и ChatGPT» . Проверено 2 декабря 2023 г.
  136. Алекс Уильямс (1 апреля 2013 г.). «Heroku вынуждает клиента обновиться, чтобы исправить критическую дыру в безопасности PostgreSQL» . ТехКранч .
  137. Барб Дэрроу (11 ноября 2013 г.). «Heroku снабжает Postgres откатом базы данных и упреждающими оповещениями». ГигаОМ.
  138. Крейг Керстиенс (26 сентября 2013 г.). «WAL-E и непрерывная защита с помощью Heroku Postgres». Блог Хероку.
  139. ^ «EnterpriseDB предлагает облачную базу данных Postgres Plus» . Techweekeurope.co.uk. 27 января 2012 года . Проверено 7 июля 2012 г.
  140. ^ «Alibaba Cloud расширяет техническое партнерство с EnterpriseDB» . Партнеры Майлстоун . 26 сентября 2018 года . Проверено 9 июня 2020 г.
  141. ^ О'Доэрти, Пол; Асселин, Стефан (2014). «3: Архитектура рабочего пространства VMware». VMware Horizon Suite: создание сервисов для конечных пользователей. Пресс-технологии VMware. Аппер-Сэддл-Ривер, Нью-Джерси: VMware Press. п. 65. ИСБН 978-0-13-347910-2. Проверено 19 сентября 2016 г. В дополнение к версии PostgreSQL с открытым исходным кодом VMware предлагает vFabric Postgres или vPostgres. vPostgres — это виртуальное устройство PostgreSQL, настроенное для виртуальных сред.
  142. ^ Эл Сарджент (15 мая 2012 г.). «Представляем VMware vFabric Suite 5.1: автоматическое развертывание, новые компоненты и поддержка открытого исходного кода». Блоги VMware.
  143. ^ «VMware vFabric Suite EOA» (PDF) . 1 сентября 2014 года . Проверено 17 декабря 2023 г.
  144. Джефф (14 ноября 2013 г.). «Amazon RDS для PostgreSQL – теперь доступно». Блог веб-сервисов Amazon.
  145. Алекс Уильямс (14 ноября 2013 г.). «PostgreSQL теперь доступен в службе реляционных баз данных Amazon». ТехКранч .
  146. ^ «Обновление Amazon Aurora – совместимость с PostgreSQL» . Блог AWS . 30 ноября 2016 г. Проверено 1 декабря 2016 г.
  147. ^ «Анонсируем базу данных Azure для PostgreSQL». Лазурный блог . 10 мая 2017 г. Проверено 19 июня 2019 г.
  148. ^ «Aliyun PolarDB выпустила крупные обновления для поддержки миграции баз данных, таких как Oracle, в облако одним щелчком мыши» . Разработать бумагу . 6 июля 2019 г.
  149. ^ «Асинхронная репликация Master-Slave баз данных PostgreSQL в один клик». ДЗона . Проверено 26 мая 2017 г.
  150. ^ «Документация IBM Cloud Hyper Protect DBaaS для PostgreSQL» . Cloud.ibm.com . Проверено 24 июня 2020 г.
  151. ^ «Crunchy Data продолжает поддержку PostgreSQL с выпуском Crunchy Bridge» . 18 сентября 2020 г.
  152. ^ «ВЫБЕРИТЕ бессерверный Postgres 'Hello, World', созданный для облака» . 15 июня 2022 г.
  153. ^ «Политика версий». Группа глобального развития PostgreSQL . Проверено 4 октября 2018 г.
  154. Ваас, Лиза (2 декабря 2002 г.). «Базы данных для предприятий». электронная неделя . Проверено 29 октября 2016 г.
  155. ^ Криль, Пол (20 ноября 2003 г.). «PostgreSQL способствует развитию баз данных с открытым исходным кодом». Инфомир . Проверено 21 октября 2016 г.
  156. Крил, Пол (19 января 2005 г.). «База данных с открытым исходным кодом PostgreSQL может похвастаться поддержкой Windows» . Инфомир . Проверено 2 ноября 2016 г.
  157. Вайс, Тодд Р. (5 декабря 2006 г.). «Выпущена версия 8.2 базы данных PostgreSQL с открытым исходным кодом» . Компьютерный мир . Проверено 17 октября 2016 г.
  158. Гилбертсон, Скотт (5 февраля 2008 г.). «PostgreSQL 8.3: база данных с открытым исходным кодом обещает невероятную скорость». Проводной . Проверено 17 октября 2016 г.
  159. Хубер, Матиас (2 июля 2009 г.). «PostgreSQL 8.4 обладает множеством функций». Журнал Линукс . Проверено 17 октября 2016 г.
  160. Брокмайер, Джо (30 сентября 2010 г.). «Пять корпоративных функций в PostgreSQL 9». Linux.com . Фонд Linux . Проверено 6 февраля 2017 г.
  161. Тимоти Прикетт Морган (12 сентября 2011 г.). «PostgreSQL обновляется до версии 9.1, ориентированной на предприятия». Регистр . Проверено 6 февраля 2017 г.
  162. ^ «PostgreSQL: выпущен PostgreSQL 9.2» . www.postgresql.org . 10 сентября 2012 г.
  163. ^ «Вновь представляем Hstore для PostgreSQL». ИнфоQ .
  164. Ричард, Чиргвин (7 января 2016 г.). «Скажите: упс, ПОДНЯТИТЕ голову: вышла версия PostgreSQL 9.5». Регистр . Проверено 17 октября 2016 г.
  165. ^ «PostgreSQL: Документация: 10: Глава 31. Логическая репликация». www.postgresql.org . 12 августа 2021 г.
  166. ^ «Выпущен PostgreSQL 11» . 18 октября 2018 года . Проверено 18 октября 2018 г.
  167. ^ "Примечания к выпуску PostgreSQL" . Проверено 18 октября 2018 г.
  168. ^ «PostgreSQL: выпущен PostgreSQL 12!». Новости PostgreSQL . 3 октября 2019 г.
  169. ^ «Примечания к выпуску PostgreSQL 13» . www.postgresql.org . 12 августа 2021 г.
  170. ^ «Выпущен PostgreSQL 13!». www.postgresql.org . 24 сентября 2020 г.
  171. ^ «Примечания к выпуску PostgreSQL 14» . www.postgresql.org . 11 ноября 2021 г.
  172. ^ «Выпущен PostgreSQL 14!». www.postgresql.org . 30 сентября 2021 г.
  173. ^ «Выпущен PostgreSQL 16!». 14 сентября 2023 г.

дальнейшее чтение

Внешние ссылки