Приложение N. Глоссарий

Ниже представлен перечень терминов с описанием их значений в контексте PostgreSQL и реляционных баз данных вообще.

ACID

Atomicity (Атомарность), Consistency (Согласованность), Isolation (Изолированность) и Durability (Надёжность). Этот набор свойств транзакций в базе данных должен гарантировать корректность операций при параллельном выполнении, а также в случае ошибок, при отключении питания и т. п.

DELETE

SQL-команда, которая удаляет строки из данной таблицы или отношения.

Подробности в описании DELETE.

GRANT

SQL-команда, дающая пользователю или роли доступ к определённым объектам в базе данных.

Подробности в описании GRANT.

INSERT

SQL-команда, добавляющая в таблицу новые данные.

Подробности в описании INSERT.

LSN

См. Последовательный номер в журнале.

MERGE

Команда SQL для добавления, изменения или удаления строк с определёнными условиями в заданной таблице с использованием данных из исходного отношения.

Подробности в описании MERGE.

NULL

Понятие неопределённости, выражаемой как NULL, является ключевым в теории реляционных баз данных. Оно обозначает отсутствие какого-либо определённого значения.

REVOKE

Команда, лишающая указанные роли доступа к определённому набору объектов базы данных.

Подробности в описании REVOKE.

ROLLBACK

Команда, отменяющая все операции, выполненные с начала транзакции.

Подробности в описании ROLLBACK.

SELECT

SQL-команда, позволяющая запросить данные из базы. Обычно команды SELECT не должны изменять состояние базы никаким образом, однако выполняемые ими запросы могут вызывать функции, в качестве побочного эффекта меняющие данные.

Подробности в описании SELECT.

SQL-объект

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

Большинство локальных объектов находятся в определённых схемах в соответствующей базе, как например отношения (любых видов), подпрограммы (любых видов), типы данных и т. д. Имена объектов одного вида в отдельной схеме должны быть уникальными.

Кроме того, существуют локальные объекты, находящиеся вне схем, например расширения, приведения типов данных и обёртки сторонних данных. Имена таких объектов одного вида должны быть уникальными в базе данных.

Другие виды объектов, а именно роли, табличные пространства, источники репликации, подписки логической репликации, а также сами базы данных не являются локальными SQL-объектами, так как они существуют вне какой-либо отдельной базы; они называются глобальными объектами. Имена таких объектов должны быть уникальными во всём кластере баз данных.

Подробности в Разделе 21.1.

TOAST

Механизм, который обеспечивает хранение больших атрибутов строк таблицы, размещая их в дополнительной TOAST-таблице. У каждого отношения с большими атрибутами имеется собственная TOAST-таблица.

Подробности в Разделе 70.2.

UPDATE

SQL-команда, вносящая изменения в уже существующие строки определённой таблицы. Эта команда не добавляет и не удаляет строки.

Подробности в описании UPDATE.

WAL

См. Журнал предзаписи.

Автоочистка (autovacuum)

Набор фоновых процессов, регулярно выполняющих операции очистки и анализа. Вспомогательный процесс, который координирует работу и существует всегда (если не отключена автоочистка), называется «autovacuum launcher» (процесс запуска автоочистки), а каждый процесс, который запускается для выполнения задач, называется «autovacuum worker» (рабочий процесс автоочистки).

Подробности в Подразделе 23.1.6.

Агрегатная функция (подпрограмма)

Функция, которая сводит к одному значению (агрегирует) множество входных значений, например, подсчитывая их количество, складывая их или вычисляя среднее.

Подробности в Разделе 9.21.

См. также Оконная функция (подпрограмма).

Анализ (операция)

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

(Не путайте этот термин с указанием ANALYZE команды EXPLAIN.)

Подробности в ANALYZE.

Аналитическая функция

См. Оконная функция (подпрограмма).

Атомарность

Свойство транзакции, которое заключается в том, что в результате транзакции все её операции выполняются вместе, либо не выполняются совсем. Кроме того, частичные изменения исключены в случае сбоя системы в процессе выполнения транзакции. Это одно из свойств ACID.

