PostgreSQL: более пристальный взгляд на объектно-реляционную систему управления базами данных

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

Что такое PostgreSQL?

История развития PostgreSQL насчитывает 30 лет. Истоки объектно-реляционной системы управления базами данных (ORDBMS) восходят к проекту POSTGRES Калифорнийского университета в Беркли. Он начался в 1986 году под руководством Майкла Стоунбрейкера и спонсировался, в частности, Агентством перспективных оборонных исследовательских проектов (DARPA) и Национальным научным фондом (NSF). В 1994 году студенты Эндрю Ю и Джолли Чен расширили базовый код, включив в него интерпретатор SQL. Эта новая и примерно на 30-50% более быстрая модификация была выпущена как решение с открытым исходным кодом под названием Postgres95 (по их собственной лицензии, которая аналогична лицензиям BDS и MIT). Два года спустя приложение базы данных с версией 6.0 получило название PostgreSQL, под которым оно известно и сегодня.

Примечание

Помимо нового названия PostgresSQL, для системы баз данных все еще используется оригинальное название Postgres (которое теперь редко пишется с заглавной буквы), вероятно, из-за того, что его легче произносить.

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

  • Возможность сложных запросов
  • Внешние ключи для связывания данных в двух таблицах
  • Триггеры, которые автоматически срабатывают при вводе данных и проверяют, подтверждают, изменяют, удаляют или выборочно используют справочные данные
  • Обновляемые представления
  • Комплексная концепция транзакций
  • Многоверсионный контроль параллелизма (MVCC) для эффективного выполнения одновременного доступа к базе данных

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

Postgres: основные данные и системные требования

Гибкость PostgreSQL проявляется не только в ее функциональности, расширяемости и адаптивности: база данных также предоставляет широкие возможности для настройки программного и аппаратного обеспечения. Postgres уже включен в большинство дистрибутивов UNIX/Linux, а начиная с Mac OS X Lion (10.7) компания Apple поставляет его в качестве стандартной базы данных. Единственным требованием является установка актуальной версии «gmake» (3.80 или выше) (уже включена в готовые бинарные файлы). Операционные системы Windows также могут быть выбраны в качестве платформы для системы благодаря соответствующим установочным пакетам. Необходимая вычислительная мощность и объем памяти зависят только от размера планируемой системы баз данных — само программное обеспечение с открытым исходным кодом требует всего около 20 МБ.

Приведенные ниже ключевые данные объектно-реляционной базы данных показывают, что на практике вы больше ограничены собственными возможностями хранения данных, чем ограничениями PostgreSQL:

Максимальный размер базы данных

неограниченно

Максимальный размер таблицы

32 терабайта

Максимальный размер набора данных 

1,6 терабайта

Максимальный размер поля

1 гигабайт

Максимальное количество столбцов

От 250 до 1 600 (в зависимости от типа данных)

Максимальное количество строк 

неограниченно

Максимальное количество индексов

неограниченно

Как работает PostgreSQL?

Postgres основан на типичной модели клиент-сервер: Центральный компонент сервера, называемый «postmaster», управляет всеми файлами базы данных и всеми соединениями, которые устанавливаются для связи (ввода и вывода) с сервером базы данных. Пользователям требуется только подходящая клиентская программа для установления соединения, при этом в программный пакет PostgreSQL с psql уже встроено решение для работы через командную строку или терминал. В качестве альтернативы можно использовать различные приложения с графическим интерфейсом пользователя, такие как pgAdmin или phpPgAdmin, которые можно установить и использовать по желанию. При работе с интерактивными веб-сайтами веб-сервер обычно берет на себя роль клиента.

Совет

Многие дистрибутивы Linux включают свой собственный графический клиент Postgres с pgAccess.

Для каких проектов подходит PostgreSQL?

Как проверенная и чрезвычайно гибкая система управления базами данных, Postgres используется в многочисленных отраслях и сценариях. Объектно-реляционная база данных является первоклассной основой для безопасной работы самых разных приложений. Например, проект с открытым исходным кодом является идеальным решением для программного обеспечения онлайн-банкинга благодаря интегрированной концепции транзакций и поддержке MVCC (multi-version concurrency control: процедура для эффективного выполнения конкурирующего доступа). Программы анализа, такие как Matlab или R, также хорошо работают с базой данных, поэтому PostgreSQL часто используется в сочетании с этими программами. В сочетании с расширением PostGIS (которое предоставляет сотни функций для работы с геоданными), Postgres также впечатляет, когда речь идет о работе с пространственными и географическими данными.

PostgreSQL также востребован в качестве решения для веб-проектов: Объектно-реляционная система работает с различными современными фреймворками, такими как Django, Node.js или Ruby on Rails, и поддерживает классические веб-языки, такие как PHP. Поддержка синхронной и асинхронной репликации также позволяет легко распределять хранимые данные по нескольким серверам для обеспечения высокой отказоустойчивости и минимального времени доступа к критически важным данным.

