Глоссарий

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

ACID

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

DELETE

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

Подробную информацию см. на справочной странице команды DELETE.

GRANT

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

Подробную информацию см. на справочной странице команды GRANT.

INSERT

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

Подробную информацию см. на справочной странице команды INSERT.

NULL

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

Qhbmaster (процесс)

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

Подробную информацию см. в разделе Запуск сервера баз данных.

REVOKE

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

Подробную информацию см. на справочной странице команды REVOKE.

ROLLBACK

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

Подробную информацию см. на справочной странице команды ROLLBACK.

SELECT

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

Подробную информацию см. на справочной странице команды SELECT.

TOAST

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

Подробную информацию см. в разделе TOAST.

UPDATE

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

Подробную информацию см. на справочной странице команды UPDATE.

WAL

См. Журнал упреждающей записи.

Автовакуум (процесс)

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

Подробную информацию см. в подразделе Процесс «Автовакуум».

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

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

Подробную информацию см. в разделе Агрегатные функции.

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

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

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

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

Подробную информацию см. на справочной странице команды ANALYZE.

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

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

Архивирование WAL (процесс)

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

Подробную информацию см. в разделе Непрерывное архивирование и восстановление на момент времени (PITR).

Атомарность

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

Атомарный

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

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

Атрибут

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

База данных

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

Подробную информацию см. в разделе Обзор главы «Управление базами данных».

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

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

Блокировка

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

Ветвь

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

Внешний ключ

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

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

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

Подробную информацию см. на справочной странице команды CREATE TABLE.

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

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

Главный сервер

См. Основной сервер.

Домен

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

Подробную информацию см. в разделе Типы доменов.

Журнал упреждающей записи

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

Журналируемость

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

Записывание WAL (процесс)

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

Подробную информацию см. в разделе Журнал упреждающей записи.

Запись

См. Кортеж.

Запись WAL

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

Подробную информацию см. в разделе Внутреннее устройство WAL.

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

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

Запрос

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

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

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

Подробную информацию см. в разделе Типы идентификаторов объектов.

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

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

Подробную информацию см. в разделе Изоляция транзакций.

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

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

Подробную информацию см. на справочной странице команды CREATE INDEX.

Карта видимости (ветвь)

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

Карта свободного пространства (ветвь)

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

Подробную информацию см. в разделе Карта свободного пространства.

Каталог

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

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

Подробную информацию см. в разделе Обзор главы «Управление базами данных».

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

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

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

Подробную информацию см. в разделе Структура файлов базы данных.

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

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

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

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

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

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

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

Ключ

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

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

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

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

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

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

Подробную информацию см. в разделе Конфигурация WAL.

Кортеж

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

Куча

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

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

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

Подробную информацию см. на справочной странице команды CREATE MATERIALIZED VIEW.

Материализованность

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

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

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

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

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

Мусорный объем

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

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

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

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

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

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

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

Подробную информацию см. на справочной странице команды CREATE FOREIGN DATA WRAPPER.

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

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

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

Процесс экземпляра СУБД, который реализует сеанс клиента и обрабатывает его запросы.

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

Объект SQL

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

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

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

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

Подробную информацию см. в разделе Обзор главы Управление базами данных.

Ограничение

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

Подробную информацию см. в разделе Ограничения.

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

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

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

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

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

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

Подробную информацию см. в разделе Оконные функции.

Оптимизатор

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

Основной сервер

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

Отношение

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

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

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

Очистка (VACUUM)

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

Подробную информацию см. в разделе Регулярная очистка.

Параллельный запрос

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

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

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

Партиция

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

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

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

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

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

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

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

Переработка

См. Файл WAL.

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

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

Подключение

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

Подробную информацию см. в разделе Подключения и аутентификация.

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

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

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

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

Роль с правом LOGIN.

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

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

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

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

Подробную информацию см. на справочной странице команды CREATE VIEW.

Приведение

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

Подробную информацию см. на справочной странице команды CREATE CAST.

Приемник WAL (процесс)

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

Подробную информацию см. в разделе Доставка журналов на резервные серверы.

Проверочное ограничение

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

Подробную информацию см. в разделе Ограничения.

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

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

Подробную информацию см. в разделе Регистрация ошибок и протоколирование.

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

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

Подробную информацию см. на справочной странице команды CREATE PROCEDURE.

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

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

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

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

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

Прочность

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

Разделяемая память

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

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

Подробную информацию см. в подразделе Память.

Расширение

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

Подробную информацию см. в разделе Упаковка связанных объектов в расширение.

Резервный сервер

См. Реплика (сервер).

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

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

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

Реплика (сервер)

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

Репликация

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

Роль

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

Подробную информацию см. на справочной странице команды CREATE ROLE.

Сеанс

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

Сегмент

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

Сегмент WAL

См. Файл WAL.

Сервер

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

Иногда сервером также называют экземпляр СУБД или сетевой узел.

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

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

Сетевой узел (хост)

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

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

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

Подробную информацию см. в разделе Система накопительной статистики.

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

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

Подробную информацию см. в разделе Схемы.

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

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

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

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

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

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

Подробную информацию см. на справочной странице команды CREATE USER MAPPING.

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

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

Стандарт SQL

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

Столбец

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

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

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

Подробную информацию см. на справочной странице команды CREATE SERVER.

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

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

Подробную информацию см. на справочной странице команды CREATE FOREIGN TABLE.

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

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

Строка

См. Кортеж.

Схема

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

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

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

Подробную информацию см. в разделе Схемы.

Таблица

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

Подробную информацию см. на справочной странице команды CREATE TABLE.

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

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

Подробную информацию см. в разделе Табличные пространства.

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

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

Подробную информацию см. на справочной странице команды SAVEPOINT.

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

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

Транзакция

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

Подробную информацию см. в разделе Изоляция транзакций.

Триггер

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

Подробную информацию см. на справочной странице команды CREATE TRIGGER.

Файл WAL

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

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

Подробную информацию см. в разделе Внутреннее устройство WAL.

Файл журнала

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

Подробную информацию см. в разделе Обслуживание файлов журнала.

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

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

Подробную информацию см. в разделе Структура файлов базы данных.

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

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

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

Подробную информацию см. на справочной странице команды COMMIT.

Фоновая запись (процесс)

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

Подробную информацию см. в подразделе Фоновая запись.

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

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

Подробную информацию см. в главе Фоновые рабочие процессы.

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

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

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

Подробную информацию см. на справочной странице команды CREATE FUNCTION.

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

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

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

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

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

Эпоха

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