Атомарный

Применительно к данным означает, что элемент данных нельзя разделить на меньшие части.

Применительно к транзакциям в базах данных см. атомарность.

Атрибут

Элемент с определённым именем и типом данных, содержащийся в кортеже.

База данных

Именованный набор локальных SQL-объектов.

Подробности в Разделе 21.1.

Базовая резервная копия

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

Блокировка

Механизм, позволяющий некоторому процессу ограничивать или запрещать параллельный доступ к ресурсу.

Ведомый (резервный) сервер

См. Реплика.

Ведущий (главный) сервер

См. Ведущий (сервер).

Ведущий (сервер)

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

Владелец кластера

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

В операционных системах с пользователем root указанному пользователю запрещается быть владельцем кластера.

Внешний ключ

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

Временная таблица

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

Подробности в описании CREATE TABLE.

Вспомогательный процесс

Процесс, относящийся к экземпляру СУБД и отвечающий за определённую фоновую задачу для этого экземпляра. К числу вспомогательных процессов относятся процесс запуска автоочистки (но не рабочие процессы автоочистки), процесс фоновой записи, процесс контрольных точек, процесс протоколирования, процесс запуска, процесс архивации WAL, процесс-приёмник WAL (но не процессы-передатчики WAL) и процесс записи WAL.

Домен

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

Подробности в Разделе 8.18.

Журнал предзаписи

Журнал, в котором отслеживаются изменения в кластере баз данных, производимые при выполнении операций пользователями и самой системой. Он содержит множество отдельных записей WAL, вносимых последовательно в файлы WAL.

Журналируемое отношение

Таблица считается журналируемой, если вносимые в неё изменения проходят через WAL. По умолчанию все обычные таблицы являются журналируемыми. Таблицу можно сделать нежурналируемой либо во время создания, либо выполнив команду ALTER TABLE.

Запись

См. Кортеж.

Запись WAL

Низкоуровневое описание отдельного изменения данных. Оно содержит достаточно информации для воспроизведения (повторного применения) этого изменения в случае сбоя системы до переноса изменения в базу. В записях WAL используется непечатаемый двоичный формат.

Подробности в Разделе 28.6.

Запись журнала

Устаревшее название записи WAL.

Запрос

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

Идентификатор транзакции

Числовой уникальный идентификатор, последовательно назначаемый каждой транзакции при первой операции, меняющей данные. Часто он сокращённо обозначается xid. Когда эти идентификаторы хранятся на диске, каждый занимает всего 32 бита, поэтому только около 4 миллиардов пишущих транзакций могут получить уникальные идентификаторы. Чтобы система баз данных могла работать дольше, дополнительно используется эпоха, которая также имеет размер 32 бита. Когда счётчик транзакций достигает максимально возможного значения, он сбрасывается до 3 (меньшие значения зарезервированы) и значение эпохи увеличивается на 1. В некоторых контекстах значения эпохи и xid рассматриваются вместе как одна 64-битная величина; за подробностями обратитесь к Разделу 71.1.

Подробности в Разделе 8.19.

Изолированность

Свойство, которое заключается в том, что результаты транзакции не видны для параллельных транзакций, пока она не будет зафиксирована. Это одно из свойств ACID.

Подробности в Разделе 13.2.

Имя узла

Компьютер, взаимодействующий с другими компьютерами по сети. Иногда так называют сервер. Также это название применимо к компьютеру, на котором работают клиентские процессы.

Индекс (отношение)

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

Подробности в описании CREATE INDEX.

Карта видимости (слой)

Хранимая структура, содержащая метаинформацию о каждой странице данных в основном слое таблицы. Для каждой страницы в ней отводится два бита: первый (all-visible, полностью видимая) показывает, что все кортежи в странице видны всем транзакциям, а второй (all-frozen, полностью замороженная) показывает, что все кортежи в странице помечены как замороженные.

Карта свободного пространства (слой)

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

Подробности в Разделе 70.3.

Каталог

В стандарте SQL этот термин обозначает то, что в терминологии PostgreSQL называется базой данных.

