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

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

ACID

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

DELETE

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

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

GMT

См. UTC.

GRANT

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

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

INSERT

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

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

NULL

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

REVOKE

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

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

ROLLBACK

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

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

SELECT

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

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

SQL-объект

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

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

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

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

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

TOAST

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

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

UPDATE

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

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

UTC

Всемирное координированное время (UTC) — основная глобальная система отсчёта времени, близкая к времени нулевого меридиана. Часто ошибочно называют средним временем по Гринвичу (GMT).

WAL

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Атомарность

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

Атомарный

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

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

Атрибут

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

База данных

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

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

Блокировка

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

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

См. Реплика.

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

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

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

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

Внешний ключ

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

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

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

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

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

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

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

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

Запись

См. Кортеж.

Запись WAL

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

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

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

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

Запрос

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Каталог

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ключ

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

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

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

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

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

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

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

Кортеж

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

Куча

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

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

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

Подробности в описании 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.

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

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

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

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

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

Приведение

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

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

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

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

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

Процесс postmaster

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

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

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

Сохранение и создание копий файлов WAL для осуществления резервного копирования или для поддержания актуального состояния реплик.

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

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

Процесс, осуществляющий перенос записей WAL из общей памяти в файлы WAL.

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

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

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

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

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

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

Процесс сбора статистики

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

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

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

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

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

Раздувание

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

Расширение

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

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

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

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

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

Реплика

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

Репликация

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

Роль

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

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

Сеанс

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

Сегмент

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

Сегмент WAL

См. Файл WAL.

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

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

Секция

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

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

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

Сервер

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

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

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

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

Сетевой узел (host)

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

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

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

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

Слой

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

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

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

Соединение

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

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

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

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

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

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

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

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

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

Стандарт SQL

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

Столбец

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

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

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

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

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

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

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

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

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

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

См. Кортеж.

Схема

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

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

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

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

Таблица

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

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

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

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

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

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

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

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

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

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

Транзакция

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

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

Триггер

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

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

Файл WAL

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

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

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

Файл журнала

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Эпоха

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

Appendix O. Glossary

This is a list of terms and their meaning in the context of PostgreSQL and relational database systems in general.

ACID

Atomicity, Consistency, Isolation, and Durability. This set of properties of database transactions is intended to guarantee validity in concurrent operation and even in event of errors, power failures, etc.

Aggregate function (routine)

A function that combines (aggregates) multiple input values, for example by counting, averaging or adding, yielding a single output value.

For more information, see Section 9.21.

See Also Window function (routine).

Analytic function

See Window function (routine).

Analyze (operation)

The process of collecting statistics from data in tables and other relations to help the query planner to make decisions about how to execute queries.

