Перейти к основному содержимому

Основы архитектуры

примечание

Эта страница переведена при помощи нейросети GigaChat.

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

На языке баз данных PostgreSQL использует модель клиент/сервер. Сессия PostgreSQL состоит из следующих взаимодействующих процессов (программ):

  • Серверный процесс, который управляет файлами базы данных, принимает соединения с базой данных от клиентских приложений и выполняет действия с базой данных от имени клиентов. Программа-сервер базы данных называется postgres.

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

Как и в случае клиентских/серверных приложений, клиент и сервер могут находиться на разных хостах. В этом случае они взаимодействуют через сетевое соединение TCP/IP. Необходимо помнить об этом, поскольку файлы, доступные на клиентской машине, могут быть недоступны (или доступны только с другим именем файла) на машине сервера баз данных.

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