Меню
Главная
Случайная статья
Настройки
|
PostgreSQL (произносится «Пост-Грес-Кью-Эл»[7]) — свободная объектно-реляционная система управления базами данных (СУБД).
Существует в реализациях для множества UNIX-подобных платформ, включая различные BSD-системы, IRIX, Linux, macOS, Solaris/OpenSolaris, Tru64, QNX, а также для Microsoft Windows.
Содержание
Поддержка стандартов, возможности, особенности
PostgreSQL базируется на языке SQL и поддерживает многие из возможностей стандарта SQL:2011[8][9] и ряд возможностей SQL:2016 в части работы с данными в формате JSON[10].
В PostgreSQL есть следующие ограничения[11]:
Максимальный размер базы данных |
Нет ограничений
|
Максимальный размер таблицы |
32 Тбайт
|
Максимальный размер поля |
1 Гбайт
|
Максимум записей в таблице |
Ограничено размерами таблицы
|
Максимум полей в записи |
250—1600, в зависимости от типов полей
|
Максимум индексов в таблице |
Нет ограничений
|
Сильными сторонами PostgreSQL считаются:
- высокопроизводительные и надёжные механизмы транзакций и репликации;
- расширяемая система встроенных языков программирования: в стандартной поставке поддерживаются PL/pgSQL, PL/Perl, PL/Python и PL/Tcl; дополнительно можно использовать PL/Java, PL/PHP, PL/Py, PL/R, PL/Ruby, PL/Scheme, PL/sh и PL/V8, а также имеется поддержка загрузки модулей расширения на языке C[12];
- наследование;
- возможность индексирования геометрических (в частности, географических) объектов и наличие базирующегося на ней расширения PostGIS;
- встроенная поддержка слабоструктурированных данных в формате JSON с возможностью их индексации;
- расширяемость (возможность создавать новые типы данных, типы индексов, языки программирования, модули расширения, подключать любые внешние источники данных).
История
PostgreSQL создана на основе некоммерческой СУБД Postgres, разработанной как open-source проект в Калифорнийском университете в Беркли. К разработке Postgres, начавшейся в 1986 году, имел непосредственное отношение Майкл Стоунбрейкер, руководитель более раннего проекта Ingres, на тот момент уже приобретённого компанией Computer Associates. Название расшифровывалось как «Post Ingres», и при создании Postgres были применены многие ранние наработки.
Стоунбрейкер и его студенты разрабатывали новую СУБД в течение восьми лет с 1986 по 1994 годы. За этот период в синтаксис были введены процедуры, правила, пользовательские типы и другие компоненты. В 1995 году разработка снова разделилась: Стоунбрейкер использовал полученный опыт в создании коммерческой СУБД Illustra, продвигаемой его собственной одноимённой компанией (приобретённой впоследствии компанией Informix), а его студенты разработали новую версию Postgres — Postgres95, в которой язык запросов POSTQUEL — наследие Ingres — был заменен на SQL.
Разработка Postgres95 была выведена за пределы университета и передана команде энтузиастов. Новая СУБД получила имя, под которым она известна и развивается в текущий момент — PostgreSQL. Старое название «Postgres» по-прежнему используется в сообществе наряду с «PostgreSQL», т.к. для многих оно удобнее в произношении[13].
История версий
Версия
|
Дата первого релиза
|
Последняя минорная версия
|
Дата последнего релиза
|
Окончание поддержки[14]
|
Реализованные возможности
|
6.0
|
1997-01-29
|
н/д
|
н/д
|
н/д
|
Формально первый выпуск PostgreSQL. Уникальные индексы, утилита pg_dumpall, аутентификация с использованием ident
|
6.1
|
1997-06-08
|
Старая версия, не поддерживается: 6.1.1
|
1997-07-22
|
н/д
|
Многоколоночные индексы, последовательности, тип данных money, 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
|
Поддержка subselect из SQL-92, PL/pgTCL
|
6.4
|
1998-10-30
|
Старая версия, не поддерживается: 6.4.2
|
1998-12-20
|
2003-10-30
|
Поддержка VIEW (только в режиме read-only) и правил, 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 для соединений (JOIN)
|
7.1
|
2001-04-13
|
Старая версия, не поддерживается: 7.1.3
|
2001-08-15
|
2006-04-13
|
Упреждающая журнализация, OUTER JOIN
|
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
|
схемы, табличные функции, подготовленные запросы[15]
|
7.4
|
2003-11-17
|
Старая версия, не поддерживается: 7.4.30
|
2010-10-04
|
2010-10-01
|
Оптимизация в JOINах и функции data warehouse[16]
|
8.0
|
2005-01-19
|
Старая версия, не поддерживается: 8.0.26
|
2010-10-04
|
2010-10-01
|
Версия для Microsoft Windows, точки сохранения в транзакциях, табличные пространства, point-in-time recovery[17]
|
8.1
|
2005-11-08
|
Старая версия, не поддерживается: 8.1.23
|
2010-12-16
|
2010-11-08
|
Оптимизация производительности, двухфазный commit, секционирование таблиц, index bitmap scan в планировщике SQL-запросов, разделяемый режим блокировки на уровне строк, роли
|
8.2
|
2006-12-05
|
Старая версия, не поддерживается: 8.2.23
|
2011-12-05
|
2011-12-05
|
Оптимизация производительности, построение индексов без остановки работы, рекомендательные блокировки, режим «тёплого резерва» при восстановлении базы по записям WAL[18]
|
8.3
|
2008-02-04
|
Старая версия, не поддерживается: 8.3.23
|
2013-02-07
|
2013-02-07
|
Механизм Heap-only tuples, полнотекстовый поиск[19], SQL/XML, типы ENUM, типы UUID
|
8.4
|
2009-07-01
|
Старая версия, не поддерживается: 8.4.22
|
2014-07-24
|
2014-07-24
|
Оконные функции, права доступа на уровне полей (колонок) таблицы, параллельное восстановление базы, правила сортировки на уровне базы, общие табличные запросы и рекурсивные запросы[20]
|
9.0
|
2010-09-20
|
Старая версия, не поддерживается: 9.0.23
|
2015-10-08
|
2015-10-08
|
Встроенная потоковая двоичная репликация, режим горячего резерва, обновление без остановки сервера, поддержка 64-битных версий Windows[21]
|
9.1
|
2011-09-12
|
Старая версия, не поддерживается: 9.1.24
|
2016-10-27
|
2016-10-27
|
Синхронная репликация, правила сортировки, задаваемые для отдельных колонок, нелоггируемые таблицы, уровень изоляции транзакций «сериализуемая изоляция снимков», возможность записи в общих табличных запросах SQL, интеграция с SELinux, расширения, внешние таблицы[22]
|
9.2
|
2012-09-10[23]
|
Старая версия, не поддерживается: 9.2.24
|
2017-11-09
|
2017-11-09
|
Каскадная потоковая репликация, сканирование только индекса, прямая поддержка JSON, улучшенное управление блокировками, диапазонные типы, утилита pg_receivexlog, индексы space-partitioned GiST
|
9.3
|
2013-09-09
|
Старая версия, не поддерживается: 9.3.25
|
2018-11-08
|
2018-11-08
|
Настраиваемые фоновые рабочие процессы, контрольные суммы страниц для обнаружения повреждённых данные, операторы JSON, LATERAL JOIN, ускорена работа pg_dump, новая утилита pg_isready для мониторинга сервера, доработанные возможности триггеров и представлений базы (view), записываемые внешние таблицы, материализованные представления, улучшения репликации
|
9.4
|
2014-12-18
|
Старая версия, не поддерживается: 9.4.26
|
2020-02-13
|
2020-02-13
|
Тип данных JSONB, Оператор ALTER SYSTEM для изменения значений в конфигурации системы, возможность обновлять материализованные представления без блокировки чтения, динамическая регистрация/запуск/остановка фоновых рабочих процессов, API логического декодирования для подключения к БД, улучшение работы индексов GIN, поддержка страниц типа huge для Linux, перезагрузка кэша базы данных с использованием pg_prewarm, новая ускоренная версия Hstore позиционируемая как предпочтительный способ хранения колоночных данных[24]
|
9.5
|
2016-01-07
|
Старая версия, не поддерживается: 9.5.25
|
2021-02-11
|
2021-02-11
|
UPSERT, политики защиты строк, TABLESAMPLE, CUBE/ROLLUP, GROUPING SETS, и новый тип индекса BRIN[25]
|
9.6
|
2016-09-29
|
Старая версия, не поддерживается: 9.6.24
|
2021-11-11
|
2021-11-11
|
Поддержка параллельных запросов, усовершенствования функционала PostgreSQL для работы со сторонними данными (FDW) — добавлен параметр pushdown для sort/join, множественные синхронные сервера горячего резерва, ускорена операция vacuum на больших таблицах
|
10
|
2017-10-05
|
Старая версия, не поддерживается: 10.20
|
2022-02-10
|
2022-11-10
|
Логическая репликация[26], декларативное секционирование таблиц, улучшенное параллельное выполнение в запросах
|
11
|
2018-10-18
|
Старая версия, не поддерживается: 11.15
|
2022-02-10
|
2023-11-09
|
Улучшены устойчивость и производительность при секционировании, поддержка транзакций в хранимых процедурах, улучшенные возможности для параллельного выполнения в запросах, just-in-time (JIT) компиляция выражений[27][28]
|
12
|
2019-10-03
|
Старая поддерживаемая версия: 12.10
|
2022-02-10
|
2024-11-14
|
Ускорение запросов и более экономное использование дискового пространства; поддержка выражений языка путей SQL/JSON; генерируемые столбцы; улучшения в интернационализации и аутентификации; новый интерфейс для создания подключаемых движков работы с таблицами[29]
|
13
|
2020-09-24
|
Старая поддерживаемая версия: 13.6
|
2022-02-10
|
2025-11-13
|
Дедупликация узлов в индексах B-tree ускорена и требует меньше места, увеличена производительность запросов, которые используют агрегаты или секционированные таблицы, улучшено планирование запросов при использовании расширенной статистики, распараллелено вакуумирование индексов, инкрементальная сортировка[30][31]
|
14
|
2021-09-30
|
Старая поддерживаемая версия: 14.2
|
2022-02-10
|
2026-11-12
|
Разрешены определённые стандартом SQL опции SEARCH и CYCLE в общих табличных запросах, разрешено добавлять DISTINCT к GROUP BY[32][33]
|
15
|
2022-10-13
|
Старая поддерживаемая версия: 15.8
|
2024-08-08
|
2027-11-11
|
- Поддержка команды SQL MERGE
- Выборочная публикация содержимого таблиц в публикациях логической репликации благодаря возможности указывать списки столбцов и условия фильтрации строк
- Дополнительные возможности сжатия, включая поддержку сжатия Zstandard (zstd). Сюда входит поддержка выполнения сжатия на стороне сервера во время pg_basebackup
- Поддержка структурированного вывода журналов сервера в формате JSON
- Улучшена производительность, особенно при сортировке в памяти и на диске[34]
|
16
|
2023-09-14
|
Старая поддерживаемая версия: 16.4
|
2024-08-08
|
2028-11-09
|
- Возможность распараллеливания FULL и внутренних правых OUTER хэш-соединений
- Возможность логической репликацию с резервных серверов
- Возможность подписчикам логической репликации выполнять большие транзакции параллельно
- Возможность мониторинга статистики ввода-вывода с использованием нового представления pg_stat_io
- Добавление конструкторов SQL / JSON и функций идентификации
- Улучшение производительности заморозки сборки мусора
- Добавлена поддержка сопоставления регулярных выражений имен пользователей и баз данных в pg_hba.conf и имен пользователей в pg_ident.conf[35]
|
17
|
2024-09-26
|
Текущая версия: 17.0
|
2024-09-26
|
2029-11-08
|
- Новая система управления памятью для VACUUM, которая снижает потребление памяти и может повысить общую производительность сборки мусора
- Новые возможности SQL / JSON, включая конструкторы, функции идентификации и функцию JSON_TABLE(), которая преобразует данные JSON в табличное представление
- Различные улучшения производительности запросов, в том числе для последовательного чтения с использованием потокового ввода-вывода, пропускной способности записи при высоком параллелизме и поиска по нескольким значениям в индексе btree
- Улучшения логической репликации, включая:
- Управление отказоустойчивостью
- pg_createsubscriber, утилита, создающая логические копии из физических резервных копий
- pg_upgrade теперь сохраняет слоты репликации как у издателей, так и у подписчиков
- Новая опция подключения на стороне клиента, sslnegotiation = direct, которая выполняет прямое «рукопожатие» TLS, чтобы избежать повторного согласования
- pg_basebackup теперь поддерживает инкрементное резервное копирование
- COPY добавляет новую опцию ON_ERROR ignore, которая позволяет продолжить операцию копирования в случае ошибки[36]
|
18
|
—
|
Будущая версия: 18 RC 1
|
2025-09-04
|
—
|
Ожидается, что полная версия выйдет в сентябре/октябре 2025 года.[37]
|
Основные возможности
Функции
Функции являются блоками кода, исполняемыми на сервере, а не на клиенте БД. Хотя они могут писаться на чистом SQL, реализация дополнительной логики, например, условных переходов и циклов, выходит за рамки SQL и требует использования некоторых языковых расширений. Функции могут писаться с использованием одного из следующих языков:
- Встроенный процедурный язык PL/pgSQL, во многом аналогичный языку PL/SQL, используемому в СУБД Oracle;
- Скриптовые языки — PL/Lua, PL/LOLCODE, PL/Perl, PL/PHP, PL/Python, PL/Ruby, PL/sh, PL/Tcl, PL/Scheme, PL/v8 (Javascript);
- Классические языки — C, C++, Java (через модуль PL/Java);
- Статистический язык R (через модуль PL/R).
PostgreSQL допускает использование функций, возвращающих набор записей, который далее можно использовать так же, как и результат выполнения обычного запроса.
Функции могут выполняться как с правами их создателя, так и с правами текущего пользователя.
Иногда функции отождествляются с хранимыми процедурами, однако между этими понятиями есть различие.
С девятой версии возможно написание автономных блоков, которые позволяют выполнять код на процедурных языках без написания функций, непосредственно в клиенте.
Триггеры
Триггеры определяются как функции, инициируемые DML-операциями. Например, операция INSERT может запускать триггер, проверяющий добавленную запись на соответствия определённым условиям. При написании функций для триггеров могут использоваться различные языки программирования (см. выше).
Триггеры ассоциируются с таблицами. Множественные триггеры выполняются в алфавитном порядке.
Правила и представления
Механизм правил (англ. rules) представляет собой механизм создания пользовательских обработчиков не только DML-операций, но и операции выборки. Основное отличие от механизма триггеров заключается в том, что правила срабатывают на этапе разбора запроса, до выбора оптимального плана выполнения и самого процесса выполнения. Правила позволяют переопределять поведение системы при выполнении SQL-операции к таблице. Хорошим примером является реализация механизма представлений (англ. views): при создании представления создается правило, которое определяет, что вместо выполнения операции выборки к представлению система должна выполнять операцию выборки к базовой таблице/таблицам с учётом условий выборки, лежащих в основе определения представления. Для создания представлений, поддерживающих операции обновления, правила для операций вставки, изменения и удаления строк должны быть определены пользователем.
Индексы
В PostgreSQL имеется поддержка индексов следующих типов: B-дерево, хеш, GiST, GIN, BRIN, Bloom. При необходимости можно создавать новые типы индексов. Индексы в PostgreSQL обладают следующими свойствами:
- возможен просмотр индекса не только в прямом, но и в обратном порядке — создание отдельного индекса для работы конструкции
ORDER BY ... DESC не нужно;
- возможно создание индекса над несколькими столбцами таблицы, в том числе над столбцами различных типов данных;
- индексы могут быть функциональными, то есть строиться не на базе набора значений некоего столбца/столбцов, а на базе набора значений функции от набора значений;
- индексы могут быть частичными, то есть строиться только по части таблицы (по некоторой её проекции); в некоторых случаях это помогает создавать намного более компактные индексы или достигать улучшения производительности за счёт использования разных типов индексов для разных (например, с точки зрения частоты обновления) частей таблицы;
- планировщик запросов может использовать несколько индексов одновременно для выполнения сложных запросов.
Многоверсионность (MVCC)
PostgreSQL поддерживает одновременную модификацию БД несколькими пользователями с помощью механизма Multiversion Concurrency Control (MVCC). Благодаря этому соблюдаются требования ACID и практически отпадает нужда в блокировках чтения.
Типы данных
PostgreSQL поддерживает большой набор встроенных типов данных:
- Численные типы
- Целые
- С фиксированной точкой
- С плавающей точкой
- Денежный тип (отличается специальным форматом вывода, а в остальном аналогичен числам с фиксированной точкой с двумя знаками после запятой)
- Символьные типы произвольной длины
- Двоичные типы (включая BLOB)
- Типы «дата/время» (полностью поддерживающие различные форматы, точность, форматы вывода, включая последние изменения в часовых поясах)
- Булев тип
- Перечисление
- Геометрические примитивы
- Интервалы (RANGE)
- Сетевые типы
- UUID-идентификатор
- XML-данные
- Массивы
- JSON
- Идентификаторы объектов БД
- Псевдотипы
Более того, пользователь может самостоятельно создавать новые требуемые ему типы и программировать для них механизмы индексирования с помощью GiST.
Пользовательские объекты
PostgreSQL может быть расширен пользователем для собственных нужд практически в любом аспекте. Есть возможность добавлять собственные:
- Преобразования типов
- Типы данных
- Домены (пользовательские типы с изначально наложенными ограничениями)
- Функции (включая агрегатные)
- Индексы
- Операторы (включая переопределение уже существующих)
- Процедурные языки
Наследование и секционирование
Таблицы могут наследовать характеристики и наборы полей от других таблиц (родительских). При этом данные, добавленные в порождённую таблицу, автоматически будут участвовать (если это не указано отдельно) в запросах к родительской таблице.
В PostgreSQL 10 был добавлен механизм секционирования таблиц. Секционирование предназначено для разделения одной таблицы на несколько так называемых секций (partitions). Секционирование схоже с наследованием, но имеет более дружелюбный к пользователю синтаксис и более строгие ограничения, что позволяет выполнять дополнительные оптимизации при планировании запросов.
Прочие возможности- Соблюдение принципов ACID
- Соответствие стандартам ANSI, SQL-92, SQL-99, SQL:2003, SQL:2011
- Поддержка запросов с
OUTER JOIN , UNION , UNION ALL , EXCEPT , INTERSECT и подзапросов
- Последовательности
- Контроль целостности
- Репликация
- Общие табличные выражения и рекурсивные запросы
- Аналитические функции
- Поддержка Юникода (UTF-8)
- Поддержка регулярных выражений в стиле Perl
- Встроенная поддержка SSL, SELinux и Kerberos
- Протокол разделяемых блокировок
- Подгружаемые расширения, поддерживающие SHA1, MD5, XML
- Расширения для написания сложных выборок, отчётов и т. д. (API открыт)
- Средства для генерации совместимого с другими системами SQL-кода и импорта из других систем
- Автономные блоки на доступных языках, а не только SQL
Администрирование
Средства администрирования PostgreSQL:
- psql
- Основным интерфейсом для PostgreSQL является интерактивная консольная утилита[англ.]*
psql , которую можно использовать для прямого ввода SQL-запросов или их выполнения из файла. Кроме того, psql предоставляет ряд метакоманд и различных функций оболочки для облегчения написания скриптов и автоматизации широкого спектра задач; например, автодополнение имён объектов и синтаксиса SQL.
- pgAdmin
- Пакет pgAdmin — это бесплатный и открытый графический пользовательский интерфейс для администрирования PostgreSQL, который поддерживается на многих компьютерных платформах[38]. Программа доступна более чем на дюжине языков. Первый прототип, названный pgManager, был написан для PostgreSQL 6.3.2 в 1998 году и переписан и выпущен как pgAdmin под лицензией GNU General Public License (GPL) в последующие месяцы. Вторая версия (названная pgAdmin II) была полностью переписана и впервые выпущена 16 января 2002 года. Третья версия, pgAdmin III, изначально была выпущена под лицензией Artistic License[англ.], а затем выпущена под той же лицензией, что и PostgreSQL. В отличие от предыдущих версий, написанных на Visual Basic, pgAdmin III написан на C++ с использованием фреймворка wxWidgets[39], что позволяет ему работать на большинстве распространённых операционных систем. Инструмент запросов включает в себя язык сценариев pgScript для поддержки задач администрирования и разработки. В декабре 2014 года Дэйв Пейдж, основатель и главный разработчик проекта pgAdmin[40], объявил, что с переходом на веб-модели началась работа над pgAdmin 4 с целью упрощения облачных развёртываний[41]. В 2016 году был выпущен pgAdmin 4. Он был написан на Python с использованием Flask и фреймворка Qt[42].
- phpPgAdmin
- phpPgAdmin — веб-инструмент администрирования для PostgreSQL, написанный на PHP и основанный на популярном интерфейсе phpMyAdmin, изначально созданном для администрирования MySQL[43].
- PostgreSQL Studio
- PostgreSQL Studio позволяет пользователям выполнять основные задачи разработки баз данных PostgreSQL из веб-консоли. PostgreSQL Studio позволяет пользователям работать с облачными базами данных без необходимости открывать межсетевые экраны[44]
- LibreOffice, OpenOffice.org
- LibreOffice и OpenOffice.org Base можно использовать в качестве интерфейса для PostgreSQL[45][46]
- pgBadger
- Анализатор логов PostgreSQL pgBadger создаёт подробные отчёты из файла журналов PostgreSQL[47]
- pgDevOps
- pgDevOps — это набор веб-инструментов для установки и управления несколькими версиями PostgreSQL, расширениями и компонентами сообщества, разработки SQL-запросов, мониторинга работающих баз данных и поиска проблем производительности[48]
- Adminer
- Adminer — простой веб-инструмент администрирования для PostgreSQL и других СУБД, написанный на PHP.
- pgBackRest
- pgBackRest — инструмент резервного копирования и восстановления для PostgreSQL, который обеспечивает поддержку полного, дифференциального и инкрементного резервного копирования[49]
- pgaudit
- pgaudit — это расширение PostgreSQL, которое обеспечивает подробное ведение журнала аудита сеанса и/или объекта с помощью стандартного средства ведения журнала, предоставляемого PostgreSQL[50].
- WAL-E
- WAL-E — это инструмент резервного копирования и восстановления для PostgreSQL, который обеспечивает поддержку физических (на основе упреждающей журнализации) резервных копий, написанный на Python[51].
Ряд компаний предлагают собственные инструменты для PostgreSQL. Они часто состоят из универсального ядра, адаптированного для различных конкретных продуктов баз данных. Эти инструменты в основном используют функции администрирования инструментов с открытым исходным кодом, но предлагают улучшения в моделировании данных[англ.], импорте, экспорте или отчётности.
Качество исходного кода
Согласно результатам автоматизированного исследования различного ПО на предмет ошибок, проведённом в 2005 году, в исходном коде PostgreSQL было найдено 20 проблемных мест на 775 000 строк исходного кода (в среднем, одна ошибка на 39 000 строк кода)[52]. Для сравнения: MySQL — 97 проблем, одна ошибка на 8000 строк кода; FreeBSD (целиком) — 306 проблем, одна ошибка на 2500 строк кода; Linux (только ядро) — 950 проблем, одна ошибка на 800 строк кода.
Производные продукты
Лицензия PostgreSQL позволяет на его основе создавать различные, в том числе коммерческие, форки. Их известно несколько десятков[53].
На базе PostgreSQL компанией EnterpriseDB были разработаны другие варианты этой СУБД, являющиеся платными для коммерческого использования — Postgres Plus (состоит целиком только из продуктов с открытыми исходными кодами; плата требуется только при необходимости приобретения коммерческой поддержки продукта) и Postgres Plus Advanced Server (расширение PostgreSQL специальными возможностями для обеспечения совместимости с Oracle Database)[54]. В комплекте поставки данных продуктов содержится набор ПО для разработчиков и администраторов баз данных:
- Postgres Studio — аналог phpPgAdmin;
- Postgres Plus Debugger — отладчик для кода на PL/pgSQL, интегрированный с предыдущим пакетом;
- Migration Studio — инструмент для автоматического преобразования баз данных из MySQL/Oracle в PostgreSQL.
Существуют и другие коммерческие продукты, созданные на базе PostgreSQL и дополняющие её различными функциями:
- 2ndQPostgres — продукт компании 2nd Quadrant[55];
- Fujitsu Enterprise Postgres — продукт компании Fujitsu[56].
Postgres Pro
Postgres Pro компании Postgres Professional[57] — разрабатываемый в России дистрибутив, содержащий усовершенствования, впоследствии, как правило, поступающие в апстрим основного проекта. Данная версия PostgreSQL сертифицирована ФСТЭК[58] и рядом крупных российских организаций. В рамках российского импортозамещения рассматривается как замена Oracle[59][60][61].
Примечания
- PostgreSQL 17.6, 16.10, 15.14, 14.19, 13.22, and 18 Beta 3 Released! — 2025.
- PostgreSQL 18 RC 1 Released! — 2025.
- https://www.postgresql.org/docs/current/history.html
- https://github.com/postgres/postgres
- The postgres Open Source Project on Open Hub: Languages Page — 2006.
- 1 2 3 4 5 6 https://www.postgresql.org/download/
- Часто Задаваемые Вопросы: Что такое PostgreSQL? Как произносится это название? Что такое Postgres? (неопр.) PostgreSQL wiki. Дата обращения: 10 февраля 2023. Архивировано 10 февраля 2023 года.
- «Appendix D. SQL Conformance» Архивная копия от 23 марта 2014 на Wayback Machine. PostgreSQL 9 Documentation Архивная копия от 8 июля 2014 на Wayback Machine. PostgreSQL Global Development Group. 2009 [1996]. Retrieved 2013-04-01.
- «SQL Conformance» Архивная копия от 21 июля 2014 на Wayback Machine. postgresql.org. 2013-04-04. Retrieved 2013-08-28.
- obartunov. SQL/JSON standard-2016 conformance for PostgreSQL, Oracle, SQL Server and MySQL (неопр.). ... (16 марта 2018). Дата обращения: 30 июня 2023. Архивировано 30 июня 2023 года.
- PostgreSQL Limits (неопр.). www.postgresql.org. Дата обращения: 15 августа 2016. Архивировано 12 ноября 2019 года.
- PostgreSQL: Documentation: 11: Procedural Languages (неопр.). www.postgresql.org. Дата обращения: 2 марта 2019. Архивировано 3 марта 2019 года.
- PostgreSQL Press FAQ (неопр.).
- Versioning policy (неопр.). PostgreSQL Global Development Group. Дата обращения: 4 октября 2018. Архивировано 4 апреля 2022 года.
- Vaas, Lisa (2 декабря 2002). Databases Target Enterprises. eWeek. Дата обращения: 29 октября 2016.
-
-
-
-
-
- Brockmeier, Joe. Five Enterprise Features in PostgreSQL 9 (неопр.). Linux.com. Linux Foundation (30 сентября 2010). Дата обращения: 6 февраля 2017. Архивировано 18 февраля 2021 года.
-
- PostgreSQL: PostgreSQL 9.2 released (неопр.). www.postgresql.org (10 сентября 2012). Дата обращения: 5 апреля 2022. Архивировано 21 сентября 2020 года.
- Reintroducing Hstore for PostgreSQL (неопр.). InfoQ. Дата обращения: 5 апреля 2022. Архивировано 16 июня 2021 года.
-
- PostgreSQL: Documentation: 10: Chapter 31. Logical Replication (неопр.). www.postgresql.org (12 августа 2021). Дата обращения: 5 апреля 2022. Архивировано 5 апреля 2022 года.
- PostgreSQL 11 Released (неопр.) (18 октября 2018). Дата обращения: 18 октября 2018. Архивировано 14 сентября 2020 года.
- PostgreSQLRelease Notes (неопр.). Дата обращения: 18 октября 2018. Архивировано 26 октября 2018 года.
-
- PostgreSQL 13 Release Notes (неопр.). www.postgresql.org (12 августа 2021). Дата обращения: 5 апреля 2022. Архивировано 5 апреля 2022 года.
- PostgreSQL 13 Released! (неопр.) www.postgresql.org (24 сентября 2020). Дата обращения: 5 апреля 2022. Архивировано 31 марта 2022 года.
- PostgreSQL 14 Release Notes (неопр.). www.postgresql.org (11 ноября 2021). Дата обращения: 5 апреля 2022. Архивировано 25 марта 2022 года.
- PostgreSQL 14 Released! (неопр.) www.postgresql.org (30 сентября 2021). Дата обращения: 5 апреля 2022. Архивировано 31 марта 2022 года.
- PostgreSQL: Release Notes (неопр.). www.postgresql.org. Дата обращения: 19 октября 2024.
- PostgreSQL: Release Notes (неопр.). www.postgresql.org. Дата обращения: 19 октября 2024. Архивировано 7 октября 2024 года.
- PostgreSQL: Release Notes (неопр.). www.postgresql.org. Дата обращения: 19 октября 2024. Архивировано 7 октября 2024 года.
- Group, PostgreSQL Global Development. PostgreSQL 17.6, 16.10, 15.14, 14.19, 13.22, and 18 Beta 3 Released! (англ.). PostgreSQL News (14 августа 2025). Дата обращения: 2 сентября 2025.
- pgAdmin: PostgreSQL administration and management tools (неопр.). website. Дата обращения: 12 ноября 2011. Архивировано 17 сентября 2020 года.
- Debian -- Details of package pgadmin3 in jessie (неопр.). Дата обращения: 10 марта 2017. Архивировано 12 марта 2017 года.
- pgAdmin Development Team (неопр.). pgadmin.org. Дата обращения: 22 июня 2015. Архивировано из оригинала 22 апреля 2015 года.
- Dave, Page. The story of pgAdmin (неопр.). Dave's Postgres Blog. pgsnake.blogspot.co.uk (7 декабря 2014). Дата обращения: 7 декабря 2014. Архивировано 22 июня 2015 года.
- pgAdmin 4 README (неопр.). GitHub. Дата обращения: 15 августа 2018.
- phpPgAdmin Project. About phpPgAdmin (неопр.) (25 апреля 2008). Дата обращения: 25 апреля 2008. Архивировано 3 мая 2008 года.
- PostgreSQL Studio. About PostgreSQL Studio (неопр.) (9 октября 2013). Дата обращения: 9 октября 2013. Архивировано из оригинала 7 октября 2013 года.
- oooforum.org. Back Ends for OpenOffice (неопр.) (10 января 2010). Дата обращения: 5 января 2011. Архивировано из оригинала 28 сентября 2011 года.
- libreoffice.org. Base features (неопр.) (14 октября 2012). Дата обращения: 14 октября 2012. Архивировано из оригинала 7 января 2012 года.
- Greg Smith, Robert Treat, Christopher Browne. Tuning your PostgreSQL server (неопр.). Wiki. PostgreSQL.org. Дата обращения: 12 ноября 2011. Архивировано 15 ноября 2011 года.
- pgDevOps (неопр.). BigSQL.org. Дата обращения: 4 мая 2017. Архивировано из оригинала 1 апреля 2017 года.
- pgbackrest/pgbackrest (неопр.). GitHub (21 ноября 2021). Дата обращения: 11 октября 2024. Архивировано 8 октября 2024 года.
- pgaudit/pgaudit (неопр.). GitHub (21 ноября 2021). Дата обращения: 11 октября 2024. Архивировано 4 ноября 2024 года.
- wal-e/wal-e (неопр.) (24 июня 2021). Дата обращения: 11 октября 2024. Архивировано 7 октября 2024 года.
- PostgreSQL Achieves Coverity Quality Certification (англ.). PostgreSQL Global Development Group (24 июля 2005). — Новость о результатах сертификации качества. Дата обращения: 8 сентября 2009. Архивировано из оригинала 24 августа 2011 года.
- PostgreSQL derived databases (неопр.). PostgreSQL Wiki. Дата обращения: 30 июля 2018. Архивировано 30 июля 2018 года.
- Подход к миграции баз данных с Oracle на EnterpriseDB (рус.). Бюро Соломатина (13 декабря 2010). — Подход к миграции баз данных с Oracle на EnterpriseDB. Дата обращения: 13 декабря 2010. Архивировано из оригинала 24 августа 2011 года. (недоступная ссылка с 07-03-2017 [3117 дней])
- 2ndQPostgres (неопр.). Дата обращения: 8 ноября 2019. Архивировано 8 ноября 2019 года.
- Fujitsu Enterprise Postgres (неопр.). Дата обращения: 8 ноября 2019. Архивировано 8 ноября 2019 года.
- Postgres Pro (неопр.). Дата обращения: 8 ноября 2019. Архивировано 6 сентября 2019 года.
- Александр Маляревский. Виртуализация: тренды внутри тренда на российском рынке (рус.). CRN (27 июля 2021). Архивировано 30 января 2022 года.
- Константин Скурат. СУБДсидия в рост (рус.). www.comnews.ru (15 ноября 2021). Дата обращения: 27 октября 2023. Архивировано 30 января 2022 года.
- Денис Воейков. «Росатом» массово меняет СУБД Oracle и Microsoft на российскую Postgres Pro - CNews (рус.). CNews.ru. Дата обращения: 27 октября 2023. Архивировано 30 января 2022 года.
- Денис Воейков. «Гознак» переходит на российскую СУБД Postgres Pro - CNews (рус.). CNews.ru. Дата обращения: 27 октября 2023. Архивировано 30 января 2022 года.
Ссылки- Балдин Евгений. PostgreSQL — серия из шести статей, опубликованных в журнале Linux Format (2006—2007).
- Панченко Иван. PostgreSQL: вчера, сегодня, завтра (рус.). Открытые системы. СУБД, № 03, 2015 (20 июля 2015). Дата обращения: 27 октября 2023. Архивировано 31 марта 2022 года.
- Алексеев Александр. Серия статей о PostgreSQL — примеры использования физической и логической репликации, полнотекстового и пространственного поиска, автоматического восстановления после сбоев, написания расширений.
|
|