(Don't confuse this term with the ANALYZE option to the EXPLAIN command.)

For more information, see ANALYZE.

Atomic

In reference to a datum: the fact that its value cannot be broken down into smaller components.

In reference to a database transaction: see atomicity.

Atomicity

The property of a transaction that either all its operations complete as a single unit or none do. In addition, if a system failure occurs during the execution of a transaction, no partial results are visible after recovery. This is one of the ACID properties.

Attribute

An element with a certain name and data type found within a tuple.

Autovacuum (process)

A set of background processes that routinely perform vacuum and analyze operations.

For more information, see Section 23.1.6.

Backend (process)

Process of an instance which acts on behalf of a client session and handles its requests.

(Don't confuse this term with the similar terms Background Worker or Background Writer).

Background worker (process)

Process within an instance, which runs system- or user-supplied code. Serves as infrastructure for several features in PostgreSQL, such as logical replication and parallel queries. In addition, Extensions can add custom background worker processes.

For more information, see Chapter 46.

Background writer (process)

A process that writes dirty data pages from shared memory to the file system. It wakes up periodically, but works only for a short period in order to distribute its expensive I/O activity over time to avoid generating larger I/O peaks which could block other processes.

For more information, see Section 18.4.5.

Bloat

Space in data pages which does not contain current row versions, such as unused (free) space or outdated row versions.

Cast

A conversion of a datum from its current data type to another data type.

For more information, see CREATE CAST.

Catalog

The SQL standard uses this term to indicate what is called a database in PostgreSQL's terminology.

(Don't confuse this term with system catalog).

For more information, see Section 21.1.

Check constraint

A type of constraint defined on a relation which restricts the values allowed in one or more attributes. The check constraint can make reference to any attribute of the same row in the relation, but cannot reference other rows of the same relation or other relations.

For more information, see Section 5.4.

Checkpoint

A point in the WAL sequence at which it is guaranteed that the heap and index data files have been updated with all information from shared memory modified before that checkpoint; a checkpoint record is written and flushed to WAL to mark that point.

A checkpoint is also the act of carrying out all the actions that are necessary to reach a checkpoint as defined above. This process is initiated when predefined conditions are met, such as a specified amount of time has passed, or a certain volume of records has been written; or it can be invoked by the user with the command CHECKPOINT.

For more information, see Section 28.4.

Checkpointer (process)

A specialized process responsible for executing checkpoints.

Class (archaic)

See Relation.

Client (process)

Any process, possibly remote, that establishes a session by connecting to an instance to interact with a database.

Column

An attribute found in a table or view.

Commit

The act of finalizing a transaction within the database, which makes it visible to other transactions and assures its durability.

For more information, see COMMIT.

Concurrency

The concept that multiple independent operations happen within the database at the same time. In PostgreSQL, concurrency is controlled by the multiversion concurrency control mechanism.

Connection

An established line of communication between a client process and a backend process, usually over a network, supporting a session. This term is sometimes used as a synonym for session.

For more information, see Section 18.3.

Consistency

The property that the data in the database is always in compliance with integrity constraints. Transactions may be allowed to violate some of the constraints transiently before it commits, but if such violations are not resolved by the time it commits, such a transaction is automatically rolled back. This is one of the ACID properties.

Constraint

A restriction on the values of data allowed within a table, or in attributes of a domain.

For more information, see Section 5.4.

Data area

See Data directory.

Database

A named collection of local SQL objects.

For more information, see Section 21.1.

Database cluster

A collection of databases and global SQL objects, and their common static and dynamic metadata. Sometimes referred to as a cluster.

In PostgreSQL, the term cluster is also sometimes used to refer to an instance. (Don't confuse this term with the SQL command CLUSTER.)

Database server

See Instance.

Data directory

The base directory on the file system of a server that contains all data files and subdirectories associated with a database cluster (with the exception of tablespaces, and optionally WAL). The environment variable PGDATA is commonly used to refer to the data directory.

A cluster's storage space comprises the data directory plus any additional tablespaces.

For more information, see Section 66.1.

Data page

The basic structure used to store relation data. All pages are of the same size. Data pages are typically stored on disk, each in a specific file, and can be read to shared buffers where they can be modified, becoming dirty. They become clean when written to disk. New pages, which initially exist in memory only, are also dirty until written.

Datum

The internal representation of one value of an SQL data type.

Delete

An SQL command which removes rows from a given table or relation.

For more information, see DELETE.

Durability

The assurance that once a transaction has been committed, the changes remain even after a system failure or crash. This is one of the ACID properties.

Epoch

See Transaction ID.

Extension

A software add-on package that can be installed on an instance to get extra features.

For more information, see Section 36.17.

File segment

A physical file which stores data for a given relation. File segments are limited in size by a configuration value (typically 1 gigabyte), so if a relation exceeds that size, it is split into multiple segments.

For more information, see Section 66.1.

(Don't confuse this term with the similar term WAL segment).

Foreign data wrapper

A means of representing data that is not contained in the local database so that it appears as if were in local table(s). With a foreign data wrapper it is possible to define a foreign server and foreign tables.

For more information, see CREATE FOREIGN DATA WRAPPER.

Foreign key

A type of constraint defined on one or more columns in a table which requires the value(s) in those columns to identify zero or one row in another (or, infrequently, the same) table.

Foreign server

A named collection of foreign tables which all use the same foreign data wrapper and have other configuration values in common.

For more information, see CREATE SERVER.

Foreign table (relation)

A relation which appears to have rows and columns similar to a regular table, but will forward requests for data through its foreign data wrapper, which will return result sets structured according to the definition of the foreign table.

For more information, see CREATE FOREIGN TABLE.

Fork

Each of the separate segmented file sets in which a relation is stored. The main fork is where the actual data resides. There also exist two secondary forks for metadata: the free space map and the visibility map. Unlogged relations also have an init fork.

Free space map (fork)

A storage structure that keeps metadata about each data page of a table's main fork. The free space map entry for each page stores the amount of free space that's available for future tuples, and is structured to be efficiently searched for available space for a new tuple of a given size.

For more information, see Section 66.3.

Function (routine)

A type of routine that receives zero or more arguments, returns zero or more output values, and is constrained to run within one transaction. Functions are invoked as part of a query, for example via SELECT. Certain functions can return sets; those are called set-returning functions.

Functions can also be used for triggers to invoke.

For more information, see CREATE FUNCTION.

GMT

See UTC.

Grant

An SQL command that is used to allow a user or role to access specific objects within the database.

For more information, see GRANT.

Heap

Contains the values of row attributes (i.e., the data) for a relation. The heap is realized within one or more file segments in the relation's main fork.

Host

A computer that communicates with other computers over a network. This is sometimes used as a synonym for server. It is also used to refer to a computer where client processes run.

Index (relation)

A relation that contains data derived from a table or materialized view. Its internal structure supports fast retrieval of and access to the original data.

For more information, see CREATE INDEX.

Insert

An SQL command used to add new data into a table.

For more information, see INSERT.

Instance

A group of backend and auxiliary processes that communicate using a common shared memory area. One postmaster process manages the instance; one instance manages exactly one database cluster with all its databases. Many instances can run on the same server as long as their TCP ports do not conflict.

The instance handles all key features of a DBMS: read and write access to files and shared memory, assurance of the ACID properties, connections to client processes, privilege verification, crash recovery, replication, etc.

Isolation

The property that the effects of a transaction are not visible to concurrent transactions before it commits. This is one of the ACID properties.

For more information, see Section 13.2.

Join

An operation and SQL keyword used in queries for combining data from multiple relations.

Key

A means of identifying a row within a table or other relation by values contained within one or more attributes in that relation.

Lock

A mechanism that allows a process to limit or prevent simultaneous access to a resource.

Log file

Log files contain human-readable text lines about events. Examples include login failures, long-running queries, etc.

For more information, see Section 23.3.

Logged

A table is considered logged if changes to it are sent to the WAL. By default, all regular tables are logged. A table can be specified as unlogged either at creation time or via the ALTER TABLE command.

Logger (process)

If activated, the process writes information about database events into the current log file. When reaching certain time- or volume-dependent criteria, a new log file is created. Also called syslogger.

For more information, see Section 18.8.

Log record

Archaic term for a WAL record.

Master (server)

See Primary (server).

Materialized

The property that some information has been pre-computed and stored for later use, rather than computing it on-the-fly.

This term is used in materialized view, to mean that the data derived from the view's query is stored on disk separately from the sources of that data.

This term is also used to refer to some multi-step queries to mean that the data resulting from executing a given step is stored in memory (with the possibility of spilling to disk), so that it can be read multiple times by another step.

Materialized view (relation)

A relation that is defined by a SELECT statement (just like a view), but stores data in the same way that a table does. It cannot be modified via INSERT, UPDATE, or DELETE operations.

For more information, see CREATE MATERIALIZED VIEW.

Multi-version concurrency control (MVCC)

A mechanism designed to allow several transactions to be reading and writing the same rows without one process causing other processes to stall. In PostgreSQL, MVCC is implemented by creating copies (versions) of tuples as they are modified; after transactions that can see the old versions terminate, those old versions need to be removed.

Null

A concept of non-existence that is a central tenet of relational database theory. It represents the absence of a definite value.

Optimizer

See Query planner.

Parallel query

The ability to handle parts of executing a query to take advantage of parallel processes on servers with multiple CPUs.

Partition

One of several disjoint (not overlapping) subsets of a larger set.

In reference to a partitioned table: One of the tables that each contain part of the data of the partitioned table, which is said to be the parent. The partition is itself a table, so it can also be queried directly; at the same time, a partition can sometimes be a partitioned table, allowing hierarchies to be created.

In reference to a window function in a query, a partition is a user-defined criterion that identifies which neighboring rows of the query's result set can be considered by the function.

Partitioned table (relation)

A relation that is in semantic terms the same as a table, but whose storage is distributed across several partitions.

Postmaster (process)

The very first process of an instance. It starts and manages the other auxiliary processes and creates backend processes on demand.

For more information, see Section 17.3.

Primary key

A special case of a unique constraint defined on a table or other relation that also guarantees that all of the attributes within the primary key do not have null values. As the name implies, there can be only one primary key per table, though it is possible to have multiple unique constraints that also have no null-capable attributes.

Primary (server)

When two or more databases are linked via replication, the server that is considered the authoritative source of information is called the primary, also known as a master.

Procedure (routine)

A type of routine. Their distinctive qualities are that they do not return values, and that they are allowed to make transactional statements such as COMMIT and ROLLBACK. They are invoked via the CALL command.

For more information, see CREATE PROCEDURE.

Query

A request sent by a client to a backend, usually to return results or to modify data on the database.

Query planner

The part of PostgreSQL that is devoted to determining (planning) the most efficient way to execute queries. Also known as query optimizer, optimizer, or simply planner.

Record

See Tuple.

Recycling

See WAL file.

Referential integrity

A means of restricting data in one relation by a foreign key so that it must have matching data in another relation.

Relation

The generic term for all objects in a database that have a name and a list of attributes defined in a specific order. Tables, sequences, views, foreign tables, materialized views, composite types, and indexes are all relations.

More generically, a relation is a set of tuples; for example, the result of a query is also a relation.

In PostgreSQL, Class is an archaic synonym for relation.

Replica (server)

A database that is paired with a primary database and is maintaining a copy of some or all of the primary database's data. The foremost reasons for doing this are to allow for greater access to that data, and to maintain availability of the data in the event that the primary becomes unavailable.

Replication

The act of reproducing data on one server onto another server called a replica. This can take the form of physical replication, where all file changes from one server are copied verbatim, or logical replication where a defined subset of data changes are conveyed using a higher-level representation.

Result set

A relation transmitted from a backend process to a client upon the completion of an SQL command, usually a SELECT but it can be an INSERT, UPDATE, or DELETE command if the RETURNING clause is specified.

The fact that a result set is a relation means that a query can be used in the definition of another query, becoming a subquery.

Revoke

A command to prevent access to a named set of database objects for a named list of roles.

For more information, see REVOKE.

Role

A collection of access privileges to the instance. Roles are themselves a privilege that can be granted to other roles. This is often done for convenience or to ensure completeness when multiple users need the same privileges.

For more information, see CREATE ROLE.

Rollback

A command to undo all of the operations performed since the beginning of a transaction.

For more information, see ROLLBACK.

Routine

A defined set of instructions stored in the database system that can be invoked for execution. A routine can be written in a variety of programming languages. Routines can be functions (including set-returning functions and trigger functions), aggregate functions, and procedures.

Many routines are already defined within PostgreSQL itself, but user-defined ones can also be added.

Row

See Tuple.

Savepoint

A special mark in the sequence of steps in a transaction. Data modifications after this point in time may be reverted to the time of the savepoint.

For more information, see SAVEPOINT.

Schema

A schema is a namespace for SQL objects, which all reside in the same database. Each SQL object must reside in exactly one schema.

All system-defined SQL objects reside in schema pg_catalog.

More generically, the term schema is used to mean all data descriptions (table definitions, constraints, comments, etc) for a given database or subset thereof.

For more information, see Section 5.9.

Segment

See File segment.

Select

The SQL command used to request data from a database. Normally, SELECT commands are not expected to modify the database in any way, but it is possible that functions invoked within the query could have side effects that do modify data.

For more information, see SELECT.

Sequence (relation)

A type of relation that is used to generate values. Typically the generated values are sequential non-repeating numbers. They are commonly used to generate surrogate primary key values.

Server

A computer on which PostgreSQL instances run. The term server denotes real hardware, a container, or a virtual machine.

This term is sometimes used to refer to an instance or to a host.

Session

A state that allows a client and a backend to interact, communicating over a connection.

Shared memory

RAM which is used by the processes common to an instance. It mirrors parts of database files, provides a transient area for WAL records, and stores additional common information. Note that shared memory belongs to the complete instance, not to a single database.

The largest part of shared memory is known as shared buffers and is used to mirror part of data files, organized into pages. When a page is modified, it is called a dirty page until it is written back to the file system.

For more information, see Section 18.4.1.

SQL object

Any object that can be created with a CREATE command. Most objects are specific to one database, and are commonly known as local objects.

Most local objects belong to a specific schema in their containing database, such as relations (all types), routines (all types), data types, etc. The names of such objects of the same type in the same schema are enforced to be unique.

There also exist local objects that do not belong to schemas; some examples are extensions, data type casts, and foreign data wrappers. The names of such objects of the same type are enforced to be unique within the database.

Other object types, such as roles, tablespaces, replication origins, subscriptions for logical replication, and databases themselves are not local SQL objects since they exist entirely outside of any specific database; they are called global objects. The names of such objects are enforced to be unique within the whole database cluster.

For more information, see Section 21.1.

SQL standard

A series of documents that define the SQL language.

Standby (server)

See Replica (server).

Stats collector (process)

This process collects statistical information about the instance's activities.

For more information, see Section 26.2.

System catalog

A collection of tables which describe the structure of all SQL objects of the instance. The system catalog resides in the schema pg_catalog. These tables contain data in internal representation and are not typically considered useful for user examination; a number of user-friendlier views, also in schema pg_catalog, offer more convenient access to some of that information, while additional tables and views exist in schema information_schema (see Chapter 35) that expose some of the same and additional information as mandated by the SQL standard.

For more information, see Section 5.9.

Table

A collection of tuples having a common data structure (the same number of attributes, in the same order, having the same name and type per position). A table is the most common form of relation in PostgreSQL.

For more information, see CREATE TABLE.

Tablespace

A named location on the server file system. All SQL objects which require storage beyond their definition in the system catalog must belong to a single tablespace. Initially, a database cluster contains a single usable tablespace which is used as the default for all SQL objects, called pg_default.

For more information, see Section 21.6.

Temporary table

Tables that exist either for the lifetime of a session or a transaction, as specified at the time of creation. The data in them is not visible to other sessions, and is not logged. Temporary tables are often used to store intermediate data for a multi-step operation.

For more information, see CREATE TABLE.

TOAST

A mechanism by which large attributes of table rows are split and stored in a secondary table, called the TOAST table. Each relation with large attributes has its own TOAST table.

For more information, see Section 66.2.

Transaction

A combination of commands that must act as a single atomic command: they all succeed or all fail as a single unit, and their effects are not visible to other sessions until the transaction is complete, and possibly even later, depending on the isolation level.

For more information, see Section 13.2.

Transaction ID

The numerical, unique, sequentially-assigned identifier that each transaction receives when it first causes a database modification. Frequently abbreviated as xid. When stored on disk, xids are only 32-bits wide, so only approximately four billion write transaction IDs can be generated; to permit the system to run for longer than that, epochs are used, also 32 bits wide. When the counter reaches the maximum xid value, it starts over at 3 (values under that are reserved) and the epoch value is incremented by one. In some contexts, the epoch and xid values are considered together as a single 64-bit value.

For more information, see Section 8.19.

Transactions per second (TPS)

Average number of transactions that are executed per second, totaled across all sessions active for a measured run. This is used as a measure of the performance characteristics of an instance.

Trigger

A function which can be defined to execute whenever a certain operation (INSERT, UPDATE, DELETE, TRUNCATE) is applied to a relation. A trigger executes within the same transaction as the statement which invoked it, and if the function fails, then the invoking statement also fails.

For more information, see CREATE TRIGGER.

Tuple

A collection of attributes in a fixed order. That order may be defined by the table (or other relation) where the tuple is contained, in which case the tuple is often called a row. It may also be defined by the structure of a result set, in which case it is sometimes called a record.

Unique constraint

A type of constraint defined on a relation which restricts the values allowed in one or a combination of columns so that each value or combination of values can only appear once in the relation — that is, no other row in the relation contains values that are equal to those.

Because null values are not considered equal to each other, multiple rows with null values are allowed to exist without violating the unique constraint.

Unlogged

The property of certain relations that the changes to them are not reflected in the WAL. This disables replication and crash recovery for these relations.

The primary use of unlogged tables is for storing transient work data that must be shared across processes.

Temporary tables are always unlogged.

Update

An SQL command used to modify rows that may already exist in a specified table. It cannot create or remove rows.

For more information, see UPDATE.

User

A role that has the LOGIN privilege.

User mapping

The translation of login credentials in the local database to credentials in a remote data system defined by a foreign data wrapper.

For more information, see CREATE USER MAPPING.

UTC

Universal Coordinated Time, the primary global time reference, approximately the time prevailing at the zero meridian of longitude. Often but inaccurately referred to as GMT (Greenwich Mean Time).

Vacuum

The process of removing outdated tuple versions from tables or materialized views, and other closely related processing required by PostgreSQL's implementation of MVCC. This can be initiated through the use of the VACUUM command, but can also be handled automatically via autovacuum processes.

For more information, see Section 23.1 .

View

A relation that is defined by a SELECT statement, but has no storage of its own. Any time a query references a view, the definition of the view is substituted into the query as if the user had typed it as a subquery instead of the name of the view.

For more information, see CREATE VIEW.

Visibility map (fork)

A storage structure that keeps metadata about each data page of a table's main fork. The visibility map entry for each page stores two bits: the first one (all-visible) indicates that all tuples in the page are visible to all transactions. The second one (all-frozen) indicates that all tuples in the page are marked frozen.

WAL

See Write-ahead log.

WAL archiver (process)

A process that saves copies of WAL files for the purpose of creating backups or keeping replicas current.

For more information, see Section 24.3.

WAL file

Also known as WAL segment or WAL segment file. Each of the sequentially-numbered files that provide storage space for WAL. The files are all of the same predefined size and are written in sequential order, interspersing changes as they occur in multiple simultaneous sessions. If the system crashes, the files are read in order, and each of the changes is replayed to restore the system to the state it was in before the crash.

Each WAL file can be released after a checkpoint writes all the changes in it to the corresponding data files. Releasing the file can be done either by deleting it, or by changing its name so that it will be used in the future, which is called recycling.

For more information, see Section 28.5.

WAL record

A low-level description of an individual data change. It contains sufficient information for the data change to be re-executed (replayed) in case a system failure causes the change to be lost. WAL records use a non-printable binary format.

For more information, see Section 28.5.

WAL segment

See WAL file.

WAL writer (process)

A process that writes WAL records from shared memory to WAL files.

For more information, see Section 18.5.

Window function (routine)

A type of function used in a query that applies to a partition of the query's result set; the function's result is based on values found in rows of the same partition or frame.

All aggregate functions can be used as window functions, but window functions can also be used to, for example, give ranks to each of the rows in the partition. Also known as analytic functions.

For more information, see Section 3.5.

Write-ahead log

The journal that keeps track of the changes in the database cluster as user- and system-invoked operations take place. It comprises many individual WAL records written sequentially to WAL files.

FAQ