Включите исполнение JavaScript в браузере, чтобы запустить приложение.
11 фев 2025

PostgreSQL: что это за СУБД и как ей пользоваться

В статье читайте о преимуществах и недостатках СУБД PosrgreSQL, а также о том, какие задачи можно решить с ее помощью. Объясняем порядок действий в начале работы в Windows и Linux, рассказываем о базовых командах.

PostgreSQL: что это такое

PostgreSQL — это система управления базами данных (СУБД) с открытым исходным кодом на языке С. Она считается наиболее развитой среди существующих бесплатных версий. Согласно исследованию Stack Overflow за 2023 год, в котором приняли участие более 60 000 профессиональных разработчиков, эта БД находится на первом месте по популярности.

Интересно, что у СберТеха есть собственная специальная версия Постгрес — Platform V Pangolin SE. Она зарегистрирована в Едином реестре российских программ для ЭВМ и баз данных. На момент подготовки статьи последняя версия этой реляционной СУБД промышленного уровня с маркировкой 6.1.6. Продукт выпускается в том числе под альтернативными названиями, где после основного наименования идет уточнение его специфики — Enterprise, Standart, Lite, Standart для ERP-систем, Enterprise для ERP-систем.

СУБД PostgreSQL позволяет:

  • работать с реляционным и объектно-ориентированным моделированием данных;
  • создавать, изменять, удалять записи;
  • отправлять транзакции — совокупность последовательных запросов на языке SQL.

Какие задачи решает PostgreSQL

Данная система управления востребована ИT-разработчиками разных уровней за счет ее гибкости, надежности, бесплатного доступа. В отличие от своего соперника (MySQL) постгрес SQL имеет более широкую сферу применения, может поддерживать значительный набор приложений. В настоящее время это единственный полноценный независимый проект, права на который принадлежат международному сообществу разработчиков. Эта СУБД подходит для бизнеса разного уровня, так как свободная модель распространения позволяет включать ее в любые решения коммерческого или некоммерческого характера. 

Например, PostgreSQL внедрена в продукты Yahoo, Яндекс, Huawei, FlightAware, Tripadvisor. То есть это хороший выбор в том числе для компаний, которые работают со значительными и потенциально бесконечно масштабируемыми базами данных. 

Система востребована:

  • разработчиками баз данных и администраторами, которые отвечают за поддержку работоспособности БД и ее обслуживание;
  • backend-разработчиками, в сфере ответственности которых находится «серверная» составляющая сайта;
  • DevOps-инженерами, занимающимися обслуживанием рабочей инфраструктуры проекта.

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

Используя возможности программы, можно:

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

В настоящее время в сфере информационных технологий активно внедряется импортозамещение. Поэтому неудивительно, что постгрес нашел применение в том числе в крупных госпроектах. Так, на базе свободной объектно-реляционной СУБД PostgreSQL была построена СУБД Postgre Pro Enterprise. В 2024 году этот продукт был добавлен на облачную платформу «ГосТех» как рекомендованный для использования в государственных информационных системах (ГИС).

Преимущества и недостатки PostgreSQL

Плюсы СУБД

У этой системы управления весьма внушительный перечень достоинств. Ниже перечисляем наиболее важные среди них.

  • Бесплатный доступ и открытый исходный код. Пользователи могут самостоятельно изменять и исправлять программное обеспечение. За продуктом стоит большое сообщество единомышленников, благодаря чему любые выявленные ошибки в программировании могут быть исправлены за считанные часы. Так как кодовая база поддерживается всемирным сообществом под руководством экспертов, на выходе получается надежный, проверенный код, свободный от проприетарных хуков.
  • Внушительный набор типов данных. Например, в этот перечень входит полнотекстовый поиск, сетевые адреса, выполнение различных геометрических операций, в том числе масштабирования, вращения, определения пересечений. При необходимости администратор может добавить новые типы данных, прописав процедуры и функции на требуемом языке программирования — Python, Java или ином. Также возможности этой СУБД позволяют выполнять загрузку модулей из PGXN — центральной системы распространения библиотек расширений PostgreSQL с открытым исходным кодом.
  • Ускорение производительности. Рост этого параметра достигается посредством использования различных блокировок на уровне отдельных строк и самих таблиц. Также в программу внедрена функция наследования таблиц и полнотекстовый поиск — это значительно ускоряет работу с информацией. 

Для оптимизации текущих процессов администратор может использовать пул специальных команд. Так, отследить, с какой скоростью СУБД выполняет запросы, поможет команда explain. Собрать достоверную статистическую информацию можно, используя запрос analyze.

  • Подробное пользовательское руководство. Что особенно важно — для каждой версии системы предусмотрена отдельная инструкция. Например, можно ознакомиться с документацией по последней версии PostgresSQL 16.2, а также с ее более ранними аналогами. Если этого недостаточно, в случае появления проблем можно обратиться в круглосуточную техподдержку. В среднем время отклика оператора составляет около одного часа.