(Не путайте это понятие с понятием системного каталога).

Подробности в Разделе 21.1.

Каталог данных

Главный каталог сервера в файловой системе, содержащий все файлы данных и подкаталоги, связанные с кластером баз данных (за исключением табличных пространств и, возможно, WAL). Обычно на каталог данных ссылается переменная окружения PGDATA.

Каталог данных в совокупности со всеми дополнительными табличными пространствами образует хранилище данных кластера.

Подробности в Разделе 70.1.

Класс (устаревшее)

См. Отношение.

Кластер баз данных

Набор баз данных и глобальных SQL-объектов, а также их общих статических и динамических метаданных. Иногда также называется просто кластером. Кластер баз данных создаётся с использованием программы initdb.

В PostgreSQL термин кластер иногда обозначает также экземпляр СУБД. (Не путайте этот термин с SQL-командой CLUSTER.)

См. также владелец кластера — владелец кластера в операционной системе, и начальный суперпользователь — владелец кластера PostgreSQL.

Клиент (процесс)

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

Ключ

Средство идентификации строки в таблице или другом отношении по значениям, содержащимся в одном или нескольких атрибутах этого отношения.

Конкурентный доступ

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

Контрольная точка

Точка в последовательности записей WAL, в которой гарантируется, что в файлы данных кучи и индекса попала вся информация из общей памяти, изменённая до контрольной точки; для обозначения этой точки в WAL записывается и сбрасывается запись контрольной точки.

Контрольной точкой также называется процедура, в ходе которой выполняются все действия, необходимые для достижения контрольной точки в приведённом выше определении. Эта процедура запускается при выполнении предопределённых условий, например по истечении заданного времени или после помещения в журнал некоторого объёма записей; также её можно вызвать командой CHECKPOINT.

Подробности в Разделе 28.5.

Кортеж

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

Куча

Содержит значения атрибутов строк (то есть непосредственно данные) отношения. Куча размещается в одном или нескольких файловых сегментах в основном слое отношения.

Материализованное представление (отношение)

Отношение, которое определяется оператором SELECT (подобно обычному представлению) и при этом содержит данные как обычная таблица. Его содержимое нельзя изменить операциями INSERT, UPDATE, DELETE и MERGE.

Подробности в описании CREATE MATERIALIZED VIEW.

Материализованные данные

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

Это используется в материализованных представлениях, в которых данные, полученные из запроса, определяющего представление, сохраняются на диске отдельно от первоисточника данных.

Этот термин также используется применительно к некоторым многоэтапным запросам, в которых данные, полученные на некотором этапе, сохраняются в памяти (а могут быть также вытеснены на диск), благодаря чем они могут быть многократно прочитаны на следующем этапе выполнения.

Многоверсионное управление конкурентным доступом (MVCC)

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

Надёжность

Гарантия того, что после фиксирования транзакции произведённые ей изменения не будут потеряны даже в случае системной ошибки или краха сервера. Это одно из свойств ACID.

Начальный суперпользователь

Первый пользователь, инициализированный в кластере баз данных.

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

Эта роль также ведёт себя как обычный суперпользователь баз данных.

Нежурналируемое отношение

Отношение, изменения в котором не отражаются в журнале WAL. Для таких отношений отсутствует возможность репликации и восстановления после сбоя.

Нежурналируемые таблицы полезны в основном, когда требуется эффективно передать промежуточные рабочие данные между процессами.

Все временные таблицы являются нежурналируемыми.

Область данных

См. Каталог данных.

Обслуживающий процесс (backend)

Процесс экземпляра сервера, заключающий в себе реализацию сеанса клиента и обрабатывающий его запросы.

(Не путайте это понятие с понятиями фоновый рабочий процесс и фоновый процесс записи).

Общая память

Область ОЗУ, совместно используемая процессами, относящимися к одному экземпляру сервера. В неё отображаются блоки файлов базы данных, а также она служит временным хранилищем для записей WAL и содержит дополнительную общую информацию. Заметьте, что общая память относится ко всему экземпляру, а не к отдельной базе данных в нём.

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

