Приложение O. Глоссарий
Ниже представлен перечень терминов с описанием их значений в контексте PostgreSQL и реляционных баз данных вообще.
- ACID
Atomicity (Атомарность), Consistency (Согласованность), Isolation (Изолированность) и Durability (Надёжность). Этот набор свойств транзакций в базе данных должен гарантировать корректность операций при параллельном выполнении, а также в случае ошибок, при отключении питания и т. п.
- DELETE
SQL-команда, которая удаляет строки из данной таблицы или отношения.
Подробности в описании DELETE.
- GMT
См. UTC.
- GRANT
SQL-команда, дающая пользователю или роли доступ к определённым объектам в базе данных.
Подробности в описании GRANT.
- INSERT
SQL-команда, добавляющая в таблицу новые данные.
Подробности в описании INSERT.
- LSN
- MERGE
Команда SQL для добавления, изменения или удаления строк с определёнными условиями в заданной таблице с использованием данных из исходного отношения.
Подробности в описании MERGE.
- NULL
Понятие неопределённости, выражаемой как NULL, является ключевым в теории реляционных баз данных. Оно обозначает отсутствие какого-либо определённого значения.
- REVOKE
Команда, лишающая указанные роли доступа к определённому набору объектов базы данных.
Подробности в описании REVOKE.
- ROLLBACK
Команда, отменяющая все операции, выполненные с начала транзакции.
Подробности в описании ROLLBACK.
- SELECT
SQL-команда, позволяющая запросить данные из базы. Обычно команды
SELECTне должны изменять состояние базы никаким образом, однако выполняемые ими запросы могут вызывать функции, в качестве побочного эффекта меняющие данные.Подробности в описании SELECT.
- SQL-объект
Любой объект, который может быть создан командой
CREATE. Большинство объектов относятся к одной базе данных, поэтому они обычно называются локальными объектами.Большинство локальных объектов находятся в определённых схемах в соответствующей базе, например отношения (любых видов), подпрограммы (любых видов), типы данных и т. д. Имена объектов одного вида в отдельной схеме должны быть уникальными.
Кроме того, существуют локальные объекты, находящиеся вне схем, например расширения, приведения типов данных и обёртки сторонних данных. Имена таких объектов одного вида должны быть уникальными в базе данных.
Другие виды объектов, а именно роли, табличные пространства, источники репликации, подписки логической репликации, а также сами базы данных не являются локальными SQL-объектами, так как они существуют вне какой-либо отдельной базы; они называются глобальными объектами. Имена таких объектов должны быть уникальными во всём кластере баз данных.
Подробности в Разделе 21.1.
- TOAST
Механизм, который обеспечивает хранение больших атрибутов строк таблицы, размещая их в дополнительной TOAST-таблице. У каждого отношения с большими атрибутами имеется собственная TOAST-таблица.
Подробности в Разделе 70.2.
- UPDATE
SQL-команда, вносящая изменения в уже существующие строки определённой таблицы. Эта команда не добавляет и не удаляет строки.
Подробности в описании UPDATE.
- UTC
Всемирное координированное время (UTC) — основная глобальная система отсчёта времени, близкая к времени нулевого меридиана. Часто ошибочно называют средним временем по Гринвичу (GMT).
- WAL
См. Журнал предзаписи.
- Автоочистка (autovacuum)
Набор фоновых процессов, регулярно выполняющих операции очистки и анализа. Вспомогательный процесс, который координирует работу и существует всегда (если не отключена автоочистка), называется «autovacuum launcher» (процесс запуска автоочистки), а каждый процесс, который запускается для выполнения задач, называется «autovacuum worker» (рабочий процесс автоочистки).
Подробности в Подразделе 23.1.6.
- Агрегатная функция (подпрограмма)
Функция, которая сводит к одному значению (агрегирует) множество входных значений, например, подсчитывая их количество, складывая их или вычисляя среднее.
Подробности в Разделе 9.21.
См. также Оконная функция (подпрограмма).
- Анализ (операция)
Сбор статистики по данным в таблицах и других отношениях, помогающий планировщику запросов находить оптимальные способы выполнения запросов.
(Не путайте этот термин с указанием
ANALYZEкоманды EXPLAIN.)Подробности в ANALYZE.
- Аналитическая функция
- Атомарность
Свойство транзакции, которое заключается в том, что в результате транзакции все её операции выполняются вместе, либо не выполняются совсем. Кроме того, частичные изменения исключены в случае сбоя системы в процессе выполнения транзакции. Это одно из свойств ACID.
- Атомарный
Применительно к данным означает, что элемент данных нельзя разделить на меньшие части.
- Атрибут
Элемент с определённым именем и типом данных, содержащийся в кортеже.
- База данных
Именованный набор локальных SQL-объектов.
Подробности в Разделе 21.1.
- Базовая резервная копия
Двоичная копия всех файлов кластера базы данных, которая создаётся программой pg_basebackup. При наличии файлов WAL эту копию можно использовать в качестве отправной точки для восстановления, трансляции журналов или потоковой репликации.
- Блокировка
Механизм, позволяющий некоторому процессу ограничивать или запрещать параллельный доступ к ресурсу.
- Ведомый (резервный) сервер
См. Реплика.
- Ведущий (главный) сервер
См. Ведущий (сервер).
- Ведущий (сервер)
Когда несколько баз данных связываются вместе посредством репликации, сервер, служащий первоисточником информации, называется ведущим или главным.
- Владелец кластера
Пользователь операционной системы, которому принадлежит каталог данных и от имени которого запускается процесс
postgres. Необходимо, чтобы этот пользователь существовал до создания нового кластера базы данных.В операционных системах с пользователем
rootуказанному пользователю запрещается быть владельцем кластера.- Внешний ключ
Вид ограничения, определяемый для одного или нескольких столбцов в таблице и требующий, чтобы значения в этих столбцах указывали на ноль или одну строку в другой (в редких случаях, той же) таблице.
- Временная таблица
Таблица, существующая либо в рамках сеанса, либо в рамках транзакции, в соответствии с выбранным при её создании режимом. Такие таблицы не являются журналируемыми, и их содержимое не видно в других сеансах. Временные таблицы часто применяются, когда нужно сохранить промежуточные результаты в ходе сложной операции.
Подробности в описании CREATE TABLE.
- Вспомогательный процесс
Процесс, относящийся к экземпляру СУБД и отвечающий за определённую фоновую задачу для этого экземпляра. К числу вспомогательных процессов относятся процесс запуска автоочистки (но не рабочие процессы автоочистки), процесс фоновой записи, процесс контрольных точек, процесс протоколирования, процесс запуска, процесс архивации WAL, процесс-приёмник WAL (но не процессы-передатчики WAL) и процесс записи WAL.
- Домен
Пользовательский тип данных, основанный на другом нижележащем типе данных. Он действует так же, как нижележащий тип, за исключением возможного ограничения набора допустимых значений.
Подробности в Разделе 8.18.
- Журнал предзаписи
Журнал, в котором отслеживаются изменения в кластере баз данных, производимые при выполнении операций пользователями и самой системой. Он содержит множество отдельных записей WAL, вносимых последовательно в файлы WAL.
- Журналируемое отношение
Таблица считается журналируемой, если вносимые в неё изменения проходят через WAL. По умолчанию все обычные таблицы являются журналируемыми. Таблицу можно сделать нежурналируемой либо во время создания, либо выполнив команду
ALTER TABLE.- Запись
См. Кортеж.
- Запись WAL
Низкоуровневое описание отдельного изменения данных. Оно содержит достаточно информации для воспроизведения (повторного применения) этого изменения в случае сбоя системы до переноса изменения в базу. В записях WAL используется непечатаемый двоичный формат.
Подробности в Разделе 28.6.
- Запись журнала
Устаревшее название записи WAL.
- Запрос
Указание, передаваемое клиентом обслуживающему процессу, в результате выполнения которого меняются данные в базе или выдаются результаты для клиента.
- Идентификатор транзакции
Числовой уникальный идентификатор, последовательно назначаемый каждой транзакции при первой операции, меняющей данные. Часто он сокращённо обозначается xid. Когда эти идентификаторы хранятся на диске, каждый занимает всего 32 бита, поэтому только около 4 миллиардов пишущих транзакций могут получить уникальные идентификаторы. Чтобы система баз данных могла работать дольше, дополнительно используется эпоха, которая также имеет размер 32 бита. Когда счётчик транзакций достигает максимально возможного значения, он сбрасывается до
3(меньшие значения зарезервированы) и значение эпохи увеличивается на 1. В некоторых контекстах значения эпохи и xid рассматриваются вместе как одна 64-битная величина; за подробностями обратитесь к Разделу 71.1.Подробности в Разделе 8.19.
- Изолированность
Свойство, которое заключается в том, что результаты транзакции не видны для параллельных транзакций, пока она не будет зафиксирована. Это одно из свойств ACID.
Подробности в Разделе 13.2.
- Индекс (отношение)
Отношение, содержащее производную информацию от исходных данных таблицы или материализованного представления. Его внутренняя структура ориентирована на быстрый поиск и извлечение исходных данных.
Подробности в описании CREATE INDEX.
- Карта видимости (слой)
Хранимая структура, содержащая метаинформацию о каждой странице данных в основном слое таблицы. Для каждой страницы в ней отводится два бита: первый (
all-visible, полностью видимая) показывает, что все кортежи в странице видны всем транзакциям, а второй (all-frozen, полностью замороженная) показывает, что все кортежи в странице помечены как замороженные.- Карта свободного пространства (слой)
Хранимая структура, содержащая метаинформацию о каждой странице данных в основном слое таблицы. В ней указывается, какой объём доступен для новых кортежей в каждой странице, при этом сама она специально оптимизирована для эффективного поиска свободного места для нового кортежа заданного размера.
Подробности в Разделе 70.3.
- Каталог
В стандарте SQL этот термин обозначает то, что в терминологии PostgreSQL называется базой данных.
(Не путайте это понятие с понятием системного каталога).
Подробности в Разделе 21.1.
- Каталог данных
Главный каталог сервера в файловой системе, содержащий все файлы данных и подкаталоги, связанные с кластером баз данных (за исключением табличных пространств и, возможно, WAL). Обычно на каталог данных ссылается переменная окружения
PGDATA.Каталог данных в совокупности со всеми дополнительными табличными пространствами образует хранилище данных кластера.
Подробности в Разделе 70.1.
- Класс (устаревшее)
См. Отношение.
- Кластер баз данных
Набор баз данных и глобальных SQL-объектов, а также их общих статических и динамических метаданных. Иногда также называется просто кластером. Кластер баз данных создаётся с использованием программы initdb.
В PostgreSQL термин кластер иногда обозначает также экземпляр СУБД. (Не путайте этот термин с SQL-командой
CLUSTER.)См. также владелец кластера — владелец кластера в операционной системе, и начальный суперпользователь — владелец кластера PostgreSQL.
- Клиент (процесс)
Любой процесс, возможно, удалённый, который подключается к экземпляру сервера для взаимодействия с базой данных и осуществляет сеанс использования СУБД.
- Ключ
Средство идентификации строки в таблице или другом отношении по значениям, содержащимся в одном или нескольких атрибутах этого отношения.
- Конкурентный доступ
Концепция, определяющая возможность одновременного выполнения нескольких независимых операций в одной базе данных. В PostgreSQL конкурентный доступ реализуется механизмом многоверсионного управления конкурентным доступом.
- Контрольная точка
Точка в последовательности записей WAL, в которой гарантируется, что в файлы данных кучи и индекса попала вся информация из общей памяти, изменённая до контрольной точки; для обозначения этой точки в WAL записывается и сбрасывается запись контрольной точки.
Контрольной точкой также называется процедура, в ходе которой выполняются все действия, необходимые для достижения контрольной точки в приведённом выше определении. Эта процедура запускается при выполнении предопределённых условий, например по истечении заданного времени или после помещения в журнал некоторого объёма записей; также её можно вызвать командой
CHECKPOINT.Подробности в Разделе 28.5.
- Кортеж
Упорядоченный набор атрибутов. Порядок атрибутов может определяться таблицей (или другим отношением), в которой содержится кортеж. В этом случае кортеж часто называют строкой таблицы. Он также может определяться структурой результирующего множества; такие кортежи иногда называют записями.
- Куча
Содержит значения атрибутов строк (то есть непосредственно данные) отношения. Куча размещается в одном или нескольких файловых сегментах в основном слое отношения.
- Материализованное представление (отношение)
Отношение, которое определяется оператором
SELECT(подобно обычному представлению) и при этом содержит данные как обычная таблица. Его содержимое нельзя изменить операциямиINSERT,UPDATE,DELETEиMERGE.Подробности в описании CREATE MATERIALIZED VIEW.
- Материализованные данные
Свойство данных, означающее, что они были вычислены заранее и сохранены для последующего использования, а не вычисляются каждый раз «на лету».
Это используется в материализованных представлениях, в которых данные, полученные из запроса, определяющего представление, сохраняются на диске отдельно от первоисточника данных.
Этот термин также используется применительно к некоторым многоэтапным запросам, в которых данные, полученные на некотором этапе, сохраняются в памяти (а могут быть также вытеснены на диск), благодаря чем они могут быть многократно прочитаны на следующем этапе выполнения.
- Многоверсионное управление конкурентным доступом (MVCC)
Механизм, позволяющий нескольким транзакциям читать и записывать одни и те же строки и при этом не ждать друг друга. В PostgreSQL для реализации MVCC создаются копии (версии) кортежей, когда их данные меняются; после того, как все транзакции, которым были нужны старые версии, завершаются, эти версии удаляются.
- Надёжность
Гарантия того, что после фиксирования транзакции произведённые ей изменения не будут потеряны даже в случае системной ошибки или краха сервера. Это одно из свойств ACID.
- Начальный суперпользователь
Первый пользователь, инициализированный в кластере баз данных.
Этот пользователь владеет всеми таблицами системного каталога в каждой базе данных. А также это роль, от имени которой автоматически выдаются все разрешения. По вышеуказанным причинам эту роль нельзя удалять.
Эта роль также ведёт себя как обычный суперпользователь баз данных.
- Нежурналируемое отношение
Отношение, изменения в котором не отражаются в журнале WAL. Для таких отношений отсутствует возможность репликации и восстановления после сбоя.
Нежурналируемые таблицы полезны в основном, когда требуется эффективно передать промежуточные рабочие данные между процессами.
Все временные таблицы являются нежурналируемыми.
- Область данных