Техническая поддержка работает только для актуальных версий СУБД. Так, для 12 релиза она станет недоступной после 14 ноября 2024 года, а 16 выпуск будет обслуживаться вплоть до 25 сентября 2028 года.

  • Безопасность. Управление доступом осуществляется на разных уровнях — например, это может быть роль владельца таблиц и функций или роль человека, которому предоставлено разрешение на работу с конкретными объектами БД. Для защиты информации используется целый ряд инструментов: от классических паролей и сетевых протоколов аутентификации до аппаратного шифрования данных.
  • Кроссплатформенность. Postgres можно внедрить в различные ОС, включая Windows, Linux, macOS. Такая разноплановость была достигнута благодаря реализации интерфейсов системы на самых разных языках программирования.
  • Широкий спектр возможностей за счет поддержки разных форматов данных. Помимо стандартных чисел, строк, булевых типов, в СУБД есть поддержка XML, JSON, JSONB, а также возможность создавать пользовательские типы данных для упрощения работы с БД или установки ограничений.

Минусы СУБД

Их немного, все они преимущественно касаются конкретных сценариев и не оказывают плохого влияния на работу системы в целом.

  • Ограниченное количество функций. Несмотря на разноплановость функциональность PostgreSQL может оказаться немного ниже, чем у коммерческих аналогов.
  • Значительное потребление памяти и процессорного времени. Это явление обычно наблюдается при обработке сложных запросов или внушительных объемов информации.
  • Проблемы с настройкой у начинающих пользователей. Чтобы настроить PostgreSQL, нужно хорошо разбираться в возможных конфигурациях, глубоко понимать архитектуру, учитывать влияние конкретных параметров. 

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

От POSTGRES к PostgreSQL: как это происходило

Прототипом современной системы управления базами данных послужил написанный в 1986 году в Калифорнийском университете Беркли POSTGRES, первая версия которого была выпущена в 1987 году. Правила, прописанные в системе, оказались сырыми, поэтому проект был отправлен на переделку. Второй релиз был выпущен в июне 1990 г., а третий — в 1991 году. В нем была изменена система правил, появился улучшенный отклик по запросам, поддержка разных менеджеров хранилища. 

Интерпретатор языка SQL был добавлен в Postgres в 1994 году, а в 1995 г. для программы было выбрано новое имя — PostgreSQL. Разработки по внесению ключевых изменений на этом не закончились. Новые релизы СУБД продолжают регулярно радовать пользователей. Самая последняя версия соответствует выпуску 16.2.

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

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

  • Linux;
  • macOS;
  • Windows;
  • BSD;
  • Solaris.

Чтобы загрузить нужный релиз, перейдите на главную страницу сайта postgresql.org, нажмите кнопку «Скачать», выберите ваш тип ОС, кликните на линк «Установщик для всех поддерживаемых версий PostgreSQL», а затем на соответствующую ссылку для скачивания. 

Обратите внимание, что для 32-разрядной Windows доступен релиз не выше версии 10.23. То есть последнее обновление 16.2 можно поставить только при наличии 64-разрядной ОС.

Установка в Windows

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

Нажмите Next, в новом окне укажите элементы, которые вы хотите установить. Если какие-то из компонентов вам не нужны, уберите с них галочку. 

Установщик предполагает загрузку четырех компонентов:

  • PostgreSQL Server — сервер базы данных;
  • pgAdmin 4 — графический интерфейс для управления и работы с базами данных и серверами;
  • Stac Builder — необходим для загрузки и установки дополнительных инструментов, драйверов, приложений;
  • Command Line Tools — опция установки инструментов командной строки обязательна при установке сервера или pgAdmin 4.

Выберите каталог, в котором будут храниться сведения, придумайте пароль и повторите его. Укажите номер порта, который должен обслуживать сервер — установщик подставляет его автоматически. Выберите расположение для нового кластера БД. Проверьте краткое описание в окне предварительной установки, нажмите Next для начала переноса системы на ваш компьютер.

Когда установка завершится, запустите pgAdmin, перейдите во вкладку Servers, введите пользовательский пароль. После появления дашборда во вкладке Query Tool введите запрос «select version ()». В нижней части экрана должен появиться ответ с указанием текущей версии postgres.

Установка и настройка в Linux

Присвойте себе права суперпользователя, переключившись на пользователя root с помощью команды sudo-i. Зайдите в Bash, чтобы актуализировать репозитории, а затем установите СУБД. 

Создайте базу данных, нового пользователя, передайте ему все права, выйдите из оболочки с помощью комбинации на клавиатуре «Ctrl+D».

Зайдите в репозиторий поставщика, установите открытый ключ GPG, создайте файл конфигурации для передачи информации по установке пакетов утилите apt, установите pgAdmin 4.

Подготовьте pgAdmin к работе с помощью соответствующего скрипта, укажите пароль, электронную почту. После обновления настроек запустите графический интерфейс и подключите его к серверу, кликнув на иконку Add New Server. Введите имя сервера, в настройках заполните host name, а также пароль и имя пользователя, которые вы придумали раньше. Найдите в открывшемся окне вкладку Query Tool, введите запрос «select version ()». Если вы получили ответ с указанием текущей версии СУБД, все сделано верно.

Команды в СУБД

Для создания новых элементов используется типовая команда Creat. Например, Creat Language или Creat table. Создавайте таблицы, последовательности в БД, пользователя, языки, триггеры, индексы для столбцов таблицы.

Для работы с таблицами применяют три основные команды. Чтобы выбрать необходимые записи, нужно ввести команду Select. Для удаления информации — Delete, а для ее обновления — Update. 

Чтобы удалить элементы из СУБД, пользователю нужно задать команду Drop. Например, Drop Database или Drop Table. Для предоставления доступа к отдельным объектам или всей БД используется команда Grant. Для отката предоставленных разрешений — Revoke.

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