Подробности в Подразделе 18.4.1.

Обёртка сторонних данных

Способ представления данных, находящихся не в локальной базе данных, таким образом, что они отображаются как содержащиеся в локальных таблицах. Обёртка сторонних данных позволяет определить сторонний сервер и сторонние таблицы.

Подробности в описании CREATE FOREIGN DATA WRAPPER.

Ограничение

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

Подробности в Разделе 5.4.

Ограничение уникальности

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

Так как значения NULL не считаются равными друг другу, ограничение уникальности не нарушается, если в отношении есть несколько строк со значениями NULL.

Ограничение-проверка

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

Подробности в Разделе 5.4.

Оконная функция (подпрограмма)

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

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

Подробности в Разделе 3.5.

Оптимизатор

См. Планировщик запросов.

Отношение

Общий термин, который охватывает все объекты в базе данных, имеющие имя и упорядоченный список атрибутов. Отношениями являются таблицы, последовательности, представления, сторонние таблицы, материализованные представления, составные типы и индексы.

В более общем смысле отношением является набор кортежей; например, результат выполнения запроса тоже отношение.

В PostgreSQL название класс является устаревшим синонимом отношения.

Очистка (VACUUM)

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

Подробности в Разделе 23.1.

Параллельное выполнение

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

Первичный ключ

Особый вид ограничения уникальности, определяемого для таблицы или другого отношения, который дополнительно гарантирует, что все атрибуты в первичном ключе отличны от null. Как можно понять из названия, в таблице может быть только один первичный ключ, хотя в ней может быть несколько ограничений уникальности, так же не допускающих значения null в атрибутах.

Переработка

См. Файл WAL.

Планировщик запросов

Компонент PostgreSQL, предназначенный для определения (планирования) наиболее эффективного способа выполнения запросов. Также называется оптимизатором запросов, оптимизатором или просто планировщиком.

Подпрограмма

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

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

Пользователь

Роль с правом LOGIN (см. Раздел 20.2).

Последовательность (отношение)

Вид отношения, позволяющий генерировать значения, чаще всего это последовательные неповторяющиеся числа. Последовательности часто применяются для генерирования идентификаторов в первичном ключе.

Последовательный номер в журнале (LSN)

Байтовое смещение в WAL, монотонно увеличивающееся с каждой новой записью WAL.

Подробности в описании pg_lsn и Раздел 28.6.

Представление

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

Подробности в описании CREATE VIEW.

Приведение

Преобразование элемента данных из его текущего типа в другой тип данных.

Подробности в CREATE CAST.

Процедура (подпрограмма)

Вид подпрограммы, характеризующийся отсутствием возвращаемых значений. Кроме того, процедуры могут содержать операторы управления транзакциями, например COMMIT и ROLLBACK. Вызываются процедуры командой CALL.

Подробности в описании CREATE PROCEDURE.

Процесс postmaster

Самый первый процесс экземпляра сервера. Он запускает вспомогательные процессы и управляет ими, а также создаёт обслуживающие процессы по требованию.

Подробности в Разделе 17.3.

Процесс архивации WAL

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

Подробности в Разделе 24.3.

Процесс записи WAL

Вспомогательный процесс, который переносит записи WAL из общей памяти в файлы WAL.

Подробности в описании Разделе 18.5.

Процесс запуска

Вспомогательный процесс, воспроизводящий WAL во время восстановления после сбоя и в физической реплике.

(Такое имя объясняется историческими причинами: процесс запуска был назван так до того, как была реализована репликация; имя отражает задачу этого процесса — запуск сервера после сбоя.)

Процесс контрольных точек (checkpointer)

Вспомогательный процесс, отвечающий за выполнение процедуры контрольной точки.

Процесс протоколирования

Вспомогательный процесс, который записывает сообщения о событиях в базе данных в свой текущий файл журнала. Данный файл сменяется другим, когда выполняется некоторый критерий (ограничение по времени или объёму). Также этот процесс называется syslogger. Он может быть отключён.

Подробности в Разделе 18.8.

Процесс фоновой записи

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

Подробности в Подразделе 18.4.5.

