Сегодня давайте поговорим о преимуществах Postgres перед другими системами с открытым кодом. Эту тему мы обязательно раскроем более подробно на PG Day"16 Russia, до которой осталось всего два месяца.
Возможно, вы спрашиваете себя: «Почему PostgreSQL?» Ведь есть и другие варианты реляционных баз данных с открытым исходным кодом (в рамках этой статьи мы рассматривали MySQL, MariaDB и Firebird), так что же Постгрес может предложить такого, чего нет у них? В слогане PostgreSQL заявляется, что это «Самая продвинутая база данных с открытым исходным кодом в мире». Мы приведем несколько причин, почему Постгрес делает такие заявления.
В первой части этой серии мы поговорим о хранении данных - модели, структуре, типах и ограничениях размера. А во второй части больше сфокусируемся на выборке и манипуляциях с данными.
Фундаментальная характеристика объектно-реляционной базы данных - это поддержка пользовательских объектов и их поведения, включая типы данных, функции, операции, домены и индексы. Это делает Постгрес невероятно гибким и надежным. Среди прочего, он умеет создавать, хранить и извлекать сложные структуры данных. В некоторых примерах ниже вы увидите вложенные и составные конструкции, которые не поддерживаются стандартными РСУБД.
Давайте рассмотрим подробнее некоторые из них:
У MySQL и MariaDB тоже есть INET функции для конвертации сетевых адресов, но они не предоставляют типы данных для внутреннего хранения сетевых адресов. У Firebird тоже нет типов для хранения сетевых адресов.
Создаем таблицу, у которой значения являются массивами
CREATE TABLE holiday_picnic (holiday varchar(50) -- строковое значение
sandwich text, -- массив
side text , -- многомерный массив
dessert text ARRAY, -- массив
beverage text ARRAY -- массив из 4-х элементов);
-- вставляем значения массивов в таблицу
INSERT INTO holiday_picnic VALUES
("Labor Day",
"{"roast beef","veggie","turkey"}",
"{
{"potato salad","green salad","macaroni salad"},
{"chips","crackers"}
}",
"{"fruit cocktail","berry pie","ice cream"}",
"{"soda","juice","beer","water"}");
MySQL, MariaDB, и Firebird так не умеют. Чтобы хранить такие массивы значений в традиционных реляционных базах данных, придется использовать обходной путь и создавать отдельную таблицу со строками для каждого из значений массива.
Создаем таблицу для хранения троп
CREATE TABLE trails (trail_name varchar(250),
trail_path path);
-- вставляем тропу в таблицу,
-- для которой маршрут определяется координатами в формате широта-долгота
INSERT INTO trails VALUES
("Dool Trail - Creeping Forest Trail Loop",
((37.172,-122.22261666667),
(37.171616666667,-122.22385),
(37.1735,-122.2236),
(37.175416666667,-122.223),
(37.1758,-122.22378333333),
(37.179466666667,-122.22866666667),
(37.18395,-122.22675),
(37.180783333333,-122.22466666667),
(37.176116666667,-122.2222),
(37.1753,-122.22293333333),
(37.173116666667,-122.22281666667)));
Расширение PostGIS для PostgreSQL дополняет существующие свойства геометрических данных вспомогательными пространственными типами, функциями, операторами и индексами. Оно обеспечивает поддержку местоположения и поддерживает как растровые, так и векторные данные. Оно также обеспечивает совместимость с множеством сторонних геопространственных инструментов (защищённых авторским правом и с открытым исходным кодом) для отображения, отрисовки и работы с данными.
Заметьте, что в MySQL 5.7.8 и в MariaDB, начиная с версии 5.3.3, были добавлены расширения типов данных для поддержки стандарта географической информации OpenGIS. Эта версия MySQL и последующие версии MariaDB предлагают хранение типов данных, аналогичное штатным геоданным Постгреса. Тем не менее, в MySQL и MariaDB значения данных сначала должны быть сконвертированы в геометрический формат простыми командами перед тем, как будут вставлены в таблицу. Firebird на данный момент не поддерживает геометрические типы данных.
Тип данных JSON обеспечивает проверку корректности JSON, который позволяет использовать специализированные JSON операторы и функции, встроенные в Постгрес для выполнения запросов и манипулирования данными. Также доступен тип JSONB - двоичная разновидность формата JSON, у которой пробелы удаляются, сортировка объектов не сохраняется, вместо этого они хранятся наиболее оптимальным образом, и сохраняется только последнее значение для ключей-дубликатов. JSONB обычно является предпочтительным форматом, поскольку требует меньше места для объектов, может быть проиндексирован и обрабатывается быстрее, так как не требует повторного синтаксического анализа.
В MySQL 5.7.8 и MariaDB 10.0.1 была добавлена поддержка встроенных объектов JSON. Но, хотя существует множество функций и операторов для JSON, которые теперь доступны в этих базах данных, они не индексируются так, как JSONB в PostgreSQL. Firebird пока что не присоединился к тренду и поддерживает объекты JSON только в виде текста.
Создаем новый составной тип "wine"
CREATE TYPE wine AS (wine_vineyard varchar(50),
wine_type varchar(50),
wine_year int);
-- создаем таблицу, которая использует составной тип "wine"
CREATE TABLE pairings (menu_entree varchar(50),
wine_pairing wine);
-- вставляем данные в таблицу при помощи выражения ROW
INSERT INTO pairings VALUES
("Lobster Tail",ROW("Stag""s Leap","Chardonnay", 2012)),
("Elk Medallions",ROW("Rombauer","Cabernet Sauvignon",2012));
/*
выборка из таблицы с использованием имени колонки
(используйте скобки, отделяемые точкой от имени поля
в составном типе)
*/
SELECT (wine_pairing).wine_vineyard, (wine_pairing).wine_type
FROM pairings
WHERE menu_entree = "Elk Medallions";
Поскольку они не являются объектно-реляционными, MySQL, MariaDB и Firebird не предоставляют такую мощную функциональность.
В Compose [прим. пер.: организация, в которой трудится автор оригинальной статьи] мы автоматически масштабируем вашу инсталляцию, чтобы вам не приходилось волноваться о росте количества данных. Но, как известно любому администратору баз данных, стоит с опаской относиться к слишком большим и неограниченным возможностям. Мы советуем руководствоваться здравым смыслом при создании таблиц и добавлении индексов.
Для сравнения, MySQL и MariaDB печально известны ограничением размера строк в 65 535 байт. Firebird также предлагает всего лишь 64Кб в качестве максимального размера строки. Обычно объём данных ограничивается максимальным размером файлов операционной системы. Поскольку PostgreSQL умеет хранить табличные данные в множестве файлов меньшего размера, он может обойти это ограничение. Но стоит отметить, что слишком большое количество файлов может негативно сказаться на производительности. MySQL и MariaDB поддерживают большее количество столбцов в таблице (до 4,096 в зависимости от типа данных) и большие индивидуальные размеры таблицы, чем PostgreSQL, но необходимость превысить существующие ограничения Постгреса возникает лишь в крайне редких случаях.
MySQL и MariaDB больше работают на то, чтобы соответствовать стандарту SQL с движками таблиц InnoDB/XtraDB. Теперь они предлагают опцию STRICT с использованием режимов SQL, которая устанавливает проверки корректности используемых данных. Несмотря на это, в зависимости от того, какой режим вы используете, недостоверные и даже урезанные без вашего ведома данные могут быть вставлены или созданы при обновлении. Ни одна из этих баз данных сейчас не поддерживает CHECK ограничения. Кроме того, у них существует множество особенностей в отношении ограничений ссылочной целостности по внешним ключам. В дополнение к вышесказанному, целостность данных может существенно пострадать в зависимости от выбранного движка хранения. MySQL (и fork MariaDB) не делают секрета из того, что променяли целостность и соответствие стандартам на скорость и эффективность.
Если вам кажется, что PostgreSQL не соответствует вашим потребностям, или вы предпочитаете “стрелять от бедра”, тогда вам стоит обратить внимание на NoSQL базы данных, которые мы предлагаем в Compose, или подумать о других SQL базах данных, которые мы упоминали. У каждой из них есть свои преимущества. Compose твёрдо уверен, что очень важно выбрать правильную базу данных для конкретной задачи… иногда это означает, что нужно выбрать несколько баз данных!
Хотите больше Постгреса?
PostgreSQL — это кроссплатформенная объектно-реляционная СУБД с открытым исходным кодом. Из этой статьи вы узнаете, как установить PostgreSQL в Ubuntu Linux, подключиться к нему и выполнить пару простых SQL-запросов, а также о том, как настроить резервное копирование.
Чтобы установить PostgreSQL 9.2 в Ubuntu 12.10, выполните следующие команды:
sudo
apt-add-repository ppa:pitti/
postgresql
sudo
apt-get update
sudo
apt-get install
postgresql-9.2
Попробуем поработать с СУБД через оболочку:
sudo -u postgres psql
Создадим тестовую базу данных и тестового пользователя:
CREATE
DATABASE
test_database;
CREATE
USER
test_user WITH
password "qwerty"
;
GRANT
ALL
ON
DATABASE
test_database TO
test_user;
Для выхода из оболочки введите команду \q .
Теперь попробуем поработать с созданной базой данных от имени test_user:
psql -h localhost test_database test_user
Создадим новую таблицу:
CREATE
SEQUENCE
user_ids;
CREATE
TABLE
users (
id INTEGER
PRIMARY
KEY
DEFAULT
NEXTVAL
("user_ids"
)
,
login CHAR
(64
)
,
password CHAR
(64
)
)
;
Обратите внимание, что в отличие от некоторых других СУБД, в PostgreSQL нет столбцов со свойством auto_increment. Вместо этого в постгресе используются последовательности (sequences). На данный момент достаточно знать, что с помощью функции nextval мы можем получать уникальные числа для заданной последовательности:
SELECT NEXTVAL ("user_ids" ) ;
Прописав в качестве значения по умолчанию для поля id таблицы users значение NEXTVAL ("user_ids" ) , мы добились того же эффекта, что дает auto_increment. При добавлении новых записей в таблицу мы можем не указывать id, потому что уникальный id будет сгенерирован автоматически. Несколько таблиц могут использовать одну и ту же последовательность. Таким образом мы сможем гарантировать, что значения некоторых полей у этих таблиц не пересекаются. В этом смысле последовательности более гибки, чем auto_increment.
Точно такую же таблицу можно создать и при помощи всего лишь одной команды:
CREATE
TABLE
users2 (
id SERIAL
PRIMARY
KEY
,
login CHAR
(64
)
,
password CHAR
(64
)
)
;
В этом случае последовательность для поля id создается автоматически.
Теперь с помощью команды \d можно ознакомиться со списком всех доступных таблиц, а с помощью \d users — увидеть описание таблицы users. Если вы не получили интересующую вас информацию, попробуйте \d+ вместо \d . Список баз данных можно получить командой \l , а переключиться на конкретную БД — командой \c dbname . Для отображения справки по командам скажите \? .
Важно отметить, что в PostgreSQL по умолчанию имена таблиц и столбцов приводятся к нижнему регистру. Если это поведение нежелательно, можно воспользоваться двойными кавычками:
CREATE TABLE "anotherTable" ("someValue" VARCHAR (64 ) ) ;
Еще одна особенность PostgreSQL, с которой могут возникнуть сложности в начале работы с этой СУБД — так называемые «схемы». Схема представляет собой что-то вроде пространства имен для таблиц, как бы каталог с таблицами внутри базы данных.
Создание схемы:
CREATE SCHEMA bookings;
Переключение на схему:
SET search_path TO bookings;
Просмотреть список существующих схем можно командой \dn . По умолчанию используется схема с именем public. В принципе, можно успешно использовать PostgreSQL, и не зная про существование схем. Но при работе с унаследованным кодом, а также в некоторых граничных случаях, знание о схемах может очень пригодиться.
В остальном работа с PostgreSQL мало чем отличается от работы с любой другой реляционной СУБД:
INSERT
INTO
users (login,
password)
VALUES
("afiskon"
,
"123456"
)
;
SELECT
*
FROM
users;
Если сейчас вы попытаетесь подключиться к постгресу с другой машины, то потерпите неудачу:
psql -h 192.168.0.1 test_database test_user
Psql: could not connect to server: Connection refused
Is the server running on host "192.168.0.1" and accepting
TCP/IP connections on port 5432?
Чтобы исправить это, добавьте строку:
listen_addresses = "localhost,192.168.0.1"
… в файл /etc/postgresql/9.2/main/postgresql.conf, а также.
История ПОСТГРЕС началась в 1977 г. с базы данных Ingress.
В 1986 г. в университете Беркли, Калифорния, она была переименована в PostgreSQL (произносится «Пост-Грес-Кью-Эль»).
В 1995 г. постгрес стала открытой базой данных. Появился интерактивный psql.
В 1996 г. Postgres95 была переименована в PostgreSQL версии 6.0.
У постгреса несколько сотен разработчиков по всему миру.
Архитектура PostgreSQL
PostgreSQL – унифицированный сервер баз данных, имеющий единый движок – storage engine. Постгрес использует клиент-серверную модель.
Для каждого клиента на сервере создается новый процесс (не поток!). Для работы с такими клиентскими процессами сервер использует семафоры.
Клиентский запрос проходит следующие стадии.
1. Коннект.
2. Парсинг: проверяется корректность запроса и создается дерево запроса (query tree). В основу парсера положены базовые юниксовые утилиты yacc и lex.
3. Rewrite: берется дерево запросов и проверяется наличие в нем правил (rules), которые лежат в системных каталогах. Всякий раз пользовательский запрос переписывается на запрос, получающий доступ к таблицам базы данных.
4. Оптимизатор: на каждый запрос создается план запроса – query plan, который передается исполнителю – executor. Смысл плана в том, что в нем перебираются все возможные варианты получения результата (использовать ли индексы, джойны и т.д.), и выбирается самый быстрый вариант.
5. Выполнение запроса: исполнитель рекурсивно проходит по дереву и получает результат, используя при этом сортировку, джойны и т.д., и возвращает строки.
Постгрес – обьектно-реляционная база данных, каждая таблица в ней представляет класс, между таблицами реализовано наследование. Реализованы стандарты SQL92 и SQL99.
Транзакционная модель построена на основе так называемого multi-version concurrency control (MVCC), что дает максимальную производительность. Ссылочная целостность обеспечена наличием первичных и вторичных ключей.
Организация СУБД PostgreSQL
Как и любая СУБД PostgreSQL должна обслуживать запросы sql и возвращать результаты клиентским приложениям. Для этого механизм СУБД оптимизатор запросов принимает решение об оптимальном использовании ресурсов и строит план запроса. При этом он может опереться на используемых механизмы ускорения работы (индексов, кэшей в памяти, ресурсам процессора, данные статистики и т.д.).
Результаты запросов возвращаются клиентским подключениям
В Windows управляет всем файл службы pg_ctl.exe (останавливает, запускает, перезапускает).
Сам движок базы – это postgres.exe.
Оптимизатор запросов мало подвержен управлению со стороны разработчиков, поэтому к нему вернемся лишь косвенно в разделе анализа быстродействия.
Зато управление дисковым пространством имеет весомое значение. Как и в любой СУБД, для баз данных PostgreSQL лучше использовать RAID 10 для баз данных и отдельный дисковый массив под логии. Применение STORAGE систем может также положительно сказаться на всем быстродействии. Еще одна фича, ускоряющая работу за счет расположения данных на разных дисках, это табличные пространства (tablespaces).
Критически важные для администраторов многогигабайтных хранилищ данных, табличные пространства позволяют размещать большие таблицы и индексы на отдельных дисках или массивах, что повышает производительность запросов.
У PostgreSQL есть особенность в реализации хранения – это так называемый “кластер”. В данном случаи речь идет месте расположения каталога для баз данных. Плюс PostgreSQL организует единую файловую структуру, в которой отдельные файлы не соответствуют непосредственно таблицам или другим объектам базы данных.
При установке вы указываете “кластер” (читай каталог).
Рисунок 6.7.1
При установке PostgreSQL создает системную базу postgres и базу template1 как шаблон настроек для всех новых баз. Обычно в Linux-среде в каталоге /var/postgres/data находится некоторое количество служебных файлов для PostgreSQL, а в каталоге /var/postgres/data/base размещаются базы данных, каждая в своем отдельном каталоге.
К сожалению, реализованный в PostgreSQL способ хранения данных требует дополнительного обслуживания - периодической дефрагментации базы данных командой VACUUM. Примечание. Материализованные запросы (представления пользователя) view платформой не используются.
Размеры базы данных
На данный момент (версия 9.1.2), в PostgreSQL имеются следующие ограничения:
Сильными сторонами PostgreSQL считаются:
1. поддержка БД практически неограниченного размера;
2. мощные и надёжные механизмы транзакций и репликации;
3. расширяемая система встроенных языков программирования: в стандартной поставке оддерживаются PL/pgSQL, PL/Perl, PL/Python и PL/Tcl;
4. можно использовать PL/Java, PL/PHP, PL/Py, PL/R, PL/Ruby, PL/Schemeи PL/sh, а также имеется поддержка загрузки C-совместимых модулей;
5. наследование;
6. легкая расширяемость.
Утилита администрирования баз данных PostgreSQL pgAdmin - графическая оболочка проектирования и административная СУБД PostgreSQL для Unix и системы Windows.
Рисунок 6.7.2
Pgadmin пишется на языке программирования C и использует превосходный пакет разработчика платформы wxWidgets (когда-то wxWindows). pgAdmin распространяется по лицензии PostgreSQL, т.е. также является свободным ПО.
Postgres Pro - Российская СУБД, разработанная компанией Postgres Professional на основе свободно-распространяемой СУБД PostgreSQL. Postgres Pro входит в реестр российского ПО (см https://reestr.minsvyaz.ru/reestr/65273/)
Таким образом, клиенты могут получить доступ к полезной для них функциональности и получить выигрыш в производительности, не дожидаясь нового релиза PostgreSQL (что может занимать примерно год). Как авторы, мы предоставляем поддержку для всех наших разработок. Как представители международного сообщества разработчиков PostgreSQL, мы предоставляем также коммерческую поддержку свободно распрстраняемой СУБД PostgreSQL.
СУБД | Postgres Pro Enterprise | Postgres Pro Standard | PostgreSQL |
---|---|---|---|
Коммерческая СУБД, разработанная Postgres Professional для ответственных приложений и высоких нагрузок. | Российская СУБД с открытым кодом, разработанная компанией Postgres Professional на основе свободно-распространяемой СУБД PostgreSQL | Свободно-распространяемая СУБД, разработанная международным сообществом. | |
Единый Реестр российского ПО | ✓ | ✓ | |
64-разрядный счетчик транзакций | ✓ | ||
Инкрементальный бэкап на уровне блоков | ✓ | ||
Сертификат ФСТЭК СВТ 5, НДВ 4 | ✓ | ✓ | |
Автономные транзакции | ✓ | ||
Секционирование таблиц | ✓ | ✓ | ✓ |
Компрессия данных | ✓ | ||
Мультимастер | ✓ | ||
Поддержка 1С | ✓ | ✓ | ✓ |
Переносимые таблицы | ✓ | ||
Хинты планировщика | ✓ | ||
Номер версии Postgres Pro строится из номера версии PostgreSQL с дополнением одного разряда, обозначающего номер текущего выпуска. При выходе новой минорной версии PostgreSQL (обычно это происходит при появлении патчей, связанных с безопасностью и исправлением серьезных ошибок), нумерация Postgres Pro сбрасывается на единицу. Например, при выходе PostgreSQL 9.5.1 выходит PostgresPro 9.5.1.1, затем до появления PostgreSQL 9.5.2 может выйти Postgres Pro 9.5.1.2, 9.5.1.3 и т.д. При выходе PostgreSQL 9.5.2 Postgres Pro обновится до версии 9.5.2.1 и т.д.
Одновременно с выпуском исходного кода Postgres Pro мы публикуем наши сборки в виде пакетов под различные платформы. Это следующие операционные системы и их версии:
Базы данных Postgres Pro 9.5.*.* совместимы с PostgreSQL 9.5.* При переходе с 9.5 dump/restore не требуется. При переходе с более ранних версий PostgreSQL необходимо использование dump/restore или pg_upgrade.
Текущая версия Postgres Pro Standard - 11.2.1 . Дата выпуска - 28 марта 2019. .
В Postgres Pro Standard по сравнению с актуальной версией PostgreSQL на текущий момент вошли следующие изменения:
Более подробно с различиями PostgreSQL и Postgres Pro можно познакомиться в Таблице сопоставления продуктов.
Postgres Pro Standard распространяется по лицензии PostgreSQL с дополнениями Postgres Professional:
Portions Copyright (c) 2015-2019, Postgres Professional Предоставляются права на использование, копирование, изменение и распространение данного программного обеспечения и его документации для целей тестирования, разработки ПО, ознакомления с функциональностью СУБД, использования в образовательном процессе бесплатно и без подписания какого-либо соглашения, при условии что для каждой копии будут предоставлены данное выше замечание об авторских правах, текущий абзац и четыре следующих абзаца. Использование в других целях, встраивание в другие продукты, тиражирование и прочие действия требуют приобретения отдельной лицензии. Калифорнийский университет не несет никакой ответственности за любые повреждения, включая потерю дохода, нанесенные прямым или непрямым, специальным или случайным использованием данного программного обеспечения или его документации, даже если Калифорнийский университет был извещен о возможности таких повреждений. Калифорнийский университет специально отказывается предоставлять любые гарантии, включая, но не ограничиваясь только этими гарантиями: неявные гарантии пригодности товара или пригодности для отдельной цели. Данное программное обеспечение предоставляется на основе принципа "как есть" и Калифорнийский университет не обязан предоставлять сопровождение, поддержку, обновления, расширения или изменения. Общество с ограниченной ответственностью "Постгрес Профессиональный" (Postgres Professional) не несет никакой ответственности за любые повреждения, включая потерю дохода, нанесенные прямым или непрямым, специальным или случайным использованием данного программного обеспечения или его документации, даже если общество с ограниченной ответственностью "Постгрес Профессиональный" было извещено о возможности таких повреждений. Общество с ограниченной ответственностью "Постгрес Профессиональный" (Postgres Professional) специально отказывается предоставлять любые гарантии, включая, но не ограничиваясь только этими гарантиями: неявные гарантии пригодности товара или пригодности для отдельной цели. Данное программное обеспечение предоставляется на основе принципа "как есть" и общество с ограниченной ответственностью "Постгрес Профессиональный" не обязано предоставлять сопровождение, поддержку, обновления, расширения или изменения. |
Postgres Pro - Российская СУБД, разработанная компанией Postgres Professional на основе свободно-распространяемой СУБД PostgreSQL. Postgres Pro входит в реестр российского ПО (см https://reestr.minsvyaz.ru/reestr/65273/)
Таким образом, клиенты могут получить доступ к полезной для них функциональности и получить выигрыш в производительности, не дожидаясь нового релиза PostgreSQL (что может занимать примерно год). Как авторы, мы предоставляем поддержку для всех наших разработок. Как представители международного сообщества разработчиков PostgreSQL, мы предоставляем также коммерческую поддержку свободно распрстраняемой СУБД PostgreSQL.
СУБД | Postgres Pro Enterprise | Postgres Pro Standard | PostgreSQL |
---|---|---|---|
Коммерческая СУБД, разработанная Postgres Professional для ответственных приложений и высоких нагрузок. | Российская СУБД с открытым кодом, разработанная компанией Postgres Professional на основе свободно-распространяемой СУБД PostgreSQL | Свободно-распространяемая СУБД, разработанная международным сообществом. | |
Единый Реестр российского ПО | ✓ | ✓ | |
64-разрядный счетчик транзакций | ✓ | ||
Инкрементальный бэкап на уровне блоков | ✓ | ||
Сертификат ФСТЭК СВТ 5, НДВ 4 | ✓ | ✓ | |
Автономные транзакции | ✓ | ||
Секционирование таблиц | ✓ | ✓ | ✓ |
Компрессия данных | ✓ | ||
Мультимастер | ✓ | ||
Поддержка 1С | ✓ | ✓ | ✓ |
Переносимые таблицы | ✓ | ||
Хинты планировщика | ✓ | ||
Номер версии Postgres Pro строится из номера версии PostgreSQL с дополнением одного разряда, обозначающего номер текущего выпуска. При выходе новой минорной версии PostgreSQL (обычно это происходит при появлении патчей, связанных с безопасностью и исправлением серьезных ошибок), нумерация Postgres Pro сбрасывается на единицу. Например, при выходе PostgreSQL 9.5.1 выходит PostgresPro 9.5.1.1, затем до появления PostgreSQL 9.5.2 может выйти Postgres Pro 9.5.1.2, 9.5.1.3 и т.д. При выходе PostgreSQL 9.5.2 Postgres Pro обновится до версии 9.5.2.1 и т.д.
Одновременно с выпуском исходного кода Postgres Pro мы публикуем наши сборки в виде пакетов под различные платформы. Это следующие операционные системы и их версии:
Базы данных Postgres Pro 9.5.*.* совместимы с PostgreSQL 9.5.* При переходе с 9.5 dump/restore не требуется. При переходе с более ранних версий PostgreSQL необходимо использование dump/restore или pg_upgrade.
Текущая версия Postgres Pro Standard - 11.2.1 . Дата выпуска - 28 марта 2019. .
В Postgres Pro Standard по сравнению с актуальной версией PostgreSQL на текущий момент вошли следующие изменения:
Более подробно с различиями PostgreSQL и Postgres Pro можно познакомиться в Таблице сопоставления продуктов.
Postgres Pro Standard распространяется по лицензии PostgreSQL с дополнениями Postgres Professional:
Portions Copyright (c) 2015-2019, Postgres Professional Предоставляются права на использование, копирование, изменение и распространение данного программного обеспечения и его документации для целей тестирования, разработки ПО, ознакомления с функциональностью СУБД, использования в образовательном процессе бесплатно и без подписания какого-либо соглашения, при условии что для каждой копии будут предоставлены данное выше замечание об авторских правах, текущий абзац и четыре следующих абзаца. Использование в других целях, встраивание в другие продукты, тиражирование и прочие действия требуют приобретения отдельной лицензии. Калифорнийский университет не несет никакой ответственности за любые повреждения, включая потерю дохода, нанесенные прямым или непрямым, специальным или случайным использованием данного программного обеспечения или его документации, даже если Калифорнийский университет был извещен о возможности таких повреждений. Калифорнийский университет специально отказывается предоставлять любые гарантии, включая, но не ограничиваясь только этими гарантиями: неявные гарантии пригодности товара или пригодности для отдельной цели. Данное программное обеспечение предоставляется на основе принципа "как есть" и Калифорнийский университет не обязан предоставлять сопровождение, поддержку, обновления, расширения или изменения. Общество с ограниченной ответственностью "Постгрес Профессиональный" (Postgres Professional) не несет никакой ответственности за любые повреждения, включая потерю дохода, нанесенные прямым или непрямым, специальным или случайным использованием данного программного обеспечения или его документации, даже если общество с ограниченной ответственностью "Постгрес Профессиональный" было извещено о возможности таких повреждений. Общество с ограниченной ответственностью "Постгрес Профессиональный" (Postgres Professional) специально отказывается предоставлять любые гарантии, включая, но не ограничиваясь только этими гарантиями: неявные гарантии пригодности товара или пригодности для отдельной цели. Данное программное обеспечение предоставляется на основе принципа "как есть" и общество с ограниченной ответственностью "Постгрес Профессиональный" не обязано предоставлять сопровождение, поддержку, обновления, расширения или изменения. |