Справочник курса

Глоссарий PostgreSQL

Единая терминология курса. Термины даются парами: SQL-слово и теоретическое понятие из реляционной модели. ✓ пройдено — отмечает, что тема разобрана в уроке.

Структура данных

Таблица / отношение table / relation ✓ урок 1

Именованный набор строк с фиксированным списком столбцов. В теории реляционных БД это «отношение». Таблица — это множество строк: порядок строк не определён, пока вы явно не закажете сортировку.

Пример: таблица users со столбцами email, created_at.

Строка / запись / кортеж row / record / tuple ✓ урок 1

Один элемент таблицы — набор значений по всем столбцам. Физически Postgres хранит строку как «кортеж» (tuple) внутри страницы на диске.

Пример: ('ann@x.io', '2026-06-18') — одна строка в users.

Столбец / поле / атрибут column / field / attribute ✓ урок 1

Именованная характеристика с одним фиксированным типом для всех строк. Тип — это контракт: в столбец нельзя положить значение другого типа.

Пример: столбец created_at типа date.

Тип данных data type ✓ урок 1

Множество допустимых значений столбца и операций над ними. Базовые в Postgres: integer/bigint, text, boolean, date/timestamptz, numeric, uuid.

Схема schema

Два смысла. (1) Структура базы — список таблиц, столбцов, типов, ключей («схема данных»). (2) Пространство имён внутри базы (объект SCHEMA, по умолчанию public), в котором лежат таблицы. В курсе «схема» по умолчанию = смысл (1), если не сказано иное.

NULL null ✓ урок 1

Особое значение «нет данных / неизвестно». Это не ноль и не пустая строка. Сравнение с NULL через = даёт не «истину/ложь», а «неизвестно»; проверяют через IS NULL / IS NOT NULL.

Ограничения и ключи

Ограничение целостности constraint ✓ урок 2

Правило, которое СУБД проверяет при каждой записи и не даёт нарушить. Виды: NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK.

NOT NULL not null ✓ урок 2

Запрещает NULL в столбце — значение обязано присутствовать в каждой строке.

Уникальность UNIQUE ✓ урок 2

Запрещает повторы значений в столбце (или наборе столбцов). Допускает NULL (в отличие от первичного ключа).

Первичный ключ / ПК PRIMARY KEY · PK ✓ урок 2

Столбец (или набор), который уникально идентифицирует каждую строку. Это UNIQUE + NOT NULL плюс метка «это и есть идентификатор строки». На таблицу — только один. Автоматически создаёт уникальный индекс-B-дерево.

Внешний ключ / ВК FOREIGN KEY · FK

Столбец, который ссылается на первичный ключ другой (или той же) таблицы. Гарантирует ссылочную целостность: нельзя сослаться на несуществующую строку. Поведение при удалении/обновлении задаётся ON DELETE / ON UPDATE.

Суррогатный ключ surrogate key

Искусственный идентификатор без смысла в предметной области (автоинкремент id, uuid). Противоположность — естественный ключ (значение из реального мира: email, ИНН).

IDENTITY / SERIAL GENERATED … AS IDENTITY

Способ автоматически генерировать растущие целочисленные id. Современный рекомендованный синтаксис — GENERATED ALWAYS AS IDENTITY; старый — serial/bigserial. Под капотом использует последовательность (sequence).

Последовательность sequence

Отдельный объект-счётчик, выдающий следующее число. Питает IDENTITY/serial. Выдаёт значения без «дыр»-гарантии: при откате транзакции номер не возвращается.

UUID uuid

128-битный глобально уникальный идентификатор (напр. 550e8400-e29b-41d4-a716-446655440000). Альтернатива числовому id, когда нужна уникальность без обращения к серверу или сокрытие порядка/количества.

Доступ и производительность

Индекс index

Дополнительная структура данных, ускоряющая поиск строк по значению столбца — ценой места на диске и замедления записи. По умолчанию в Postgres — B-дерево.

B-дерево B-tree

Сбалансированное дерево, хранящее значения в отсортированном порядке. Даёт быстрый поиск по равенству и по диапазону (=, <, >, BETWEEN, сортировка). Тип индекса по умолчанию.

Seq Scan / Index Scan sequential / index scan

Два способа найти строки. Seq Scan — прочитать всю таблицу подряд. Index Scan — найти нужное через индекс. Какой выбрать, решает планировщик; увидеть его выбор можно командой EXPLAIN.

Куча / страница / TID heap / page / TID

Физическое хранение. Строки лежат в «куче» (heap) — файле из страниц по 8 КБ. Адрес строки — TID (номер страницы + номер строки в ней). Индекс по сути отображает значение → TID.

Команды и инструменты

psql psql

Штатный консольный клиент PostgreSQL: подключиться к базе и выполнять SQL. Полезные команды: \dt (список таблиц), \d имя (структура таблицы), \q (выход).

DDL / DML DDL / DML

DDL — язык описания структуры: CREATE TABLE, ALTER TABLE, DROP. DML — язык работы с данными: SELECT, INSERT, UPDATE, DELETE.