Процесс-передатчик WAL

Специальный обслуживающий процесс, передающий WAL по сети. Принимать его может процесс-приёмник WAL в реплике, pg_receivewal или любая другая клиентская программа, понимающая протокол репликации.

Процесс-приёмник WAL

Вспомогательный процесс, который выполняется на реплике и получает от основного сервера WAL для воспроизведения процессом запуска.

Подробности в Разделе 25.2.

Раздувание

Увеличение объёма, занимаемого не текущими версиями строк, в том числе объёма неиспользуемого (свободного) места и объёма, занимаемого устаревшими версиями строк.

Расширение

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

Подробности в Разделе 37.17.

Результирующее множество

Отношение, передаваемое из обслуживающего процесса клиенту после выполнения команды SQL, обычно SELECT, но также это могут быть команды INSERT, UPDATE или DELETE с предложением RETURNING.

То, что результирующее множество является отношением, означает, что один запрос может фигурировать в определении другого запроса в качестве подзапроса.

Реплика

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

Репликация

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

Роль

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

Подробности в описании CREATE ROLE.

Сеанс

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

Сегмент

См. Файловый сегмент.

Сегмент WAL

См. Файл WAL.

Секционированная таблица (отношение)

Отношение, которое по смыслу не отличается от таблицы, но его содержимое хранится распределённо, в нескольких секциях.

Секция

Одно из нескольких отдельных (не пересекающихся) подмножеств большего множества.

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

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

Сервер

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

Иногда сервером также называют экземпляр сервера баз данных.

Сервер баз данных

См. Экземпляр СУБД.

Система накопительной статистики

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

Подробности в Разделе 26.2.

Системный каталог

Набор таблиц, которые описывают структуру всех SQL-объектов сервера. Системный каталог располагается в схеме pg_catalog. Его таблицы содержат данные во внутреннем представлении и не считаются полезными для конечных пользователей. В более понятном виде часть этой информации доступна в ряде системных представлений, также находящихся в схеме pg_catalog. Кроме того, имеется схема information_schema (см. Главу 36), содержащая дополнительные таблицы и представления, из которых можно получить информацию (частично ту же, но также и некоторую другую), предоставляемую в соответствии с требованиями стандарта SQL.

Подробности в Разделе 5.9.

Слой

Отдельный набор файлов-сегментов, в которых хранится отношение. В основном слое находятся собственно данные отношения. Помимо него существует два дополнительных слоя для метаданных: карта свободного пространства и карта видимости. У нежурналируемых отношений также имеется слой инициализации.

Согласованность

Свойство базы, суть которого в том, что данные базы всегда удовлетворяют ограничениям целостности. Транзакциям позволяется временно нарушать такие ограничения, но если к моменту завершения транзакции эти нарушения не устраняются, транзакция автоматически откатывается. Это одно из свойств ACID.

Соединение

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

Подробности в Разделе 18.3.

Соединение (join)

Операция (и ключевое слово SQL), выполняемая в запросах для объединения данных из нескольких отношений.

Сопоставление пользователей

Устанавливаемое в обёртке сторонних данных соответствие учётной записи в локальной базе данных другой учётной записи в удалённой системе.

Подробности в описании CREATE USER MAPPING.

Ссылочная целостность

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

Стандарт SQL

Совокупность документов, определяющих язык SQL.

Столбец

Атрибут, относящийся к таблице или представлению.

Сторонний сервер

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

Подробности в описании CREATE SERVER.

Сторонняя таблица (отношение)

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

Подробности в описании CREATE FOREIGN TABLE.

Страница данных

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

Стратегия доступа к буферу

Некоторые операции обращаются к большому количеству страниц. Стратегия доступа к буферу помогает предотвратить вытеснение из общих буферов слишком большого количества страниц в результате этих операций.

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

Стратегии доступа к буферу используются для различных операций, таких как последовательное сканирование больших таблиц, VACUUM, COPY, CREATE TABLE AS SELECT, ALTER TABLE, CREATE DATABASE, CREATE INDEX и CLUSTER.

Строка таблицы