Обратите внимание на .

Полезная поддержка JSON также делает PostgreSQL отличной базой данных для масштабирования рабочих нагрузок NoSQL.

Как установить PostgreSQL

Если вы хотите использовать Postgres для своего проекта, вы можете установить систему управления базами данных самостоятельно в несколько шагов без необходимости приобретения лицензии или чего-то подобного. Портал загрузки официального сайта PostgreSQL предлагает бинарные файлы и ссылки на репозитории исходных пакетов для BSD, Linux, macOS, Solaris и Windows, которые можно установить и использовать бесплатно по лицензии с открытым исходным кодом. Root-права для этого не требуются: для выполнения достаточно простых прав администратора. В следующих двух разделах показано, как следует устанавливать PostgreSQL на Linux (Ubuntu 17.10) и Windows.

Установка PostgreSQL на Linux (Ubuntu 17.10)

APT-репозиторий Postgres официально поддерживает LTS-версию Ubuntu (начиная с 14.04 и далее), а также другие, такие как Ubuntu 17.04. Исходные пакеты часто работают и с другими версиями. Однако команда PostgreSQL рекомендует использовать наиболее актуальный вариант LTS, чтобы гарантировать пользователям максимальную долгосрочную отдачу от системы управления базами данных. Поскольку пакеты уже включены в стандартный репозиторий Ubuntu, вы можете легко установить их с помощью менеджера пакетов APT.

sudo apt-get update
sudo apt-get install postgresql postgresql-contrib

PostgreSQL устанавливается с помощью этой команды. Программа автоматически создает пользователя Linux с именем «postgres» для доступа к базе данных. В целях безопасности его следует использовать только для работы с базой данных. Также рекомендуется на первом этапе назначить пароль для этого профиля (поскольку по умолчанию он не введен). Для этого достаточно ввести следующую команду, а затем дважды ввести выбранный вами пароль:

sudo passwd postgres

Помимо пользователя «postgres» Linux, существует также пользователь базы данных с тем же именем, который необходим для администрирования базы данных и также должен быть защищен надежным паролем. Это можно сделать, введя следующие команды терминала («new-password» является обозначением желаемого пароля и должен быть заменен соответствующим образом):

su - postgres
psql -d template1 -c "ALTER USER postgres WITH PASSWORD 'neues-passwort';"

Чтобы проверить успешность установки, необходимо создать базу данных (здесь: testdb) с учетной записью «postgres» Linux и управлять ею с помощью терминального клиента psql:

su - postgres
createdb testdb
psql testdb

В терминале вы можете увидеть вот такой вывод клиентской оболочки psql, с которой можно работать с любыми командами SQL:

Установка PostgreSQL на Windows

Установка Postgres на компьютерах под управлением Windows проста благодаря интерактивной программе установки, сертифицированной EnterpriseDB. Бесплатный помощник по установке производителя программного обеспечения, который предлагает дополнительные инструменты, а также коммерческую поддержку PostgreSQL, доступен для загрузки с собственного сайта компании. Просто выберите нужную версию системы управления базами данных и целевую платформу, а затем нажмите на кнопку «DOWNLOAD NOW».

Загруженную программу установки можно запустить двойным щелчком мыши. Прежде всего, он устанавливает компилятор Visual C++ от Microsoft, если он еще не установлен в системе. Выберите местоположение PostgreSQL, после чего у вас есть возможность исключить установку отдельных компонентов инсталляционного пакета. В любом случае, сервер PostgreSQL и инструменты командной строки являются обязательными — графический клиент pgAdmin и Stack Builder (для простой загрузки и установки расширений) не являются обязательными, но значительно облегчают работу с системой управления базами данных.

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

После успешной установки соединение с сервером PostgreSQL можно установить в несколько шагов через пользовательский интерфейс pgAdmin (если он установлен). Для этого щелкните правой кнопкой мыши на настроенной версии Postgres в списке серверов, а затем нажмите «Подключить сервер».

После ввода ранее назначенного пароля для учетной записи администратора «Postgres» клиент инициирует подключение.

Преимущества и недостатки PostgreSQL с первого взгляда

Преимущества

Недостатки

Открытый исходный код

По умолчанию доступен не на всех хостах

Высокая расширяемость

Расширяемая документация доступна только на английском языке

В значительной степени соответствует стандарту SQL

Сравнительно низкая скорость чтения

Возможность обработки сложных типов данных (например, географических данных)

 

Гибкий полнотекстовый поиск

 

Возможность создания собственных функций, триггеров, типов данных и т.д.

 

Хорошая языковая поддержка (Python, Java, Perl, PHP, C, C++ и т.д.)

 

Поддерживает JSON

 

Кросс-платформенный

 

Оцените статью
cdelat.ru
Добавить комментарий