PostgreSQL
Разработчик(и) | Группа глобального развития PostgreSQL [2] |
---|---|
Первоначальный выпуск | 8 июля 1996 г [3] |
Стабильная версия | 16.3 [4] / 9 мая 2024 г |
Предварительный выпуск | 17 бета 2 [5] / 27 июня 2024 г |
Репозиторий | |
Написано в | С |
Тип | СУБД |
Лицензия | Лицензия PostgreSQL ( бесплатная, с открытым исходным кодом , разрешительная ) [6] [7] [8] |
Веб-сайт | www |
Издатель | Группа глобального развития PostgreSQL Регенты Калифорнийского университета |
---|---|
Совместимость с Debian FSG | Да [9] [10] |
ФСФ одобрено | Да [11] |
OSI одобрено | Да [8] |
Совместимость с лицензией GPL | Да |
Авторское лево | Нет |
Связывание из кода с другой лицензией | Да |
Веб-сайт | PostgreSQL |
PostgreSQL ( / ˈ p oʊ s t ɡ r ɛ s ˌ k juː ˈ ɛ l / , POHST -gres kyoo el ), [12] [13] также известная как Postgres , представляет собой с открытым исходным кодом, бесплатную систему управления реляционными базами данных (СУБД) в которой особое внимание уделяется расширяемости и совместимости с SQL .PostgreSQL поддерживает транзакции со атомарности , согласованности , изоляции , долговечности ( ACID свойствами ), автоматически обновляемые представления , материализованные представления , триггеры , внешние ключи и хранимые процедуры . [14] Он поддерживается во всех основных операционных системах , включая Linux , FreeBSD , OpenBSD , macOS и Windows , и обрабатывает широкий спектр рабочих нагрузок — от отдельных компьютеров до хранилищ данных или веб-сервисов со многими одновременно работающими пользователями .
Группа глобального развития PostgreSQL занимается только разработкой ядра базы данных и тесно связанных с ним компонентов.Технически это ядро представляет собой то, что включает в себя сам PostgreSQL, но существует обширное сообщество разработчиков и экосистема, предоставляющая другие важные наборы функций, которые традиционно могут предоставляться поставщиком проприетарного программного обеспечения.К ним относятся специальные функции ядра базы данных, например, необходимые для поддержки геопространственных данных. [15] или временный [16] базу данных или функции, которые имитируют другие продукты баз данных. [17] [18] [19] [20] Также от третьих лиц доступен широкий спектр функций пользовательского и машинного интерфейса, например графические интерфейсы пользователя. [21] [22] [23] или наборы инструментов для балансировки нагрузки и обеспечения высокой доступности . [24] Большая сторонняя сеть поддержки PostgreSQL, состоящая из людей, компаний, продуктов и проектов, хотя и не входит в группу разработчиков PostgreSQL, важна для внедрения и использования ядра базы данных PostgreSQL и составляет экосистему PostgreSQL в целом. [25]
Первоначально PostgreSQL назывался POSTGRES, что указывает на его происхождение как преемника базы данных Ingres, разработанной в Калифорнийском университете в Беркли . [26] [27] В 1996 году проект был переименован в PostgreSQL
, чтобы отразить поддержку SQL . После проверки в 2007 году команда разработчиков решила сохранить название PostgreSQL и псевдоним Postgres. [28]
История
[ редактировать ]PostgreSQL развился из проекта Ingres в Калифорнийском университете в Беркли. В 1982 году лидер команды Ingres Майкл Стоунбрейкер покинул Беркли, чтобы создать собственную версию Ingres. [26] Он вернулся в Беркли в 1985 году и начал пост-Ингровский проект по решению проблем современных систем баз данных, которые стали все более очевидными в начале 1980-х годов. он получил премию Тьюринга в 2014 году. За эти и другие проекты [29] и методы, впервые использованные в них.
Новый проект POSTGRES был направлен на добавление наименьшего количества функций, необходимых для полной поддержки типов данных . [30] Эти функции включали возможность определять типы и полностью описывать отношения — то, что широко используется, но полностью поддерживается пользователем. В POSTGRES база данных понимала взаимосвязи и могла извлекать информацию из связанных таблиц естественным способом с использованием правил . POSTGRES использовал многие идеи Ingres, но не его код. [31]
Начиная с 1986 года, в опубликованных статьях описывалась основа системы, а прототипная версия была показана на конференции ACM SIGMOD 1988 года . В июне 1989 года команда выпустила версию 1 для небольшого числа пользователей, а в июне 1990 года — версию 2 с переписанной системой правил. Версия 3, выпущенная в 1991 году, снова переписала систему правил и добавила поддержку нескольких менеджеры по хранению [32] и улучшенный механизм запросов. К 1993 году количество пользователей начало перегружать проект просьбами о поддержке и функциях. После выпуска версии 4.2 [33] 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 года. [34] Первый выпуск PostgreSQL (версия 6.0) вышел 29 января 1997 года. С тех пор разработчики и волонтеры по всему миру поддерживают это программное обеспечение под названием The PostgreSQL Global Development Group. [2]
Проект продолжает выпускать выпуски под лицензией бесплатного программного обеспечения PostgreSQL с открытым исходным кодом . Код создается благодаря вкладу проприетарных поставщиков, компаний поддержки и программистов с открытым исходным кодом.
Управление многоверсионным параллелизмом (MVCC)
[ редактировать ]PostgreSQL управляет параллелизмом посредством управления многоверсионным параллелизмом (MVCC), который предоставляет каждой транзакции «моментальный снимок» базы данных, позволяя вносить изменения, не затрагивая другие транзакции. Это в значительной степени устраняет необходимость в блокировках чтения и гарантирует, что база данных поддерживает принципы ACID . PostgreSQL предлагает четыре уровня изоляции транзакций : чтение без фиксации, чтение с фиксацией, повторяемое чтение и сериализуемость. Поскольку PostgreSQL невосприимчив к «грязному» чтению, запрос уровня изоляции транзакции «Чтение незафиксированной» вместо этого обеспечивает зафиксированное чтение. PostgreSQL поддерживает полную сериализуемость с помощью метода изоляции сериализуемых снимков (SSI). [35] Реализация PostgreSQL MVCC склонна к проблемам с производительностью, которые требуют настройки при большой нагрузке записи, которая обновляет существующие строки. [36]
Хранение и репликация
[ редактировать ]Репликация
[ редактировать ]PostgreSQL включает встроенную двоичную репликацию, основанную на асинхронной доставке изменений ( журналы упреждающей записи (WAL)) на узлы реплик с возможностью выполнения запросов только для чтения к этим реплицированным узлам. Это позволяет эффективно распределять трафик чтения между несколькими узлами. Более раннее программное обеспечение репликации, которое позволяло аналогичное масштабирование чтения, обычно полагалось на добавление триггеров репликации к ведущему устройству, увеличивая нагрузку.
PostgreSQL включает встроенную синхронную репликацию. [37] это гарантирует, что для каждой транзакции записи мастер ждет, пока хотя бы один узел реплики не запишет данные в свой журнал транзакций. В отличие от других систем баз данных, долговечность транзакции (независимо от того, является ли она асинхронной или синхронной) может быть указана для каждой базы данных, для каждого пользователя, для каждого сеанса или даже для каждой транзакции. Это может быть полезно для рабочих нагрузок, которые не требуют таких гарантий, и может быть нежелательно для всех данных, поскольку это снижает производительность из-за требования подтверждения транзакции, достигающей синхронного резервного сервера.
Резервные серверы могут быть синхронными или асинхронными. Синхронные резервные серверы можно указать в конфигурации, которая определяет, какие серверы являются кандидатами на синхронную репликацию. Первый в списке, который активно осуществляет потоковую передачу, будет использоваться в качестве текущего синхронного сервера. Если это не удается, система переключается на следующую в очереди.
Синхронная репликация с несколькими хозяевами не включена в ядро PostgreSQL. Postgres-XC, основанный на PostgreSQL, обеспечивает масштабируемую синхронную репликацию с несколькими хозяевами. [38] Он лицензируется по той же лицензии, что и PostgreSQL. Связанный проект называется Postgres-XL . Postgres-R — это еще один форк . [39] Двунаправленная репликация (BDR) — это асинхронная система репликации с несколькими хозяевами для PostgreSQL. [40]
Такие инструменты, как Repmgr, упрощают управление кластерами репликации.
Доступно несколько пакетов асинхронной репликации на основе триггеров. Они остаются полезными даже после введения расширенных основных возможностей в ситуациях, когда двоичная репликация полного кластера базы данных неуместна:
- Slony-I
- Londiste, часть SkyTools (разработана Skype )
- Репликация Bucardo с несколькими хозяевами (разработана Backcountry.com ) [41]
- SymmetricDS с несколькими хозяевами и многоуровневая репликация
Индексы
[ редактировать ]PostgreSQL включает встроенную поддержку обычных индексов B-деревьев и хэш-таблиц , а также четыре метода доступа к индексам: обобщенные деревья поиска ( GiST ), обобщенные инвертированные индексы (GIN), пространственно-разделенный GiST (SP-GiST). [42] и индексы диапазона блоков (BRIN). Кроме того, можно создавать пользовательские индексные методы, хотя это довольно трудоемкий процесс. Индексы в PostgreSQL также поддерживают следующие функции:
- Индексы выражений могут быть созданы с использованием индекса результата выражения или функции, а не просто значения столбца.
- Частичные индексы , которые индексируют только часть таблицы, можно создать, добавив предложение WHERE в конец оператора CREATE INDEX. Это позволяет создать индекс меньшего размера.
- Планировщик может использовать несколько индексов вместе для удовлетворения сложных запросов, используя временные с растровыми индексами операции в памяти (полезно для приложений хранилищ данных для соединения большой таблицы фактов с таблицами меньших измерений , например таблицами, расположенными в звездообразной схеме ).
- индексация k- ближайших соседей ( k -NN) (также называемая KNN-GiST [43] ) обеспечивает эффективный поиск «ближайших значений» к заданному, что полезно для поиска похожих слов или близких объектов или мест с геопространственными данными. Это достигается без исчерпывающего сопоставления значений.
- Сканирование только индексов часто позволяет системе извлекать данные из индексов без необходимости доступа к основной таблице.
- Индексы диапазона блоков (BRIN).
Схемы
[ редактировать ]Схемы PostgreSQL представляют собой пространства имен , позволяющие объектам одного типа и имени сосуществовать в одной базе данных.Их не следует путать с Схема базы данных — абстрактная, структурная, организационная спецификация, которая определяет, как данные каждой таблицы соотносятся с данными в других таблицах.Все объекты базы данных PostgreSQL, за исключением нескольких глобальных объектов, таких как роли и табличные пространства , существуют внутри схемы.Они не могут быть вложенными, схемы не могут содержать схемы. Система разрешений контролирует доступ к схемам и их содержимому.По умолчанию вновь создаваемые базы данных имеют только одну схему, называемую общедоступной , но можно добавлять и другие схемы, причем общедоступная схема не является обязательной.
А search_path
Параметр определяет порядок, в котором PostgreSQL проверяет схемы на наличие неквалифицированных объектов (без префиксной схемы). По умолчанию установлено значение $user, public
( $user
относится к текущему подключенному пользователю базы данных). Это значение по умолчанию можно установить на уровне базы данных или роли, но, поскольку это параметр сеанса, его можно свободно изменять (даже несколько раз) во время сеанса клиента, влияя только на этот сеанс.
Несуществующие схемы или другие схемы, недоступные вошедшему в систему пользователю, перечисленные в search_path, автоматически пропускаются во время поиска объекта.
Новые объекты создаются в зависимости от того, какая действительная схема (та, к которой возможен доступ) появляется первой в search_path.
Типы данных
[ редактировать ]широкий спектр собственных типов данных Поддерживается , в том числе:
- логическое значение
- произвольной точности Численные числа
- Символ (текст, varchar, char)
- Двоичный
- Дата/время (метка времени/время с часовым поясом или без него, дата, интервал)
- Деньги
- Перечисление
- Битовые строки
- Тип текстового поиска
- Композитный
- HStore, хранилище ключей и значений с поддержкой расширения в PostgreSQL. [44]
- Массивы ( переменной длины , могут иметь любой тип данных, включая текстовые и составные типы) общим объемом хранилища до 1 ГБ.
- Геометрические примитивы
- IPv4 и IPv6 Адреса
- Блоки бесклассовой междоменной маршрутизации (CIDR) и MAC-адреса
- XML, поддерживающий XPath запросы
- Универсальный уникальный идентификатор (UUID)
- Нотация объектов JavaScript ( JSON ) и более быстрый двоичный JSONB (не то же самое, что BSON). [45] )
Кроме того, пользователи могут создавать свои собственные типы данных, которые обычно можно сделать полностью индексируемыми с помощью инфраструктур индексирования 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.
Другие возможности хранения
[ редактировать ]- ссылочной целостности, Ограничения внешнего ключа включая ограничения , ограничения столбцов и проверки строк.
- Двоичное и текстовое хранилище больших объектов
- Табличные пространства
- Параметры сортировки по столбцам
- Онлайн-резервное копирование
- Восстановление на определенный момент времени, реализованное с использованием журнала с упреждающей записью.
- Обновления на месте с помощью pg_upgrade для сокращения времени простоя
Управление и подключение
[ редактировать ]Обертки сторонних данных
[ редактировать ]PostgreSQL может подключаться к другим системам для получения данных через внешние оболочки данных (FDW). [46] Они могут принимать форму любого источника данных, например файловой системы, другой системы управления реляционными базами данных (СУБД) или веб-службы. Это означает, что обычные запросы к базе данных могут использовать эти источники данных так же, как обычные таблицы, и даже объединять несколько источников данных вместе.
Интерфейсы
[ редактировать ]PostgreSQL поддерживает двоичный протокол связи , который позволяет приложениям подключаться к серверу базы данных. Протокол имеет версию (на данный момент 3.0, начиная с PostgreSQL 7.4) и имеет подробную спецификацию. [47]
Официальной клиентской реализацией этого протокола связи является C API , libpq. [48] Кроме того, официально поддерживаемый инструмент ECPG позволяет встраивать команды SQL в код C. [49] Оба являются частью стандартного дистрибутива PostgreSQL. [50]
Сторонние библиотеки для подключения к PostgreSQL доступны для многих языков программирования , включая C++ , [51] Ява , [52] Юля , [53] [54] [55] Питон , [56] Node.js , [57] Идти , [58] и Руст . [59]
Процедурные языки
[ редактировать ]Процедурные языки позволяют разработчикам расширять базу данных с помощью пользовательских подпрограмм (функций), часто называемых хранимыми процедурами . Эти функции можно использовать для создания триггеров базы данных (функций, вызываемых при изменении определенных данных), а также пользовательских типов данных и агрегатных функций . [60] Процедурные языки также можно вызывать без определения функции, используя команду DO на уровне SQL. [61]
Языки разделены на две группы: Процедуры, написанные на безопасных языках, изолированы в песочнице и могут безопасно создаваться и использоваться любым пользователем. Процедуры, написанные на небезопасных языках, могут создаваться только суперпользователями , поскольку они позволяют обходить ограничения безопасности базы данных, но также могут получать доступ к источникам, внешним по отношению к базе данных. Некоторые языки, такие как Perl, предоставляют как безопасные, так и небезопасные версии.
PostgreSQL имеет встроенную поддержку трёх процедурных языков:
- Обычный SQL (безопасный). Более простые функции SQL могут быть встроены в вызывающий (SQL) запрос, что экономит накладные расходы на вызов функции и позволяет оптимизатору запросов «заглянуть внутрь» функции.
- Процедурный язык/PostgreSQL ( PL/pgSQL ) (безопасный), который напоминает процедурный язык Oracle Procedural Language for SQL ( PL/SQL ) и SQL/Persistent Stored Modules ( SQL/PSM ).
- C (небезопасный), который позволяет загружать одну или несколько пользовательских общих библиотек в базу данных . Функции, написанные на C, обеспечивают наилучшую производительность, но ошибки в коде могут привести к сбою и потенциальному повреждению базы данных. Большинство встроенных функций написаны на C.
Кроме того, PostgreSQL позволяет загружать процедурные языки в базу данных через расширения. В состав PostgreSQL включены три языковых расширения для поддержки Perl , Tcl и Python . текущий Python 3 Для Python используется , а прекращенная версия Python 2 больше не поддерживается, начиная с PostgreSQL 15. Оба они поддерживались ранее, по умолчанию использовался Python 2 , в то время как старая и новая версии не могли использоваться в одном сеансе. [62] Внешние проекты обеспечивают поддержку многих других языков. [63] включая PL/ Java , JavaScript (PL/V8), PL/ Julia , [55] ПЛ/ Р , [64] 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. [65] [66] [67]
Правила
[ редактировать ]Правила позволяют перезаписывать «дерево запросов» входящего запроса; это автоматически вызываемый макроязык для SQL. «Правила перезаписи запросов» прикрепляются к таблице/классу и «переписывают» входящий DML (выбирают, вставляют, обновляют и/или удаляют) в один или несколько запросов, которые либо заменяют исходный оператор DML, либо выполняются в дополнение к нему. Перезапись запроса происходит после анализа оператора DML и перед планированием запроса.
Предоставленная функциональность правил была почти во всех отношениях позже продублирована с введением новых типов триггеров.Использование триггеров обычно предпочтительнее правил, поскольку легче рассуждать о поведении и взаимодействии триггеров, чем при использовании эквивалентных правил.
Другие функции запросов
[ редактировать ]- Транзакции
- Полнотекстовый поиск
- Просмотры
- Внутренние, внешние (полные, левые и правые) и перекрестные соединения .
- Подвыборы
- Связанные подзапросы [71]
- Регулярные выражения [72]
- Общие табличные выражения и записываемые общие табличные выражения
- Зашифрованные соединения через Transport Layer Security (TLS); текущие версии не используют уязвимый SSL, даже с этой опцией конфигурации. [73]
- Домены
- Точки сохранения
- Двухфазная фиксация
- Метод хранения негабаритных атрибутов (TOAST) используется для прозрачного хранения больших атрибутов таблиц (таких как большие вложения MIME или сообщения XML) в отдельной области с автоматическим сжатием.
- Встроенный SQL реализуется с помощью препроцессора. Код SQL сначала записывается в код C. Затем код прогоняется через препроцессор ECPG, который заменяет SQL вызовами библиотеки кода. Затем код можно скомпилировать с помощью компилятора C. Встраивание также работает с C++ , но оно не распознает все конструкции C++.
Модель параллелизма
[ редактировать ]Сервер PostgreSQL основан на процессах (не поточен) и использует один процесс операционной системы для каждого сеанса базы данных. Несколько сеансов автоматически распределяются операционной системой по всем доступным процессорам. Многие типы запросов также можно распараллелить между несколькими фоновыми рабочими процессами, используя преимущества нескольких процессоров или ядер. [74] Клиентские приложения могут использовать потоки и создавать несколько подключений к базе данных из каждого потока. [75]
Безопасность
[ редактировать ]PostgreSQL управляет своей внутренней безопасностью для каждой роли . Роль обычно считается пользователем (роль, которая может войти в систему) или группой (роль, членами которой являются другие роли). Разрешения могут быть предоставлены или отозваны для любого объекта вплоть до уровня столбца, а также могут разрешать или запрещать видимость/создание/изменение/удаление объектов на уровнях базы данных, схемы , таблицы и строки.
Функция SECURITY LABEL PostgreSQL (расширение стандартов SQL) обеспечивает дополнительную безопасность; со встроенным загружаемым модулем, который поддерживает обязательный контроль доступа на основе меток (MAC) на основе Security-Enhanced Linux (SELinux). политики безопасности [76] [77]
PostgreSQL изначально поддерживает широкий спектр внешних механизмов аутентификации, в том числе:
- Пароль: либо SCRAM-SHA-256 , [78] MD5 или обычный текст
- Общий прикладной программный интерфейс служб безопасности (GSSAPI)
- Интерфейс поставщика поддержки безопасности (SSPI)
- Керберос
- ident (сопоставляет имя пользователя ОС, предоставленное сервером идентификации, с именем пользователя базы данных)
- Одноранговый узел (сопоставляет локальное имя пользователя с именем пользователя базы данных)
- Облегченный протокол доступа к каталогам (LDAP)
- Активный каталог (AD)
- РАДИУС
- Сертификат
- Подключаемый модуль аутентификации (PAM)
Методы GSSAPI, SSPI, Kerberos, однорангового узла, идентификатора и сертификата также могут использовать указанный файл «карты», в котором указано, каким пользователям, соответствующим этой системе аутентификации, разрешено подключаться как конкретному пользователю базы данных.
Эти методы указаны в файле конфигурации аутентификации на основе узла кластера ( pg_hba.conf), который определяет, какие соединения разрешены. Это позволяет контролировать, какой пользователь может подключиться к какой базе данных, откуда он может подключиться (IP-адрес, диапазон IP-адресов, сокет домена), какая система аутентификации будет применяться и должно ли соединение использовать безопасность транспортного уровня (TLS).
Соответствие стандартам
[ редактировать ]PostgreSQL заявляет о высоком, но не полном соответствии последнему стандарту SQL («по состоянию на выпуск версии 15 в октябре 2022 года PostgreSQL соответствует как минимум 170 из 179 обязательных функций для соответствия SQL: 2016 Core», и никакие другие базы данных полностью не соответствуют требованиям SQL:2016 Core). соответствовал этому [79] ). Единственным исключением является обработка идентификаторов без кавычек, таких как имена таблиц или столбцов. В PostgreSQL они внутренне преобразуются в символы нижнего регистра. [80] тогда как стандарт гласит, что идентификаторы без кавычек должны быть переведены в верхний регистр. Таким образом, Foo
должно быть эквивалентно FOO
нет foo
согласно стандарту. Другие недостатки касаются отсутствия темпоральных таблиц, позволяющих автоматически регистрировать версии строк во время транзакций с возможностью просмотра во времени (предикат FOR SYSTEM TIME), [ нужна ссылка ] хотя доступны сторонние расширения, относительно совместимые с SQL. [16]
Тесты и производительность
[ редактировать ]Этот раздел необходимо обновить . Причина такова: информация о производительности, основанная на программном и аппаратном обеспечении 9-летней давности, практически бесполезна. ( апрель 2024 г. ) |
Было проведено множество неофициальных исследований производительности PostgreSQL. [81] Улучшения производительности, направленные на улучшение масштабируемости, начались в версии 8.1. Простые тесты между версией 8.0 и версией 8.4 показали, что последняя была более чем в десять раз быстрее при рабочих нагрузках только чтения и как минимум в 7,5 раз быстрее при рабочих нагрузках чтения и записи. [82]
Первый тест, соответствующий отраслевым стандартам и проверенный экспертами, был завершен в июне 2007 года с использованием сервера приложений Sun Java System (собственная версия GlassFish ) 9.0 Platform Edition, UltraSPARC T1 на базе сервера Sun Fire и PostgreSQL 8.2. [83] Этот результат 778.14 SPECjAppServer2004 JOPS@Standard выгодно отличается от результата 874 JOPS@Standard с Oracle 10 в Itanium на базе системе HP-UX . [81]
В августе 2007 года Sun представила улучшенный результат теста — 813,73 SPECjAppServer2004 JOPS@Standard. Благодаря тестируемой системы соотношение цена/производительность улучшилось с 84,98 долларов США за JOPS до 70,57 долларов США за JOPS. сниженной цене [84]
Конфигурация PostgreSQL по умолчанию использует лишь небольшой объем выделенной памяти для задач, критически важных для производительности, таких как кэширование блоков базы данных и сортировка. Это ограничение связано прежде всего с тем, что старые операционные системы требовали изменений в ядре, чтобы обеспечить возможность выделения больших блоков общей памяти . [85] PostgreSQL.org предоставляет рекомендации по основным рекомендациям по повышению производительности в вики . [86]
В апреле 2012 года Роберт Хаас из EnterpriseDB продемонстрировал линейную масштабируемость ЦП PostgreSQL 9.2 с использованием сервера с 64 ядрами. [87]
Matloob Khushi провел сравнительное тестирование PostgreSQL 9.0 и MySQL 5.6.15 на предмет их способности обрабатывать геномные данные. В ходе анализа производительности он обнаружил, что PostgreSQL извлекает перекрывающиеся геномные области в восемь раз быстрее, чем MySQL, используя два набора данных по 80 000 каждый, образуя случайные области человеческой ДНК. Вставка и загрузка данных в PostgreSQL также были лучше, хотя общие возможности поиска в обеих базах данных были почти одинаковыми. [88]
Платформы
[ редактировать ]PostgreSQL доступен для следующих операционных систем: Linux (все последние дистрибутивы), доступны и протестированы установщики 64-битных ARM и x86-64 для macOS (OS X). [89] версия 10.12 и новее, Windows (установщики доступны и протестированы для 64-битных Windows Server 2019 и 2016; некоторые старые версии PostgreSQL были протестированы на Windows 2012 R2). [90] ), FreeBSD , OpenBSD , [91] NetBSD , и они без официальных (хотя неофициальные, вероятно, доступны) двоичных исполняемых файлов, Solaris , [92] AIX и HP-UX . [93] Большинство других (современных) Unix-подобных систем также работают.
Можно ожидать, что PostgreSQL будет работать на любой из следующих архитектур набора команд (и операционных систем): 64-битный x86-64 и 32-битный x86 в Windows XP (или более поздней версии) и других операционных системах; они поддерживаются в других системах, кроме Windows: 64-разрядная версия ARM. [94] и более старый 32-битный ARM , включая более старый, такой как ARMv6 в Raspberry Pi. [95] ), z/Architecture , S/390 , PowerPC (включая 64-разрядную версию Power ISA ), SPARC (также 64-разрядную версию), IA-64 Itanium ( HP-UX ), MIPS и PA-RISC . Также было известно, что он работает на некоторых других платформах (хотя они не тестировались в течение многих лет, то есть для последних версий). [96]
Администрирование базы данных
[ редактировать ]Интерфейсы и инструменты с открытым исходным кодом для администрирования PostgreSQL включают:
- psql
- Основным интерфейсом PostgreSQL является
psql
Программа командной строки , которую можно использовать для прямого ввода SQL-запросов или выполнения их из файла. Кроме того, psql предоставляет ряд метакоманд и различных функций оболочки, облегчающих написание сценариев и автоматизацию широкого спектра задач; например, заполнение имен объектов и синтаксиса SQL с помощью табуляции. - pgAdmin
- Пакет pgAdmin — это бесплатный инструмент администрирования с графическим пользовательским интерфейсом (GUI) с открытым исходным кодом для PostgreSQL, который поддерживается на многих компьютерных платформах. [97] Программа доступна более чем на десятке языков. Первый прототип, названный 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 . [98] Framework, позволяющий ему работать в большинстве распространенных операционных систем. Инструмент запросов включает в себя язык сценариев pgScript для поддержки задач администрирования и разработки. В декабре 2014 года Дэйв Пейдж, основатель и основной разработчик проекта pgAdmin, [99] объявила, что с переходом к веб-моделям началась работа над pgAdmin 4 с целью облегчить развертывание в облаке. [100] В 2016 году был выпущен pgAdmin 4. Бэкэнд pgAdmin 4 был написан на Python с использованием Flask и фреймворка Qt . [101]
- phpPgAdmin
- phpPgAdmin — это веб-инструмент администрирования PostgreSQL, написанный на PHP и основанный на популярном интерфейсе phpMyAdmin, изначально написанном для администрирования MySQL . [102]
- PostgreSQL Студия
- PostgreSQL Studio позволяет пользователям выполнять основные задачи разработки баз данных PostgreSQL с помощью веб-консоли. PostgreSQL Studio позволяет пользователям работать с облачными базами данных без необходимости открывать брандмауэры. [103]
- КомандаPostgreSQL
- Веб-интерфейс на основе AJAX/JavaScript для PostgreSQL. Позволяет просматривать, поддерживать и создавать данные и объекты базы данных через веб-браузер. Интерфейс предлагает редактор SQL с вкладками с автозаполнением, виджеты редактирования строк, навигацию по внешним клавишам между строками и таблицами, управление избранным для часто используемых сценариев, а также другие функции. Поддерживает SSH как для веб-интерфейса, так и для подключений к базе данных . Установщики доступны для Windows, Macintosh и Linux, а также простой кроссплатформенный архив, который запускается из сценария. [104]
- ЛибреОфис, OpenOffice.org
- LibreOffice и OpenOffice.org Base можно использовать в качестве внешнего интерфейса для PostgreSQL. [105] [106]
- pgBadger
- Анализатор журнала pgBadger PostgreSQL генерирует подробные отчеты из файла журнала PostgreSQL. [107]
- пгдевопс
- pgDevOps — это набор веб-инструментов для установки и управления несколькими версиями PostgreSQL, расширениями и компонентами сообщества, разработки SQL-запросов, мониторинга работающих баз данных и поиска проблем с производительностью. [108]
- Админ
- Adminer — это простой веб-инструмент администрирования PostgreSQL и других систем, написанный на PHP.
- пгбакрест
- pgBackRest — это инструмент резервного копирования и восстановления для PostgreSQL, который обеспечивает поддержку полного, дифференциального и инкрементного резервного копирования. [109]
- аудит
- pgaudit — это расширение PostgreSQL, которое обеспечивает подробное ведение журнала аудита сеансов и/или объектов с помощью стандартного средства ведения журнала, предоставляемого PostgreSQL. [110]
- ВАЛ-И
- WAL-E — это инструмент резервного копирования и восстановления для PostgreSQL, который обеспечивает поддержку физических (на основе WAL) резервных копий, написанных на Python. [111]
Ряд компаний предлагают собственные инструменты для PostgreSQL. Они часто состоят из универсального ядра, адаптированного для различных конкретных продуктов баз данных. Эти инструменты в основном имеют те же функции администрирования, что и инструменты с открытым исходным кодом, но предлагают улучшения в моделировании данных , импорте, экспорте или составлении отчетов.
Известные пользователи
[ редактировать ]Известные организации и продукты, использующие PostgreSQL в качестве основной базы данных, включают:
- Microsoft , используемый для аналитической панели Release Quality View (RQV) размером в петабайты, которая отслеживает качество обновлений Windows, анализируя 20 тысяч типов показателей с более чем 800 миллионов устройств Windows. [112]
- В 2009 году сайт социальной сети Myspace использовал базу данных nCluster компании Aster Data Systems для хранения данных, построенную на немодифицированном PostgreSQL. [113] [114]
- Geni.com использует PostgreSQL в качестве своей основной генеалогической базы данных. [115]
- OpenStreetMap — совместный проект по созданию бесплатной редактируемой карты мира. [116]
- Afilias , реестры доменов .org , .info и другие. [117] [118]
- Многопользовательские онлайн-игры Sony Online . [119]
- BASF , торговая платформа для их портала агробизнеса. [120]
- Reddit . Социальный новостной сайт [121]
- Приложение Skype VoIP, центральные бизнес- базы данных. [122]
- Sun xVM — пакет Sun для виртуализации и автоматизации центров обработки данных. [123]
- MusicBrainz , открытая онлайн-музыкальная энциклопедия. [124]
- Международная космическая станция – для сбора телеметрических данных на орбите и их передачи на Землю. [125]
- MyYearbook . Социальная сеть [126]
- Instagram — мобильный сервис для обмена фотографиями. [127]
- Disqus — онлайн-сервис дискуссий и комментариев. [128]
- TripAdvisor , веб-сайт с туристической информацией, контент которого в основном создается пользователями. [129]
- Яндекс , российская интернет-компания, перевела свой сервис Яндекс.Почта с Oracle на Postgres. [130]
- Amazon Redshift , часть AWS, системы столбчатой онлайн-аналитической обработки (OLAP), основанной на ParAccel . модификациях Postgres от
- управления океанических и атмосферных исследований (NOAA Национальная метеорологическая служба (NWS) Национального ), Интерактивная система подготовки прогнозов (IFPS), система, которая объединяет данные NEXRAD метеорологических радаров , наземных и гидрологических систем для создания подробных локализованных моделей прогнозов. [118] [131]
- Соединенного Королевства Национальная метеорологическая служба Met Office начала замену Oracle на PostgreSQL в рамках стратегии по внедрению большего количества технологий с открытым исходным кодом. [131] [132]
- WhitePages.com использовал Oracle и MySQL , но когда дело дошло до переноса основных каталогов внутри компании, он обратился к PostgreSQL. Поскольку WhitePages.com необходимо объединять большие наборы данных из нескольких источников, способность PostgreSQL загружать и индексировать данные с высокой скоростью стала ключом к решению использовать PostgreSQL. [118]
- FlightAware — сайт отслеживания рейсов. [133]
- Grofers — онлайн-сервис доставки продуктов. [134]
- The Guardian перешел с MongoDB на PostgreSQL в 2018 году. [135]
- YugabyteDB реализует уровень запросов PostgreSQL в качестве режима SQL по умолчанию.
- OpenAI использует PostgreSQL как часть своей основной службы API. [136]
Реализации сервисов
[ редактировать ]Некоторые известные поставщики предлагают PostgreSQL как программное обеспечение как услугу :
- Heroku , платформа как поставщик услуг , поддерживает PostgreSQL с самого начала в 2007 году. [137] Они предлагают дополнительные функции, такие как полный откат базы данных (возможность восстановления базы данных в любое заданное время), [138] который основан на WAL-E, программном обеспечении с открытым исходным кодом, разработанном Heroku. [139]
- В январе 2012 года EnterpriseDB выпустила облачную версию PostgreSQL и собственный сервер Postgres Plus Advanced Server с автоматической подготовкой для аварийного переключения, репликации, балансировки нагрузки и масштабирования. Он работает на Amazon Web Services . [140] С 2015 года Postgres Advanced Server предлагается как ApsaraDB для PPAS, реляционной базы данных как услуги в Alibaba Cloud. [141]
- VMware предлагает vFabric Postgres (также называемый vPostgres). [142] ) для частных облаков на VMware vSphere с мая 2012 года. [143] Компания объявила об окончании доступности (EOA) продукта в 2014 году. [144]
- В ноябре 2013 года Amazon Web Services объявила о добавлении PostgreSQL в свое предложение службы реляционных баз данных . [145] [146]
- В ноябре 2016 года Amazon Web Services объявила о добавлении совместимости с PostgreSQL в свою облачную Amazon Aurora . управляемую базу данных [147]
- В мае 2017 года Microsoft Azure анонсировала базы данных Azure для PostgreSQL. [148]
- В мае 2019 года Alibaba Cloud анонсировала PolarDB для PostgreSQL. [149]
- Jelastic Multicloud Platform as a Service обеспечивает поддержку PostgreSQL на основе контейнеров с 2011 года. Она также предлагает автоматизированную асинхронную репликацию PostgreSQL «главный-подчиненный». [150]
- В июне 2019 года IBM Cloud анонсировала IBM Cloud Hyper Protect DBaaS для PostgreSQL. [151]
- В сентябре 2020 года Crunchy Data анонсировала Crunchy Bridge. [152]
- В июне 2022 года Neon.tech анонсировала Neon Serverless Postgres. [153]
История выпусков
[ редактировать ]Выпускать | Первый выпуск | Последняя минорная версия | Последний выпуск | Конец жизнь [154] | Вехи |
---|---|---|---|---|---|
6.0 | 1997-01-29 | — | — | — | Первый официальный выпуск PostgreSQL, уникальные индексы, утилита pg_dumpall, аутентификация по идентификатору |
6.1 | 1997-06-08 | 6.1.1. | 1997-07-22 | — | Многостолбцовые индексы, последовательности, тип данных «деньги», GEQO (GEnetic Query Optimizer) |
6.2 | 1997-10-02 | 6.2.1. | 1997-10-17 | — | Интерфейс JDBC, триггеры, интерфейс серверного программирования, ограничения |
6.3 | 1998-03-01 | 6.3.2. | 1998-04-07 | 2003-03-01 | Возможность подвыборки SQL-92, PL/pgTCL |
6.4 | 1998-10-30 | 6.4.2. | 1998-12-20 | 2003-10-30 | VIEW (тогда только для чтения) и RULE, PL/pgSQL |
6.5 | 1999-06-09 | 6.5.3. | 1999-10-13 | 2004-06-09 | MVCC , временные таблицы, дополнительная поддержка операторов SQL (CASE, INTERSECT и EXCEPT) |
7.0 | 2000-05-08 | 7.0.3. | 2000-11-11 | 2004-05-08 | Внешние ключи, синтаксис SQL-92 для объединений |
7.1 | 2001-04-13 | 7.1.3. | 2001-08-15 | 2006-04-13 | Журнал упреждающей записи, внешние соединения |
7.2 | 2002-02-04 | 7.2.8. | 2005-05-09 | 2007-02-04 | PL/Python, OID больше не требуется, интернационализация сообщений |
7.3 | 2002-11-27 | 7.3.21. | 2008-01-07 | 2007-11-27 | Схема, табличная функция, подготовленный запрос [155] |
7.4 | 2003-11-17 | 7.4.30. | 2010-10-04 | 2010-10-01 | Оптимизация JOIN и хранилища данных . функций [156] |
8.0 | 2005-01-19 | 8.0.26. | 2010-10-04 | 2010-10-01 | Собственный сервер в Microsoft Windows , точки сохранения , табличные пространства , восстановление на определенный момент времени [157] |
8.1 | 2005-11-08 | 8.1.23. | 2010-12-16 | 2010-11-08 | Оптимизация производительности, двухфазная фиксация, секционирование таблиц , сканирование растровых изображений индекса, общая блокировка строк, роли |
8.2 | 2006-12-05 | 8.2.23. | 2011-12-05 | 2011-12-05 | Оптимизация производительности, построение индексов в режиме онлайн, консультативные блокировки, «теплый» резерв. [158] |
8.3 | 2008-02-04 | 8.3.23. | 2013-02-07 | 2013-02-07 | Кортежи только в куче, полнотекстовый поиск , [159] SQL/XML , типы ENUM, UUID типы |
8.4 | 2009-07-01 | 8.4.22. | 2014-07-24 | 2014-07-24 | Оконные функции , разрешения на уровне столбцов, параллельное восстановление базы данных, сопоставление для каждой базы данных, общие табличные выражения и рекурсивные запросы. [160] |
9.0 | 2010-09-20 | 9.0.23. | 2015-10-08 | 2015-10-08 | Встроенная потоковая двоичная репликация , горячий резерв , возможность обновления на месте, 64-разрядная версия Windows [161] |
9.1 | 2011-09-12 | 9.1.24. | 2016-10-27 | 2016-10-27 | Синхронная репликация по столбцам , сопоставление , нерегистрируемые таблицы, сериализуемая изоляция моментальных снимков , записываемые общие табличные выражения, интеграция с SELinux , расширения, внешние таблицы [162] |
9.2 | 2012-09-10 [163] | 9.2.24. | 2017-11-09 | 2017-11-09 | Каскадная потоковая репликация, сканирование только по индексу, встроенная поддержка JSON , улучшенное управление блокировками, типы диапазонов, инструмент pg_receivexlog, индексы GiST с пространственным разделением |
9.3 | 2013-09-09 | 9.3.25. | 2018-11-08 | 2018-11-08 | Пользовательские фоновые рабочие процессы, контрольные суммы данных, выделенные операторы JSON, LATERAL JOIN, более быстрый pg_dump, новый инструмент мониторинга сервера pg_isready, функции триггера, функции просмотра, записываемые внешние таблицы, материализованные представления , улучшения репликации |
9.4 | 2014-12-18 | 9.4.26. | 2020-02-13 | 2020-02-13 | Тип данных JSONB, оператор ALTER SYSTEM для изменения значений конфигурации, возможность обновления материализованных представлений без блокировки чтения, динамическая регистрация/запуск/остановка фоновых рабочих процессов, API логического декодирования, улучшения индекса GiN, поддержка огромных страниц Linux, перезагрузка кэша базы данных через pg_prewarm , вновь представляя Hstore в качестве типа столбца для данных в стиле документа. [164] |
9.5 | 2016-01-07 | 9.5.25. | 2021-02-11 | 2021-02-11 | UPSERT, безопасность на уровне строк, TABLESAMPLE, CUBE/ROLLUP, GROUPING SETS и новый BRIN . индекс [165] |
9.6 | 2016-09-29 | 9.6.24. | 2021-11-11 | 2021-11-11 | Поддержка параллельных запросов, улучшения оболочки внешних данных PostgreSQL (FDW) с функцией сортировки/объединения, несколько синхронных резервных серверов, более быстрая очистка больших таблиц. |
10 | 2017-10-05 | 10.23. | 2022-11-10 | 2022-11-10 | Логическая репликация, [166] декларативное секционирование таблиц, улучшенный параллелизм запросов |
11 | 2018-10-18 | 11.22. | 2023-11-09 | 2023-11-09 | Повышенная надежность и производительность секционирования, поддержка транзакций в хранимых процедурах, расширенные возможности параллелизма запросов, JIT-компиляция выражений. [167] [168] |
12 | 2019-10-03 | 12.19. | 2024-05-09 | 2024-11-14 | Улучшения производительности запросов и использования пространства; Поддержка выражения пути SQL/JSON; сгенерированные столбцы; улучшения в интернационализации и аутентификации; новый подключаемый интерфейс хранения таблиц. [169] |
13 | 2020-09-24 | 13.15. | 2024-05-09 | 2025-11-13 | Экономия места и повышение производительности за счет дедупликации записей индекса B-дерева, повышение производительности запросов, использующих агрегаты или секционированные таблицы, лучшее планирование запросов при использовании расширенной статистики, параллельная очистка индексов, инкрементная сортировка [170] [171] |
14 | 2021-09-30 | 14.12. | 2024-05-09 | 2026-11-12 | Добавлены стандартные для SQL предложения SEARCH и CYCLE для общих табличных выражений, позволяющие добавлять DISTINCT к GROUP BY. [172] [173] |
15 | 2022-10-13 | 15.7. | 2024-05-09 | 2027-11-11 | SQL Реализует стандартный оператор MERGE . PL/Python теперь поддерживает только текущую версию Python 3 и plpythonu теперь означает Python 3 , а не устаревший Python 2 . |
16 | 2023-09-14 | 16.3. | 2024-05-09 | 2028-11-09 | Улучшения в логической репликации, представление pg_stat_io (для показателей ввода-вывода). [174] |
17 | — | 17 Beta 2. | 2024-06-27 | — |
См. также
[ редактировать ]- Сравнение систем управления реляционными базами данных
- Масштабируемость базы данных
- Список баз данных, использующих MVCC
- LLVM (llvmjit — это JIT-движок, используемый PostgreSQL)
Ссылки
[ редактировать ]- ^ «ПостгреСБЛ» . Проверено 21 сентября 2019 г.
PostgreSQL: самая совершенная в мире реляционная база данных с открытым исходным кодом
- ^ Перейти обратно: а б «Профили участников» . Группа глобального развития PostgreSQL . Проверено 14 марта 2017 г.
- ^ Перейти обратно: а б «С Днем Рождения, PostgreSQL!» . Группа глобального развития PostgreSQL. 8 июля 2008 г.
- ^ «Выпущены версии PostgreSQL 16.3, 15.7, 14.12, 13.15 и 12.19!» . 9 мая 2024 г.
- ^ «Выпущена вторая бета-версия PostgreSQL 17!» . 27 июня 2024 г.
- ^ Перейти обратно: а б «Лицензия» . Группа глобального развития PostgreSQL . Проверено 20 сентября 2010 г.
- ^ «Лицензия PostgreSQL одобрена OSI» . Кринвр. 18 февраля 2010 года. Архивировано из оригинала 8 августа 2016 года . Проверено 18 февраля 2010 г.
- ^ Перейти обратно: а б «Лицензия OSI PostgreSQL» . Инициатива открытого исходного кода. 20 февраля 2010 года . Проверено 20 февраля 2010 г.
- ^ «Debian — Подробная информация о пакете postgresql в sid» . packages.debian.org . Проверено 25 января 2021 г.
- ^ «Лицензирование:Основное» . Проект Федора .
- ^ «ПостгреСБЛ» . fsf.org .
- ^ «Часто задаваемые вопросы: что такое PostgreSQL? Как оно произносится? Что такое Postgres?» . PostgreSQL Wiki . Сообщество PostgreSQL . Проверено 2 октября 2021 г.
- ^ «Аудиообразец, 5,6k MP3» .
- ^ «Что такое PostgreSQL?» . Документация PostgreSQL 9.3.0 . Группа глобального развития PostgreSQL . Проверено 20 сентября 2013 г.
- ^ «ПостГИС» . postgis.net . 18 декабря 2023 г. . Проверено 18 декабря 2023 г.
PostGIS расширяет возможности реляционной базы данных PostgreSQL, добавляя поддержку хранения, индексирования и запроса геопространственных данных.
- ^ Перейти обратно: а б «Временные расширения» . PostgreSQL Wiki . 18 декабря 2023 г. . Проверено 18 декабря 2023 г.
Postgres можно расширить и превратить в временную базу данных. Такие базы данных отслеживают историю содержимого базы данных с течением времени, автоматически сохраняя эту историю и позволяя ее изменять и запрашивать.
- ^ «Orafce — функции и пакеты совместимости Oracle» . GitHub.com . 17 декабря 2023 г. . Проверено 18 декабря 2023 г.
Функции и операторы, эмулирующие подмножество функций и пакетов из СУБД Oracle.
- ^ "pg_dbms_job" . GitHub.com . 8 ноября 2023 г. . Проверено 18 декабря 2023 г.
Расширение PostgreSQL для планирования и управления заданиями в очереди заданий, аналогично пакету Oracle DBMS_JOB.
- ^ «УилтонДБ» . УилтонДБ . 2023 . Проверено 18 декабря 2023 г.
WiltonDB [упакован] для Windows. Его стремятся использовать в качестве полной замены Microsoft SQL Server.
- ^ «Вавилонфиш для PostgreSQL» . www.babelfishpg.org . Проверено 18 декабря 2023 г.
Babelfish для PostgreSQL... предоставляет PostgreSQL возможность понимать запросы из приложений, написанных для Microsoft SQL Server.
- ^ «Клиенты PostgreSQL» . wiki.postgresql.org . 18 октября 2023 г. . Проверено 18 декабря 2023 г.
Эта страница представляет собой неполный список интерактивных клиентов SQL (с графическим интерфейсом или нет)... в которые вы можете вводить SQL и получать от них результаты.
- ^ «Инструменты дизайна» . wiki.postgresql.org . 23 октября 2023 г. . Проверено 18 декабря 2023 г.
Инструменты, помогающие в разработке схемы путем создания диаграмм «сущность-связь» и тому подобного. Большинство из них имеют графический интерфейс.
- ^ «Руководство сообщества по инструментам графического интерфейса PostgreSQL» . wiki.postgresql.org . 1 декабря 2023 г. . Проверено 18 декабря 2023 г.
На этой странице представлен список различных утилит, которые работают с Postgres (например, загрузчики данных, компараторы и т. д.).
- ^ «Репликация, кластеризация и пул соединений» . wiki.postgresql.org . 13 июля 2020 г. Проверено 18 декабря 2023 г.
Существует множество подходов к масштабированию PostgreSQL за пределы одного сервера. ... Не существует универсального решения, подходящего всем...
- ^ Это подтверждается либеральным разрешением на использование имени PostgreSQL, одобренным (для добросовестного использования, если не вводить людей в заблуждение по поводу юридических отношений с реальным проектом PostgreSQL) при использовании для поддержки PostgreSQL в соответствии с Политикой в отношении товарных знаков PostgreSQL: «Политика в отношении товарных знаков» . PostgreSQL.org . 8 декабря 2020 г. . Проверено 17 декабря 2023 г.
Мы постараемся работать с вами, чтобы разрешить использование [имени PostgreSQL] для поддержки проекта PostgreSQL и нашего сообщества.
- ^ Перейти обратно: а б Стоунбрейкер, М.; Роу, Луизиана (май 1986 г.). Дизайн POSTGRES (PDF) . Учеб. 1986 Конференция ACM SIGMOD по управлению данными. Вашингтон, округ Колумбия . Проверено 17 декабря 2011 г.
- ^ «PostgreSQL: История» . Группа глобального развития PostgreSQL. Архивировано из оригинала 26 марта 2017 года . Проверено 27 августа 2016 г.
- ^ «Название проекта – заявление основной команды» . archives.postgresql.org. 16 ноября 2007 года . Проверено 16 ноября 2007 г.
- ^ «Майкл Стоунбрейкер – лауреат премии А. М. Тьюринга» . amturing.acm.org . Проверено 20 марта 2018 г.
Техники, впервые разработанные в Postgres, были широко реализованы [..] Стоунбрейкер — единственный лауреат премии Тьюринга, который занимался серийным предпринимательством такого масштаба, что дало ему особый взгляд на академический мир.
- ^ Стоунбрейкер, М.; Роу, Луизиана Модель данных POSTGRES (PDF) . Материалы 13-й Международной конференции по очень большим базам данных. Брайтон, Англия: Издательство Morgan Kaufmann. стр. 83–96. ISBN 0-934613-46-Х .
- ^ Павел Стехуле (9 июня 2012 г.). «История проекта PostgreSQL» (на чешском языке).
- ^ Краткая история PostgreSQL «Версия 3 появилась в 1991 году и добавила поддержку нескольких менеджеров хранения, улучшенного исполнителя запросов и переписанной системы правил». . postgresql.org . Группа глобального развития PostgreSQL , дата обращения 18 марта 2020 г.
- ^ «Университетский ПОСТГРЕС, Версия 4.2» . 26 июля 1999 г.
- ^ Пейдж, Дэйв (7 апреля 2015 г.). «Re: 20-летие PostgreSQL?» . pgsql-advocacy (список рассылки) . Проверено 9 апреля 2015 г.
- ^ Дэн Р.К. Портс; Кевин Гриттнер (2012). «Изоляция сериализуемых снимков в PostgreSQL» (PDF) . Труды Фонда VLDB . 5 (12): 1850–1861. arXiv : 1208.4179 . Бибкод : 2012arXiv1208.4179P . дои : 10.14778/2367502.2367523 . S2CID 16006111 .
- ^ Бохан Чжан; Энди Павло (2023). «Та часть PostgreSQL, которую мы ненавидим больше всего» . OtterTune (блог).
- ^ PostgreSQL 9.1 с синхронной репликацией (новости), H Online
- ^ «Страница проекта Postgres-XC» (веб-сайт). Постгрес-XC. Архивировано из оригинала 1 июля 2012 года.
- ^ «Postgres-R: система репликации базы данных для PostgreSQL» . Группа глобального развития Postgres. Архивировано из оригинала 29 марта 2010 года . Проверено 27 августа 2016 г.
- ^ «Постгрес-БДР» . ООО "2-й Квадрант" . Проверено 27 августа 2016 г.
- ^ Марит Фишер (10 ноября 2007 г.). «Backcountry.com наконец-то вернул что-то сообществу открытого исходного кода» (пресс-релиз). Бэккантри.com. Архивировано из оригинала 26 декабря 2010 года.
- ^ Бартунов О.; Сигаев Т. (май 2011 г.). SP-GiST — новая платформа индексирования для PostgreSQL (PDF) . PGCon 2011. Оттава, Канада . Проверено 31 января 2016 г.
- ^ Бартунов О.; Сигаев Т. (май 2010 г.). Поиск K-ближайшего соседа для PostgreSQL (PDF) . PGCon 2010. Оттава, Канада . Проверено 31 января 2016 г.
- ^ «PostgreSQL, база данных NoSQL | Журнал Linux» . www.linuxjournal.com .
- ^ Геогеган, Питер (23 марта 2014 г.). «Что я думаю о jsonb» .
- ^ Обе, Регина; Сюй, Лео С. (2012). «10: Репликация и внешние данные». PostgreSQL: В работе (1-е изд.). Севастополь, Калифорния: O'Reilly Media, Inc. 129. ИСБН 978-1-4493-2633-3 . Проверено 17 октября 2016 г.
Обертки внешних данных (FDW) [...] представляют собой механизмы запроса внешних источников данных. В PostgreSQL 9.1 появилась эта функция, соответствующая стандартам SQL/MED .
- ^ «Протокол внешнего/бэкенда» . postgresql.org . 9 ноября 2023 г. . Проверено 17 декабря 2023 г.
В этом документе описывается версия протокола 3.0, реализованная в PostgreSQL 7.4 и более поздних версиях.
- ^ "либпк" . postgresql.org . 9 ноября 2023 г. . Проверено 17 декабря 2023 г.
- ^ «Встроенный SQL в C» . postgresql.org . 9 ноября 2023 г. . Проверено 17 декабря 2023 г.
- ^ «Клиентские интерфейсы» . postgresql.org . 9 ноября 2023 г. . Проверено 17 декабря 2023 г.
- ^ "libpqxx" . Проверено 4 апреля 2020 г.
- ^ «Драйвер PostgreSQL JDBC» . Проверено 4 апреля 2020 г.
- ^ «[ANN] PostgresORM.jl: реляционное сопоставление объектов для PostgreSQL» . Джулия Ланг . 30 июня 2021 г. . Проверено 26 августа 2021 г.
- ^ «GitHub — find/LibPQ.jl: оболочка Julia для libpq» . GitHub Проверено 26 августа 2021 г.
- ^ Перейти обратно: а б «Расширение PL/Julia (минимальное)» . Джулия Ланг . 8 марта 2020 г. Проверено 26 августа 2021 г.
- ^ «PostgreSQL + Python | Psycopg» . initd.org
- ^ "узел-постгрес" . Проверено 4 апреля 2020 г.
- ^ «Драйверы баз данных SQL» . Зайдите в вики . golang.org . Проверено 22 июня 2015 г.
- ^ «Ржавчина-Постгрес» . Проверено 4 апреля 2020 г.
- ^ «Серверное программирование» . Документация PostgreSQL . Проверено 19 мая 2019 г.
- ^ "ДЕЛАТЬ" . Документация PostgreSQL . Проверено 19 мая 2019 г.
- ^ «PL/Python — процедурный язык Python» . Документация PostgreSQL . Проверено 23 октября 2022 г.
- ^ «Процедурные языки» . postgresql.org. 31 марта 2016 года . Проверено 7 апреля 2016 г.
- ^ «постгрес-плр/плр» . 17 июня 2021 г. — через GitHub.
- ^ Шартье, Колен (8 ноября 2019 г.). «Хак с системным дизайном: Postgres — отличный сервер публикации/подписки и работы» . Блог LayerCI . Проверено 24 ноября 2019 г.
- ^ «Выпуск 9.5» . postgresql.org . 11 февраля 2021 г.
- ^ Рингер, Крейг (13 апреля 2016 г.). «Для чего нужен SKIP LOCKED в PostgreSQL 9.5?» . 2-й квадрант . Проверено 24 ноября 2019 г.
- ^ «Добавить отношения материализованного представления» . 4 марта 2013 года . Проверено 4 марта 2013 г.
- ^ «Поддержка автоматически обновляемых представлений» . 8 декабря 2012 года . Проверено 8 декабря 2012 г.
- ^ «Добавить синтаксис CREATE RECURSIVE VIEW» . 1 февраля 2013 года . Проверено 28 февраля 2013 г.
- ^ Момджян, Брюс (2001). «Подзапросы» . PostgreSQL: Введение и понятия . Аддисон-Уэсли. ISBN 0-201-70331-9 . Архивировано из оригинала 9 августа 2010 года . Проверено 25 сентября 2010 г.
- ^ Бернье, Роберт (2 февраля 2006 г.). «Использование регулярных выражений в PostgreSQL» . О'Рейли Медиа . Проверено 25 сентября 2010 г.
- ^ «Несколько коротких заметок о PostgreSQL и POODLE» . хагандер.нет .
- ^ Беркус, Джош (2 июня 2016 г.). «PostgreSQL 9.6 Beta и PGCon 2016» . LWN.net .
- ^ «Часто задаваемые вопросы — PostgreSQL вики» . wiki.postgresql.org . Проверено 13 апреля 2017 г.
- ^ «Документация SEPostgreSQL – PostgreSQL вики» . wiki.postgresql.org .
- ^ «Примечание SQL 9.3 — SELinux Wiki» . selinuxproject.org .
- ^ «Документация PostgreSQL 10: Приложение E. Примечания к выпуску» . 12 августа 2021 г.
- ^ «PostgreSQL: О программе» . www.postgresql.org . Проверено 26 августа 2021 г.
- ^ «Чувствительность к регистру идентификаторов» . Группа глобального развития PostgreSQL. 11 ноября 2021 г.
- ^ Перейти обратно: а б Беркус, Джош (6 июля 2007 г.). «PostgreSQL публикует первый настоящий тест» . Архивировано из оригинала 12 июля 2007 года . Проверено 10 июля 2007 г.
- ^ Вилмос, Дьёрдь (29 сентября 2009 г.). «История PostgreSQL» . Проверено 28 августа 2010 г.
- ^ «Результат SPECjAppServer2004» . СПЕЦ . 6 июля 2007 года . Проверено 10 июля 2007 г.
- ^ «Результат SPECjAppServer2004» . СПЕЦ . 4 июля 2007 года . Проверено 1 сентября 2007 г.
- ^ «Управление ресурсами ядра» . Руководство по PostgreSQL . PostgreSQL.org . Проверено 12 ноября 2011 г.
- ^ Грег Смит (15 октября 2010 г.). Высокая производительность PostgreSQL 9.0 . Пакт Паблишинг . ISBN 978-1-84951-030-1 .
- ^ Роберт Хаас (3 апреля 2012 г.). «Я сказал 32 ядра? А как насчет 64?» . Проверено 8 апреля 2012 г.
- ^ Хуши, Матлоб (июнь 2015 г.). «Сравнительный анализ производительности базы данных для геномных данных». J Cell Biochem . 116 (6): 877–83. arXiv : 2008.06835 . дои : 10.1002/jcb.25049 . ПМИД 25560631 . S2CID 27458866 .
- ^ «Пакеты Mac OS X» . Группа глобального развития PostgreSQL . Проверено 27 августа 2016 г.
- ^ «PostgreSQL: установщики Windows» . www.postgresql.org . Проверено 26 августа 2021 г.
- ^ «postgresql-client-10.5p1 – СУБД PostgreSQL (клиент)» . Порты OpenBSD . 4 октября 2018 г. Проверено 10 октября 2018 г.
- ^ «Установка и настройка PostgreSQL — Руководство по службе кластерных данных Oracle Solaris для PostgreSQL» . docs.oracle.com . Проверено 4 февраля 2023 г.
- ^ «Центр портирования и архивирования HP-UX | postgresql-12.4» . hpux.connect.org.uk . Проверено 4 февраля 2023 г.
- ^ «AArch64 планирует BoF на DebConf» . debian.org .
- ^ Соуза, Рубенс (17 июня 2015 г.). «Шаг 5 (обновление). Установка PostgreSQL на Raspberry Pi 1 и 2» . Малина ПГ . Проверено 27 августа 2016 г.
- ^ «Поддерживаемые платформы» . Группа глобального развития PostgreSQL . Проверено 6 апреля 2012 г.
- ^ «pgAdmin: инструменты администрирования и управления PostgreSQL» . веб-сайт . Проверено 12 ноября 2011 г.
- ^ «Debian — Подробная информация о пакете pgadmin3 в jessie» . Проверено 10 марта 2017 г.
- ^ «Команда разработчиков pgAdmin» . pgadmin.org . Проверено 22 июня 2015 г.
- ^ Дэйв, Пейдж (7 декабря 2014 г.). «История pgAdmin» . Блог Дэйва о Postgres . pgsnake.blogspot.co.uk . Проверено 7 декабря 2014 г.
- ^ «README pgAdmin 4» . Гитхаб . Проверено 15 августа 2018 г.
- ^ Проект phpPgAdmin (25 апреля 2008 г.). «О phpPgAdmin» . Проверено 25 апреля 2008 г.
- ^ PostgreSQL Studio (9 октября 2013 г.). «О PostgreSQL Studio» . Архивировано из оригинала 7 октября 2013 года . Проверено 9 октября 2013 г.
- ^ «Сайт TeamPostgreSQL» . 3 октября 2013 года . Проверено 3 октября 2013 г.
- ^ oooforum.org (10 января 2010 г.). «Бэкенды для OpenOffice» . Архивировано из оригинала 28 сентября 2011 года . Проверено 5 января 2011 г.
- ^ libreoffice.org (14 октября 2012 г.). «Базовые функции» . Архивировано из оригинала 7 января 2012 года . Проверено 14 октября 2012 г.
- ^ Грег Смит; Роберт Трит и Кристофер Браун. «Настройка сервера PostgreSQL» . Вики . PostgreSQL.org . Проверено 12 ноября 2011 г.
- ^ «пгДевОпс» . BigSQL.org . Архивировано из оригинала 1 апреля 2017 года . Проверено 4 мая 2017 г.
- ^ "pgbackrest/pgbackrest" . Гитхаб . 21 ноября 2021 г.
- ^ "пгаудит/пгаудит" . Гитхаб . 21 ноября 2021 г.
- ^ «вал-и/вал-и» . 24 июня 2021 г. — через GitHub.
- ^ Клэр Джордано (31 октября 2019 г.). «Архитектура аналитики петабайтного масштаба путем масштабирования Postgres в Azure с помощью расширения Citus» . Блог . Техническое сообщество Microsoft.
- ^ Эммануэль Чекше (21 мая 2009 г.). Создание хранилищ PetaByte с помощью немодифицированного PostgreSQL (PDF) . ПГКон 2009 . Проверено 12 ноября 2011 г.
- ^ «MySpace.com масштабирует аналитику для всех своих друзей» (PDF) . тематическое исследование. Данные Астер. 15 июня 2010 г. Архивировано (PDF) из оригинала 14 ноября 2010 г. . Проверено 12 ноября 2011 г.
- ^ «Отключение на прошлых выходных» . Блог . Гени. 1 августа 2011 г.
- ^ «База данных» . Вики . OpenStreetMap.
- ^ Домен .ORG филиалов PostgreSQL , Австралия: Computer World, 24 августа 2023 г.
- ^ Перейти обратно: а б с В. Джейсон Гилмор; Р. Х. Трит (2006). Начало PHP и PostgreSQL 8: от новичка до профессионала . Апресс. ISBN 978-1-43020-136-6 . Проверено 30 августа 2017 г.
- ^ Sony Online выбирает базу данных с открытым исходным кодом вместо Oracle , Компьютерный мир
- ^ «Пример использования PostgreSQL группой веб-коммерции» (PDF) (изд. 1.2). ПостгреSQL.
- ^ «Обзор архитектуры» . Вики-версия программного обеспечения Reddit . Реддит. 27 марта 2014 года . Проверено 25 ноября 2014 г.
- ^ Пихлак, Мартин. «PostgreSQL @Skype» (PDF) . wiki.postgresql.org . Проверено 16 января 2019 г.
- ^ «Сколько вы платите за свою базу данных?» . Блог Sun Microsystems. 2007. Архивировано из оригинала 7 марта 2009 года . Проверено 14 декабря 2007 г.
- ^ «База данных – MusicBrainz» . MusicBrains Wiki . Проверено 5 февраля 2011 г.
- ^ Дункэвидж, Дэниел П. (13 июля 2010 г.). «НАСА нуждается в помощи Postgres-Nagios» .
- ^ Рой, Гэвин М (2010). «PostgreSQL на myYearbook.com» (обсуждение). Восток США: конференция PostgreSQL. Архивировано из оригинала 27 июля 2011 года.
- ^ «Поддержание Instagram с более чем миллионом новых пользователей за двенадцать часов» . Instagram-engineering.tumblr.com. 17 мая 2011 года . Проверено 7 июля 2012 г.
- ^ «Postgres в Disqus» . Проверено 24 мая 2013 г.
- ^ Келли, Мэтью (27 марта 2015 г.). В сердце гиганта: Postgres на TripAdvisor . PGConf US 2015. Архивировано из оригинала 23 июля 2015 года . Проверено 23 июля 2015 г. ( Презентационный видеоролик )
- ^ «Успешный переход Яндекс.Почты с Oracle на Postgres [pdf]» . Хакерские новости: news.ycombinator.com . Проверено 28 сентября 2016 г.
- ^ Перейти обратно: а б С. Риггс; Дж. Чолли; Х. Пересечение; Г. Бартолини (2015). Пособия по администрированию PostgreSQL 9 — второе издание . Пакет. ISBN 978-1-84951-906-9 . Проверено 5 сентября 2017 г.
- ^ «Met Office заменяет Oracle на PostgreSQL» . www.computerweekly.com . 17 июня 2014 года . Проверено 5 сентября 2017 г.
- ^ «Программное обеспечение с открытым исходным кодом» . FlightAware . Проверено 22 ноября 2017 г.
- ^ «Ansible в Grofers (Часть 2) — Управление PostgreSQL» . Lambda — Инженерный блог Grofers . 28 февраля 2017 г. . Проверено 5 сентября 2018 г.
- ^ МакМахон, Филип; Хиореан, Мария-Ливия; Коулман, Сьюзи; Аскулум, Акаш (30 ноября 2018 г.). «Цифровой блог: пока, Монго, здравствуй, Postgres» . Хранитель . ISSN 0261-3077 .
- ^ «Повышенные ошибки API и ChatGPT» . Проверено 2 декабря 2023 г.
- ^ Алекс Уильямс (1 апреля 2013 г.). «Heroku вынуждает клиента обновиться, чтобы исправить критическую дыру в безопасности PostgreSQL» . ТехКранч .
- ^ Барб Дэрроу (11 ноября 2013 г.). «Heroku снабжает Postgres откатом базы данных и упреждающими оповещениями» . ГигаОМ.
- ^ Крейг Керстиенс (26 сентября 2013 г.). «WAL-E и непрерывная защита с помощью Heroku Postgres» . Блог Хероку.
- ^ «EnterpriseDB предлагает облачную базу данных Postgres Plus» . Techweekeurope.co.uk. 27 января 2012 года . Проверено 7 июля 2012 г.
- ^ «Alibaba Cloud расширяет техническое партнерство с EnterpriseDB» . Партнеры Майлстоун . 26 сентября 2018 года . Проверено 9 июня 2020 г.
- ^ О'Доэрти, Пол; Асселин, Стефан (2014). «3: Архитектура рабочего пространства VMware». VMware Horizon Suite: создание сервисов для конечных пользователей . Пресс-технологии VMware. Аппер-Сэддл-Ривер, Нью-Джерси: VMware Press. п. 65. ИСБН 978-0-13-347910-2 . Проверено 19 сентября 2016 г.
В дополнение к версии PostgreSQL с открытым исходным кодом VMware предлагает vFabric Postgres или vPostgres. vPostgres — это виртуальное устройство PostgreSQL, настроенное для виртуальных сред.
- ^ Эл Сарджент (15 мая 2012 г.). «Представляем VMware vFabric Suite 5.1: автоматическое развертывание, новые компоненты и поддержка открытого исходного кода» . Блоги VMware.
- ^ «VMware vFabric Suite EOA» (PDF) . 1 сентября 2014 года . Проверено 17 декабря 2023 г.
- ^ Джефф (14 ноября 2013 г.). «Amazon RDS для PostgreSQL – теперь доступен» . Блог веб-сервисов Amazon.
- ^ Алекс Уильямс (14 ноября 2013 г.). «PostgreSQL теперь доступен в службе реляционных баз данных Amazon» . ТехКранч .
- ^ «Обновление Amazon Aurora — совместимость с PostgreSQL» . Блог AWS . 30 ноября 2016 г. Проверено 1 декабря 2016 г.
- ^ «Анонсируем базу данных Azure для PostgreSQL» . Лазурный блог . 10 мая 2017 г. Проверено 19 июня 2019 г.
- ^ «Aliyun PolarDB выпустила крупные обновления для поддержки миграции баз данных, таких как Oracle, в облако одним щелчком мыши» . Разработать бумагу . 6 июля 2019 г.
- ^ «Асинхронная репликация Master-Slave баз данных PostgreSQL в один клик» . ДЗона . Проверено 26 мая 2017 г.
- ^ «Документация IBM Cloud Hyper Protect DBaaS для PostgreSQL» . Cloud.ibm.com . Проверено 24 июня 2020 г.
- ^ «Crunchy Data продолжает поддержку PostgreSQL с выпуском Crunchy Bridge» . 18 сентября 2020 г.
- ^ «ВЫБЕРИТЕ «Hello, World» Бессерверный Postgres, созданный для облака» . 15 июня 2022 г.
- ^ «Политика версий» . Группа глобального развития PostgreSQL . Проверено 4 октября 2018 г.
- ^ Ваас, Лиза (2 декабря 2002 г.). «Базы данных для целевых предприятий» . электронная неделя . Проверено 29 октября 2016 г.
- ^ Крил, Пол (20 ноября 2003 г.). «PostgreSQL повышает эффективность баз данных с открытым исходным кодом» . Инфомир . Проверено 21 октября 2016 г.
- ^ Крил, Пол (19 января 2005 г.). «База данных с открытым исходным кодом PostgreSQL может похвастаться поддержкой Windows» . Инфомир . Проверено 2 ноября 2016 г.
- ^ Вайс, Тодд Р. (5 декабря 2006 г.). «Выпущена версия 8.2 базы данных PostgreSQL с открытым исходным кодом» . Компьютерный мир . Проверено 17 октября 2016 г.
- ^ Гилбертсон, Скотт (5 февраля 2008 г.). «PostgreSQL 8.3: база данных с открытым исходным кодом обещает невероятную скорость» . Проводной . Проверено 17 октября 2016 г.
- ^ Хубер, Матиас (2 июля 2009 г.). «PostgreSQL 8.4 обладает множеством функций» . Журнал Линукс . Проверено 17 октября 2016 г.
- ^ Брокмайер, Джо (30 сентября 2010 г.). «Пять корпоративных функций PostgreSQL 9» . Linux.com . Фонд Linux . Проверено 6 февраля 2017 г.
- ^ Тимоти Прикетт Морган (12 сентября 2011 г.). «PostgreSQL обновляется до версии 9.1, ориентированной на предприятия» . Регистр . Проверено 6 февраля 2017 г.
- ^ «PostgreSQL: выпущен PostgreSQL 9.2» . www.postgresql.org . 10 сентября 2012 г.
- ^ «Вновь представляем Hstore для PostgreSQL» . ИнфоQ .
- ^ Ричард, Чиргвин (7 января 2016 г.). «Скажите: ой, поднимите голову: вышла версия PostgreSQL 9.5» . Регистр . Проверено 17 октября 2016 г.
- ^ «PostgreSQL: Документация: 10: Глава 31. Логическая репликация» . www.postgresql.org . 12 августа 2021 г.
- ^ «Выпущен PostgreSQL 11» . 18 октября 2018 года . Проверено 18 октября 2018 г.
- ^ «Примечания к выпуску PostgreSQL» . Проверено 18 октября 2018 г.
- ^ «PostgreSQL: выпущен PostgreSQL 12!» . Новости PostgreSQL . 3 октября 2019 г.
- ^ «Примечания к выпуску PostgreSQL 13» . www.postgresql.org . 12 августа 2021 г.
- ^ «Выпущен PostgreSQL 13!» . www.postgresql.org . 24 сентября 2020 г.
- ^ «Примечания к выпуску PostgreSQL 14» . www.postgresql.org . 11 ноября 2021 г.
- ^ «Выпущен PostgreSQL 14!» . www.postgresql.org . 30 сентября 2021 г.
- ^ «Выпущен PostgreSQL 16!» . 14 сентября 2023 г.
Дальнейшее чтение
[ редактировать ]- Обе, Регина; Сюй, Лео (8 июля 2012 г.). PostgreSQL: запуск и работа . О'Рейли . ISBN 978-1-4493-2633-3 .
- Крозинг, Ханну; Ройбал, Кирк (15 июня 2013 г.). Программирование сервера PostgreSQL (второе изд.). Пакт Паблишинг . ISBN 978-1-84951-698-3 .
- Риггс, Саймон; Кросинг, Ханну (27 октября 2010 г.). Книга рецептов администрирования PostgreSQL 9 (второе изд.). Пакт Паблишинг . ISBN 978-1-84951-028-8 .
- Смит, Грег (15 октября 2010 г.). Высокая производительность PostgreSQL 9 . Пакт Паблишинг . ISBN 978-1-84951-030-1 .
- Гилмор, В. Джейсон; Трит, Роберт (27 февраля 2006 г.). Начало PHP и PostgreSQL 8: от новичка до профессионала . Апресс . п. 896. ИСБН 1-59059-547-5 . Архивировано из оригинала 8 июля 2009 года . Проверено 28 апреля 2009 г.
- Дуглас, Корри (5 августа 2005 г.). PostgreSQL (второе изд.). Сэмс . п. 1032. ИСБН 0-672-32756-2 .
- Мэтью, Нил; Стоунз, Ричард (6 апреля 2005 г.). Начало баз данных с PostgreSQL (второе изд.). Апресс . п. 664. ИСБН 1-59059-478-9 . Архивировано из оригинала 9 апреля 2009 года . Проверено 28 апреля 2009 г.
- Уорсли, Джон К.; Дрейк, Джошуа Д. (январь 2002 г.). Практический PostgreSQL . О'Рейли Медиа . стр. 636 . ISBN 1-56592-846-6 .
Внешние ссылки
[ редактировать ]- Официальный сайт и вики
- Каталог программного обеспечения связанных проектов и продуктов.
- Официальный основной репозиторий исходного кода (для просмотра) и часто задаваемые вопросы для разработчиков.
- Официальный справочник для авторов документации PostgreSQL
- Все официальные репозитории исходного кода PostgreSQL
- PostgreSQL в Керли
- PostgreSQL на GitHub
- PostgreSQL
- Клиент-серверные системы управления базами данных
- Кроссплатформенное программное обеспечение
- Бесплатные системы управления базами данных
- Бесплатное программное обеспечение, написанное на C.
- Программное обеспечение ОРСУБД для Linux
- Программное обеспечение для управления реляционными базами данных для Linux
- Программное обеспечение, использующее Meson
- Векторные базы данных