1. Основы реляционных баз данных и установка PostgreSQL
Основы реляционных баз данных и установка PostgreSQL
Представьте, что вы — владелец небольшого интернет-магазина. У вас есть список клиентов, каталог товаров, заказы и история платежей. Сначала вы держите всё в Excel-таблице, но со временем файл разрастается до сотен строк, появляются дубли, ссылки между листами ломаются, а поиск нужного клиента занимает минуты. Именно для решения таких проблем и были придуманы базы данных — системы, которые хранят, структурируют и обрабатывают данные быстро, надёжно и без хаоса.
Что такое реляционная база данных
Реляционная база данных — это организованное хранилище данных, где информация располагается в связанных между собой таблицах. Слово «реляционная» происходит от английского relation (отношение), и в контексте баз данных это означает именно «таблица». Каждая таблица состоит из строк (записей) и столбцов (полей), а между таблицами устанавливаются связи — например, заказ «ссылается» на клиента, который его оформил.
Представьте школьный журнал: в одной таблице — список учеников, в другой — оценки. Оценка не хранит имя ученика целиком — она хранит только его номер. По этому номеру можно найти полную информацию. Это и есть реляционный принцип: данные не дублируются, а ссылаются друг на друга.
| Свойство | Описание | Пример из жизни | |----------|----------|-----------------| | Таблица | Структурированный набор данных | Список учеников в журнале | | Строка (запись) | Один конкретный элемент данных | Конкретный ученик Иванов | | Столбец (поле) | Характеристика элемента | Имя, фамилия, дата рождения | | Первичный ключ | Уникальный идентификатор строки | Номер в журнале | | Связь (foreign key) | Ссылка между таблицами | Оценка ссылается на номер ученика |
Зачем нужен PostgreSQL
PostgreSQL — это мощная объектно-реляционная система управления базами данных (СУБД) с открытым исходным кодом. Она существует с 1996 года, стабильно развивается и используется такими компаниями, как Apple, Instagram, Spotify и «Яндекс». PostgreSQL поддерживает сложные запросы, хранимые процедуры, полнотекстовый поиск, JSON-данные и десятки других возможностей.
Для подготовки к экзамену PostgreSQL подходит идеально: его SQL-синтаксис максимально близок к стандарту, а бесплатная лицензия позволяет установить его на любой компьютер без ограничений.
Установка PostgreSQL
Windows
.exe-файл. Мастер установки предложит выбрать директорию, компоненты и порт (по умолчанию — 5432).postgres — запишите его, он понадобится для подключения.macOS
Откройте терминал и используйте Homebrew:
Linux (Ubuntu/Debian)
После установки PostgreSQL автоматически запускается как системный сервис.
Подключение к серверу
Для работы с PostgreSQL используется утилита psql — консольный клиент, который позволяет выполнять SQL-запросы прямо в терминале.
Флаг -U postgres указывает, что вы подключаетесь под пользователем postgres. Система запросит пароль — введите тот, что вы задали при установке.
После успешного подключения вы увидите приглашение:
Это означает, что сервер готов принимать команды. Теперь можно проверить версию:
Вы увидите строку вида PostgreSQL 15.x on x86_64-pc-linux-gnu... — подтверждение, что всё работает.
Первая база данных и первая таблица
Чтобы закрепить теорию практикой, создадим простейшую базу данных для нашего воображаемого магазина.
Создание базы данных:
Подключение к ней:
Команда \c — это метакоманда psql, она не является частью SQL, а служит для управления клиентом. Теперь приглашение изменится на shop=#.
Создадим первую таблицу:
Разберём, что здесь происходит:
customers — имя таблицы.id SERIAL PRIMARY KEY — столбец-идентификатор, который автоматически увеличивается на 1 при добавлении новой строки.name VARCHAR(100) NOT NULL — строка длиной до 100 символов, обязательное поле.email VARCHAR(150) UNIQUE — строка длиной до 150 символов, значение не должно повторяться.Добавим запись:
Проверим, что данные сохранились:
Результат:
Структура SQL-запросов
Все SQL-запросы делятся на несколько категорий, и для экзамена важно их различать:
| Категория | Расшифровка | Примеры команд |
|-----------|-------------|----------------|
| DDL | Data Definition Language — определение структуры | CREATE, ALTER, DROP |
| DML | Data Manipulation Language — работа с данными | INSERT, UPDATE, DELETE, SELECT |
| DCL | Data Control Language — управление доступом | GRANT, REVOKE |
| TCL | Transaction Control Language — управление транзакциями | BEGIN, COMMIT, ROLLBACK |
На экзамене чаще всего встречаются DDL и DML — именно ими мы займёмся в следующих статьях.
Типичные ошибки новичков
> Запятая после последнего столбца в CREATE TABLE — ошибка синтаксиса. PostgreSQL ожидает следующий столбец или закрывающую скобку, а не запятую.
> Имена таблиц и столбцов чувствительны к регистру только в кавычках. CREATE TABLE Customers и CREATE TABLE customers создадут одну и ту же таблицу, но CREATE TABLE "Customers" — другую.
> Не забывайте ставить точку с запятой в конце каждого SQL-запроса в psql. Без неё запрос не выполнится, а будет ожидать продолжения.
Метакоманды psql
Помимо SQL-запросов, в psql полезно знать служебные команды:
\l — список всех баз данных.\dt — список таблиц в текущей базе.\d customers — описание структуры таблицы customers.\q — выход из psql.Эти команды не являются частью SQL-стандарта — они уникальны для клиента psql и значительно ускоряют навигацию по базе данных.