См. Кортеж.

Суперпользователь

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

Суперпользователь баз данных

Роль, имеющая статус суперпользователя (см. Раздел 20.2).

Часто также называется суперпользователь.

Схема

Пространство имён SQL-объектов, принадлежащих одной базе данных. Каждый отдельный SQL-объект должен располагаться ровно в одной схеме.

Все системные SQL-объекты располагаются в схеме pg_catalog.

В более общем смысле схема — это совокупность всех описаний данных (определений таблиц, ограничений, комментариев и т. д.) в определённой базе или в её подмножестве.

Подробности в Разделе 5.9.

Таблица

Набор кортежей, имеющих общую структуру данных (одинаковое количество атрибутов в том же порядке, имеющих одинаковые имена и типы). Таблица является наиболее распространённым видом отношения в PostgreSQL.

Подробности в описании CREATE TABLE.

Табличное пространство

Именованное расположение в файловой системе сервера. Все SQL-объекты, для которых требуется хранилище, должны располагаться в некотором табличном пространстве (при этом их определения размещаются в системном каталоге). Изначально в кластере баз данных есть только одно табличное пространство, которое называется pg_default и содержит по умолчанию все SQL-объекты.

Подробности в Разделе 21.6.

Точка перезапуска

Вариант контрольной точки, выполняемый на реплике.

Подробности в Разделе 28.5.

Точка сохранения

Специальная отметка в последовательности операций транзакции. Изменения данных, произведённые после этой отметки, могут быть отменены, таким образом будет получено состояние на момент сохранения.

Подробности в описании SAVEPOINT.

Транзакции/сек (TPS)

Среднее количество транзакций, выполняющихся за секунду, подсчитанное по всем сеансам за время наблюдения. Эта величина позволяет оценить производительность экземпляра сервера.

Транзакция

Совокупность команд, которые должны выполниться как одна атомарная команда: они завершаются успешно либо отменяются все вместе, а результат их выполнения не виден в других сеансах до завершения транзакции и, возможно, даже позже (в зависимости от уровня изоляции).

Подробности в Разделе 13.2.

Триггер

Функция, которая вызывается при выполнении определённой операции (INSERT, UPDATE, DELETE, TRUNCATE) с некоторым отношением. Триггер выполняется в рамках той же транзакции, что и вызвавший его оператор, и если в функции триггера произойдёт ошибка, этот оператор тоже не будет выполнен успешно.

Подробности в описании CREATE TRIGGER.

Файл WAL

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

Каждый файл WAL может быть освобождён после того, как во время контрольной точки все изменения из него будут переписаны в соответствующие файлы данных. Освобождённый файл может быть просто удалён либо переименован (или переработан) так, чтобы его можно было использовать в будущем.

Подробности в Разделе 28.6.

Файл журнала

Файлы журналов содержат предназначенные для человека текстовые сообщения о событиях. Например, в журнале могут фиксироваться ошибки входа, длительные запросы и т. д.

Подробности в Разделе 23.3.

Файловый сегмент

Физический файл, содержащий данные для определённого отношения. Размер сегментов ограничивается параметром конфигурации (обычно ограничение равно 1 гигабайту), поэтому отношения большего объёма разбиваются на несколько сегментов.

Подробности в Разделе 70.1.

(Не путайте это понятие с подобным понятием сегмент WAL).

Фиксирование

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

Подробности в COMMIT.

Фоновый рабочий процесс

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

Подробности в Главе 47.

Функция (подпрограмма)

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

Функции также вызываются при срабатывании триггеров.

Подробности в описании CREATE FUNCTION.

Экземпляр СУБД

Группа обслуживающих и вспомогательных процессов, использующих общую область разделяемой памяти. Экземпляром СУБД управляет один процесс postmaster, и относится к этому экземпляру ровно один кластер баз данных со всеми его базами. На одном сервере могут работать несколько экземпляров СУБД, если их TCP-порты не конфликтуют.

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

Элемент данных

Внутреннее представление одного значения некоторого типа данных SQL.

Эпоха

См. Идентификатор транзакции.