Приложение P. Глоссарий
Ниже представлен перечень терминов с описанием их значений в контексте 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-объектами, так как они существуют вне какой-либо отдельной базы; они называются глобальными объектами. Имена таких объектов должны быть уникальными во всём кластере баз данных.
Подробности в Разделе 22.1.
- TOAST
Механизм, который обеспечивает хранение больших атрибутов строк таблицы, размещая их в дополнительной TOAST-таблице. У каждого отношения с большими атрибутами имеется собственная TOAST-таблица.
Подробности в Разделе 73.2.
- UPDATE
SQL-команда, вносящая изменения в уже существующие строки определённой таблицы. Эта команда не добавляет и не удаляет строки.
Подробности в описании UPDATE.
- WAL
См. Журнал предзаписи.
- Автоочистка (autovacuum)
Набор фоновых процессов, регулярно выполняющих операции очистки и анализа. Вспомогательный процесс, который координирует работу и существует всегда (если не отключена автоочистка), называется «autovacuum launcher» (процесс запуска автоочистки), а каждый процесс, который запускается для выполнения задач, называется «autovacuum worker» (рабочий процесс автоочистки).
Подробности в Подразделе 24.1.6.
- Агрегатная функция (подпрограмма)
Функция, которая сводит к одному значению (агрегирует) множество входных значений, например, подсчитывая их количество, складывая их или вычисляя среднее.
Подробности в Разделе 9.21.
См. также Оконная функция (подпрограмма).
- Анализ (операция)
Сбор статистики по данным в таблицах и других отношениях, помогающий планировщику запросов находить оптимальные способы выполнения запросов.
(Не путайте этот термин с указанием
ANALYZE
команды EXPLAIN.)Подробности в ANALYZE.
- Аналитическая функция
- Атомарность
Свойство транзакции, которое заключается в том, что в результате транзакции все её операции выполняются вместе, либо не выполняются совсем. Кроме того, частичные изменения исключены в случае сбоя системы в процессе выполнения транзакции. Это одно из свойств ACID.
- Атомарный
Применительно к данным означает, что элемент данных нельзя разделить на меньшие части.
- Атрибут
Элемент с определённым именем и типом данных, содержащийся в кортеже.
- База данных
Именованный набор локальных SQL-объектов.
Подробности в Разделе 22.1.
- Базовая резервная копия
Двоичная копия всех файлов кластера базы данных, которая создаётся программой pg_basebackup. При наличии файлов WAL эту копию можно использовать в качестве отправной точки для восстановления, трансляции журналов или потоковой репликации.
- Блокировка
Механизм, позволяющий некоторому процессу ограничивать или запрещать параллельный доступ к ресурсу.
- Ведомый (резервный) сервер
См. Реплика.
- Ведущий (главный) сервер
См. Ведущий (сервер).
- Ведущий (сервер)
Когда несколько баз данных связываются вместе посредством репликации, сервер, служащий первоисточником информации, называется ведущим или главным.
- Владелец кластера
Пользователь операционной системы, которому принадлежит каталог данных и от имени которого запускается процесс
postgres
. Необходимо, чтобы этот пользователь существовал до создания нового кластера базы данных.В операционных системах с пользователем
root
указанному пользователю запрещается быть владельцем кластера.- Внешний ключ
Вид ограничения, определяемый для одного или нескольких столбцов в таблице и требующий, чтобы значения в этих столбцах указывали на ноль или одну строку в другой (в редких случаях, той же) таблице.
- Временная таблица
Таблица, существующая либо в рамках сеанса, либо в рамках транзакции, в соответствии с выбранным при её создании режимом. Такие таблицы не являются журналируемыми, и их содержимое не видно в других сеансах. Временные таблицы часто применяются, когда нужно сохранить промежуточные результаты в ходе сложной операции.
Подробности в описании CREATE TABLE.
- Вспомогательный процесс
Процесс, относящийся к экземпляру СУБД и отвечающий за определённую фоновую задачу для этого экземпляра. К числу вспомогательных процессов относятся процесс запуска автоочистки (но не рабочие процессы автоочистки), процесс фоновой записи, процесс контрольных точек, процесс протоколирования, процесс запуска, процесс архивации WAL, процесс-приёмник WAL (но не процессы-передатчики WAL) и процесс записи WAL.
- Домен
Пользовательский тип данных, основанный на другом нижележащем типе данных. Он действует так же, как нижележащий тип, за исключением возможного ограничения набора допустимых значений.
Подробности в Разделе 8.18.
- Журнал предзаписи
Журнал, в котором отслеживаются изменения в кластере баз данных, производимые при выполнении операций пользователями и самой системой. Он содержит множество отдельных записей WAL, вносимых последовательно в файлы WAL.
- Журналируемое отношение
Таблица считается журналируемой, если вносимые в неё изменения проходят через WAL. По умолчанию все обычные таблицы являются журналируемыми. Таблицу можно сделать нежурналируемой либо во время создания, либо выполнив команду
ALTER TABLE
.- Запись
См. Кортеж.
- Запись WAL
Низкоуровневое описание отдельного изменения данных. Оно содержит достаточно информации для воспроизведения (повторного применения) этого изменения в случае сбоя системы до переноса изменения в базу. В записях WAL используется непечатаемый двоичный формат.
Подробности в Разделе 29.7.
- Запись журнала
Устаревшее название записи WAL.
- Запрос
Указание, передаваемое клиентом обслуживающему процессу, в результате выполнения которого меняются данные в базе или выдаются результаты для клиента.
- Идентификатор транзакции
Числовой уникальный идентификатор, последовательно назначаемый каждой транзакции при первой операции, меняющей данные. Часто он сокращённо обозначается xid.
Подробности в Разделе 8.19.
- Изолированность
Свойство, которое заключается в том, что результаты транзакции не видны для параллельных транзакций, пока она не будет зафиксирована. Это одно из свойств ACID.
Подробности в Разделе 13.2.
- Имя узла
Компьютер, взаимодействующий с другими компьютерами по сети. Иногда так называют сервер. Также это название применимо к компьютеру, на котором работают клиентские процессы.
- Индекс (отношение)
Отношение, содержащее производную информацию от исходных данных таблицы или материализованного представления. Его внутренняя структура ориентирована на быстрый поиск и извлечение исходных данных.
Подробности в описании CREATE INDEX.
- Карта видимости (слой)
Хранимая структура, содержащая метаинформацию о каждой странице данных в основном слое таблицы. Для каждой страницы в ней отводится два бита: первый (
all-visible
, полностью видимая) показывает, что все кортежи в странице видны всем транзакциям, а второй (all-frozen
, полностью замороженная) показывает, что все кортежи в странице помечены как замороженные.- Карта свободного пространства (слой)
Хранимая структура, содержащая метаинформацию о каждой странице данных в основном слое таблицы. В ней указывается, какой объём доступен для новых кортежей в каждой странице, при этом сама она специально оптимизирована для эффективного поиска свободного места для нового кортежа заданного размера.
Подробности в Разделе 73.3.
- Каталог
В стандарте SQL этот термин обозначает то, что в терминологии PostgreSQL называется базой данных.
(Не путайте это понятие с понятием системного каталога).
Подробности в Разделе 22.1.
- Каталог данных
Главный каталог сервера в файловой системе, содержащий все файлы данных и подкаталоги, связанные с кластером баз данных (за исключением табличных пространств и, возможно, WAL). Обычно на каталог данных ссылается переменная окружения
PGDATA
.Каталог данных в совокупности со всеми дополнительными табличными пространствами образует хранилище данных кластера.
Подробности в Разделе 73.1.
- Класс (устаревшее)
См. Отношение.
- Кластер баз данных
Набор баз данных и глобальных SQL-объектов, а также их общих статических и динамических метаданных. Иногда также называется просто кластером. Кластер баз данных создаётся с использованием программы initdb.
В PostgreSQL термин кластер иногда обозначает также экземпляр СУБД. (Не путайте этот термин с SQL-командой
CLUSTER
.)См. также владелец кластера — владелец кластера в операционной системе, и начальный суперпользователь — владелец кластера PostgreSQL.
- Клиент (процесс)
Любой процесс, возможно, удалённый, который подключается к экземпляру сервера для взаимодействия с базой данных и осуществляет сеанс использования СУБД.
- Ключ
Средство идентификации строки в таблице или другом отношении по значениям, содержащимся в одном или нескольких атрибутах этого отношения.
- Конкурентный доступ
Концепция, определяющая возможность одновременного выполнения нескольких независимых операций в одной базе данных. В PostgreSQL конкурентный доступ реализуется механизмом многоверсионного управления конкурентным доступом.
- Контрольная точка
Точка в последовательности записей WAL, в которой гарантируется, что в файлы данных кучи и индекса попала вся информация из общей памяти, изменённая до контрольной точки; для обозначения этой точки в WAL записывается и сбрасывается запись контрольной точки.
Контрольной точкой также называется процедура, в ходе которой выполняются все действия, необходимые для достижения контрольной точки в приведённом выше определении. Эта процедура запускается при выполнении предопределённых условий, например по истечении заданного времени или после помещения в журнал некоторого объёма записей; также её можно вызвать командой
CHECKPOINT
.Подробности в Разделе 29.5.
- Кортеж
Упорядоченный набор атрибутов. Порядок атрибутов может определяться таблицей (или другим отношением), в которой содержится кортеж. В этом случае кортеж часто называют строкой таблицы. Он также может определяться структурой результирующего множества; такие кортежи иногда называют записями.
- Куча
Содержит значения атрибутов строк (то есть непосредственно данные) отношения. Куча размещается в одном или нескольких файловых сегментах в основном слое отношения.
- Материализованное представление (отношение)
Отношение, которое определяется оператором
SELECT
(подобно обычному представлению) и при этом содержит данные как обычная таблица. Его содержимое нельзя изменить операциямиINSERT
,UPDATE
,DELETE
иMERGE
.Подробности в описании CREATE MATERIALIZED VIEW.
- Материализованные данные
Свойство данных, означающее, что они были вычислены заранее и сохранены для последующего использования, а не вычисляются каждый раз «на лету».
Это используется в материализованных представлениях, в которых данные, полученные из запроса, определяющего представление, сохраняются на диске отдельно от первоисточника данных.
Этот термин также используется применительно к некоторым многоэтапным запросам, в которых данные, полученные на некотором этапе, сохраняются в памяти (а могут быть также вытеснены на диск), благодаря чем они могут быть многократно прочитаны на следующем этапе выполнения.
- Многоверсионное управление конкурентным доступом (MVCC)
Механизм, позволяющий нескольким транзакциям читать и записывать одни и те же строки и при этом не ждать друг друга. В PostgreSQL для реализации MVCC создаются копии (версии) кортежей, когда их данные меняются; после того, как все транзакции, которым были нужны старые версии, завершаются, эти версии удаляются.
- Надёжность
Гарантия того, что после фиксирования транзакции произведённые ей изменения не будут потеряны даже в случае системной ошибки или краха сервера. Это одно из свойств ACID.
- Начальный суперпользователь
Первый пользователь, инициализированный в кластере баз данных.
Этот пользователь владеет всеми таблицами системного каталога в каждой базе данных. А также это роль, от имени которой автоматически выдаются все разрешения. По вышеуказанным причинам эту роль нельзя удалять.
Эта роль также ведёт себя как обычный суперпользователь баз данных.
- Нежурналируемое отношение
Отношение, изменения в котором не отражаются в журнале WAL. Для таких отношений отсутствует возможность репликации и восстановления после сбоя.
Нежурналируемые таблицы полезны в основном, когда требуется эффективно передать промежуточные рабочие данные между процессами.
Все временные таблицы являются нежурналируемыми.
- Область данных
См. Каталог данных.
- Обслуживающий процесс (backend)
Процесс экземпляра сервера, заключающий в себе реализацию сеанса клиента и обрабатывающий его запросы.
(Не путайте это понятие с понятиями фоновый рабочий процесс и фоновый процесс записи).
- Общая память
Область ОЗУ, совместно используемая процессами, относящимися к одному экземпляру сервера. В неё отображаются блоки файлов базы данных, а также она служит временным хранилищем для записей WAL и содержит дополнительную общую информацию. Заметьте, что общая память относится ко всему экземпляру, а не к отдельной базе данных в нём.
Самая большая часть общей памяти — общие буферы, в которые в виде страниц отображаются блоки файлов данных. Страница, изменённая в буфере, но ещё не сохранённая в файловой системе, называется «грязной».
Подробности в Подразделе 19.4.1.
- Обёртка сторонних данных
Способ представления данных, находящихся не в локальной базе данных, таким образом, что они отображаются как содержащиеся в локальных таблицах. Обёртка сторонних данных позволяет определить сторонний сервер и сторонние таблицы.
Подробности в описании CREATE FOREIGN DATA WRAPPER.
- Ограничение
Условие, определяющее допустимость значений данных в таблице или атрибутов в домене.
Подробности в Разделе 5.4.
- Ограничение уникальности
Вид ограничения, определённого для отношения, который ограничивает значения, допустимые в одном или нескольких столбцах таким образом, чтобы данное значение или набор значений могли присутствовать в отношении только один раз — то есть ни в какой другой строке отношения не может быть значений, равных данным.
Так как значения NULL не считаются равными друг другу, ограничение уникальности не нарушается, если в отношении есть несколько строк со значениями NULL.
- Ограничение-проверка
Вид ограничения, определяемый для отношения и ограничивающий множество значений, допустимых в одном или нескольких атрибутах. Проверка-ограничение может обращаться к любому атрибуту в той же строке отношения, но не может обращаться к другим строкам этого же отношения или к другим отношениям.
Подробности в Разделе 5.4.
- Оконная функция (подпрограмма)
Вид функций, используемых в запросах, который применяется к секции результирующего множества запроса; результат такой функции зависит от значений в строках одной секции или рамки.
В качестве оконных могут использоваться и агрегатные функции, но оконные функции способны, например, определять ранг для каждой строки в секции. Также они называются аналитическими функциями.
Подробности в Разделе 3.5.
- Оптимизатор
См. Планировщик запросов.
- Отношение
Общий термин, который охватывает все объекты в базе данных, имеющие имя и упорядоченный список атрибутов. Отношениями являются таблицы, последовательности, представления, сторонние таблицы, материализованные представления, составные типы и индексы.
В более общем смысле отношением является набор кортежей; например, результат выполнения запроса тоже отношение.
В PostgreSQL название класс является устаревшим синонимом отношения.
- Очистка (VACUUM)
Процесс удаления устаревших версий кортежей из таблиц или материализованных представлений и другая тесно связанная с ним обработка данных, потребность в которой продиктована реализацией MVCC в PostgreSQL. Очистку можно запустить вручную, воспользовавшись командой
VACUUM
, но она также может осуществляться автоматически процессами автоочистки.Подробности в Разделе 24.1.
- Параллельное выполнение
Возможность распределять обработку частей запроса между несколькими процессами, увеличивая тем самым эффективность использования многоядерных компьютеров.
- Первичный ключ
Особый вид ограничения уникальности, определяемого для таблицы или другого отношения, который дополнительно гарантирует, что все атрибуты в первичном ключе отличны от null. Как можно понять из названия, в таблице может быть только один первичный ключ, хотя в ней может быть несколько ограничений уникальности, так же не допускающих значения null в атрибутах.
- Переработка
См. Файл WAL.
- Планировщик запросов
Компонент PostgreSQL, предназначенный для определения (планирования) наиболее эффективного способа выполнения запросов. Также называется оптимизатором запросов, оптимизатором или просто планировщиком.
- Подпрограмма
Определённый набор инструкций, сохранённый в СУБД, который может выполняться по запросу. Подпрограммы могут быть написаны на самых разных языках программирования. Понятие подпрограмм включает функции (в том числе функции, возвращающие множества, и триггерные функции), агрегатные функции и процедуры.
PostgreSQL уже содержит большое количество подпрограмм и при этом поддерживает добавление пользовательских подпрограмм.
- Пользователь
Роль с правом LOGIN (см. Раздел 21.2).
- Последовательность (отношение)
Вид отношения, позволяющий генерировать значения, чаще всего это последовательные неповторяющиеся числа. Последовательности часто применяются для генерирования идентификаторов в первичном ключе.
- Последовательный номер в журнале (LSN)
Байтовое смещение в WAL, монотонно увеличивающееся с каждой новой записью WAL.
Подробности в описании
pg_lsn
и Раздел 29.7.- Представление
Отношение, которое определяется оператором
SELECT
но само по себе не хранится. При каждом обращении к представлению его определение подставляется в запрос, как если бы пользователь просто вставил это определение в запрос вместо имени представления.Подробности в описании CREATE VIEW.
- Приведение
Преобразование элемента данных из его текущего типа в другой тип данных.
Подробности в CREATE CAST.
- Процедура (подпрограмма)
Вид подпрограммы, характеризующийся отсутствием возвращаемых значений. Кроме того, процедуры могут содержать операторы управления транзакциями, например
COMMIT
иROLLBACK
. Вызываются процедуры командойCALL
.Подробности в описании CREATE PROCEDURE.
- Процесс postmaster
Самый первый процесс экземпляра сервера. Он запускает вспомогательные процессы и управляет ими, а также создаёт обслуживающие процессы по требованию.
Подробности в Разделе 18.3.
- Процесс архивации WAL
Вспомогательный процесс, который сохраняет копии файлов WAL для осуществления резервного копирования или для поддержания актуального состояния реплик. Он может быть отключён.
Подробности в Разделе 25.3.
- Процесс записи WAL
Вспомогательный процесс, который переносит записи WAL из общей памяти в файлы WAL.
Подробности в описании Разделе 19.5.
- Процесс запуска
Вспомогательный процесс, воспроизводящий WAL во время восстановления после сбоя и в физической реплике.
(Такое имя объясняется историческими причинами: процесс запуска был назван так до того, как была реализована репликация; имя отражает задачу этого процесса — запуск сервера после сбоя.)
- Процесс контрольных точек (checkpointer)
Вспомогательный процесс, отвечающий за выполнение процедуры контрольной точки.
- Процесс протоколирования
Вспомогательный процесс, который записывает сообщения о событиях в базе данных в свой текущий файл журнала. Данный файл сменяется другим, когда выполняется некоторый критерий (ограничение по времени или объёму). Также этот процесс называется syslogger. Он может быть отключён.
Подробности в Разделе 19.8.
- Процесс фоновой записи
Вспомогательный процесс, записывающий «грязные» страницы данных из общей памяти в файловую систему. Он периодически активируется на короткое время, чтобы создаваемая им значительная нагрузка на подсистему ввода/вывода распределялась во времени с целью исключения пиков нагрузки, блокирующих другие процессы.
Подробности в Подразделе 19.4.5.
- Процесс-передатчик WAL
Специальный обслуживающий процесс, передающий WAL по сети. Принимать его может процесс-приёмник WAL в реплике, pg_receivewal или любая другая клиентская программа, понимающая протокол репликации.
- Процесс-приёмник WAL
Вспомогательный процесс, который выполняется на реплике и получает от основного сервера WAL для воспроизведения процессом запуска.
Подробности в Разделе 26.2.
- Раздувание
Увеличение объёма, занимаемого не текущими версиями строк, в том числе объёма неиспользуемого (свободного) места и объёма, занимаемого устаревшими версиями строк.
- Расширение
Дополнительный программный модуль, который может быть установлен в экземпляре сервера для расширения его функциональности.
Подробности в Разделе 40.17.
- Результирующее множество
Отношение, передаваемое из обслуживающего процесса клиенту после выполнения команды SQL, обычно
SELECT
, но также это могут быть командыINSERT
,UPDATE
илиDELETE
с предложениемRETURNING
.То, что результирующее множество является отношением, означает, что один запрос может фигурировать в определении другого запроса в качестве подзапроса.
- Реплика
База данных, связанная с ведущей базой и содержащая копию некоторых или всех данных последней. Прежде всего такие базы создаются для расширения возможностей доступа к данным, а также для обеспечения доступности данных в случае потери ведущего сервера.
- Репликация
Перенос информации с одного сервера на другой называется репликацией. Она может реализовываться как физическая репликация, когда с одного сервера на другой переносятся все изменения на уровне файлов, или как логическая репликация, когда передаются изменения в определённом подмножестве данных, представленные на более высоком уровне.
- Роль
Набор прав доступа к объектам экземпляра сервера. Принадлежность к роли тоже может считаться правом, которым можно наделять другие роли. Это часто используется, когда нужно дать одинаковые права множеству пользователей или организовать распределение прав удобным образом.
Подробности в описании CREATE ROLE.
- Сеанс
Состояние, в котором клиент может взаимодействовать с обслуживающим процессом, используя установленное соединение.
- Сегмент
См. Файловый сегмент.
- Сегмент WAL
См. Файл WAL.
- Секционированная таблица (отношение)
Отношение, которое по смыслу не отличается от таблицы, но его содержимое хранится распределённо, в нескольких секциях.
- Секция
Одно из нескольких отдельных (не пересекающихся) подмножеств большего множества.
Применительно к секционированной таблице: одна из таблиц, содержащих часть данных секционированной таблицы, которая называется родительской. Секция сама по себе является таблицей, поэтому запросы могут обращаться к ней напрямую; при этом секция тоже может быть секционированной таблицей, таким образом могут создаваться иерархии.
Применительно к оконным функциям в запросе секция соответствует определённому пользователем критерию, группирующему строки результирующего множества запроса для обработки такой функцией.
- Сервер
Компьютер, на котором работают экземпляры PostgreSQL. Сервером может называться как физическая, так и виртуальная машина или контейнер.
Иногда сервером также называют экземпляр сервера баз данных.
- Сервер баз данных
См. Экземпляр СУБД.
- Система накопительной статистики
Система, которая собирает статистическую информацию о действиях экземпляра сервера. Она может быть отключена.
Подробности в Разделе 27.2.
- Системный каталог
Набор таблиц, которые описывают структуру всех SQL-объектов сервера. Системный каталог располагается в схеме
pg_catalog
. Его таблицы содержат данные во внутреннем представлении и не считаются полезными для конечных пользователей. В более понятном виде часть этой информации доступна в ряде системных представлений, также находящихся в схемеpg_catalog
. Кроме того, имеется схемаinformation_schema
(см. Главу 39), содержащая дополнительные таблицы и представления, из которых можно получить информацию (частично ту же, но также и некоторую другую), предоставляемую в соответствии с требованиями стандарта SQL.Подробности в Разделе 5.9.
- Слой
Отдельный набор файлов-сегментов, в которых хранится отношение. В основном слое находятся собственно данные отношения. Помимо него существует два дополнительных слоя для метаданных: карта свободного пространства и карта видимости. У нежурналируемых отношений также имеется слой инициализации.
- Согласованность
Свойство базы, суть которого в том, что данные базы всегда удовлетворяют ограничениям целостности. Транзакциям позволяется временно нарушать такие ограничения, но если к моменту завершения транзакции эти нарушения не устраняются, транзакция автоматически откатывается. Это одно из свойств ACID.
- Соединение
Установленное подключение клиентского процесса к обслуживающему процессу, обычно сетевое, в рамках которого существует сеанс. Иногда этот термин употребляется как синоним сеанса.
Подробности в Разделе 19.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
.- Строка таблицы
См. Кортеж.
- Суперпользователь
В данной документации это синоним суперпользователя базы данных.
- Суперпользователь баз данных
Роль, имеющая статус суперпользователя (см. Раздел 21.2).
Часто также называется суперпользователь.
- Схема
Пространство имён SQL-объектов, принадлежащих одной базе данных. Каждый отдельный SQL-объект должен располагаться ровно в одной схеме.
Все системные SQL-объекты располагаются в схеме
pg_catalog
.В более общем смысле схема — это совокупность всех описаний данных (определений таблиц, ограничений, комментариев и т. д.) в определённой базе или в её подмножестве.
Подробности в Разделе 5.9.
- Таблица
Набор кортежей, имеющих общую структуру данных (одинаковое количество атрибутов в том же порядке, имеющих одинаковые имена и типы). Таблица является наиболее распространённым видом отношения в PostgreSQL.
Подробности в описании CREATE TABLE.
- Табличное пространство
Именованное расположение в файловой системе сервера. Все SQL-объекты, для которых требуется хранилище, должны располагаться в некотором табличном пространстве (при этом их определения размещаются в системном каталоге). Изначально в кластере баз данных есть только одно табличное пространство, которое называется
pg_default
и содержит по умолчанию все SQL-объекты.Подробности в Разделе 22.6.
- Точка перезапуска
Вариант контрольной точки, выполняемый на реплике.
Подробности в Разделе 29.5.
- Точка сохранения
Специальная отметка в последовательности операций транзакции. Изменения данных, произведённые после этой отметки, могут быть отменены, таким образом будет получено состояние на момент сохранения.
Подробности в описании SAVEPOINT.
- Транзакции/сек (TPS)
Среднее количество транзакций, выполняющихся за секунду, подсчитанное по всем сеансам за время наблюдения. Эта величина позволяет оценить производительность экземпляра сервера.
- Транзакция
Совокупность команд, которые должны выполниться как одна атомарная команда: они завершаются успешно либо отменяются все вместе, а результат их выполнения не виден в других сеансах до завершения транзакции и, возможно, даже позже (в зависимости от уровня изоляции).
Подробности в Разделе 13.2.
- Триггер
Функция, которая вызывается при выполнении определённой операции (
INSERT
,UPDATE
,DELETE
,TRUNCATE
) с некоторым отношением. Триггер выполняется в рамках той же транзакции, что и вызвавший его оператор, и если в функции триггера произойдёт ошибка, этот оператор тоже не будет выполнен успешно.Подробности в описании CREATE TRIGGER.
- Файл WAL
Также называется сегментом WAL или файлом сегмента WAL. Представляет собой один из последовательно нумеруемых файлов, служащих хранилищем WAL. Все эти файлы имеют одинаковый предопределённый размер и записываются по порядку. В файле WAL перемежаются изменения, производимые в нескольких параллельных сеансах. В случае сбоя системы эти файлы также по порядку считываются и все записанные в них изменения воспроизводятся, в результате чего восстанавливается последнее состояние системы до сбоя.
Каждый файл WAL может быть освобождён после того, как во время контрольной точки все изменения из него будут переписаны в соответствующие файлы данных. Освобождённый файл может быть просто удалён либо переименован (или переработан) так, чтобы его можно было использовать в будущем.
Подробности в Разделе 29.7.
- Файл журнала
Файлы журналов содержат предназначенные для человека текстовые сообщения о событиях. Например, в журнале могут фиксироваться ошибки входа, длительные запросы и т. д.
Подробности в Разделе 24.3.
- Файловый сегмент
Физический файл, содержащий данные для определённого отношения. Размер сегментов ограничивается параметром конфигурации (обычно ограничение равно 1 гигабайту), поэтому отношения большего объёма разбиваются на несколько сегментов.
Подробности в Разделе 73.1.
(Не путайте это понятие с подобным понятием сегмент WAL).
- Фиксирование
Акт успешного завершения транзакции в базе данных, обеспечивающий надёжность и видимость её результатов для других транзакций.
Подробности в COMMIT.
- Фоновый рабочий процесс
Процесс внутри экземпляра сервера, выполняющий системный или пользовательский код. Обеспечивает инфраструктуру для различной функциональности PostgreSQL, в частности для логической репликации и параллельных запросов. Кроме того, отдельные рабочие процессы могут создаваться расширениями.
Подробности в Главе 50.
- Функция (подпрограмма)
Вид подпрограммы, который получает ноль или более аргументов, выдаёт ноль или более выходных значений и может выполняться только в рамках одной транзакции. Функции могут вызываться в ходе выполнения запросов, например,
SELECT
. Функции особого рода могут выдавать множества; они называются функциями, возвращающими множества.Функции также вызываются при срабатывании триггеров.
Подробности в описании CREATE FUNCTION.
- Экземпляр СУБД
Группа обслуживающих и вспомогательных процессов, использующих общую область разделяемой памяти. Экземпляром СУБД управляет один процесс postmaster, и относится к этому экземпляру ровно один кластер баз данных со всеми его базами. На одном сервере могут работать несколько экземпляров СУБД, если их TCP-порты не конфликтуют.
Конкретный экземпляр реализует все функциональные возможности СУБД: читает и записывает файлы, работает с общей памятью, обеспечивает свойства ACID, принимает подключения клиентских процессов, проверяет права доступа, выполняет восстановление после сбоя, осуществляет репликацию и т. д.
- Элемент данных
Внутреннее представление одного значения некоторого типа данных SQL.