Реляционная алгебра — это теоретический язык, на котором “разговаривают” базы данных. Именно на нём основан SQL, и понимание его принципов помогает писать оптимальные запросы, разбираться в работе СУБД и понимать, как она выбирает данные.
В этой статье мы подробно разберём одну из ключевых операций — операцию выборки (SELECT), узнаем, зачем она нужна, как работает, и как связана с привычным оператором SELECT в SQL.
Что такое реляционная алгебра
Реляционная алгебра — это математическая система, описывающая, как можно получать новые таблицы из существующих с помощью набора базовых операций.
В отличие от SQL, который ориентирован на разработчика, реляционная алгебра описывает логику обработки данных, не заботясь о синтаксисе.
К основным операциям реляционной алгебры относятся:
- Select (σ) — выборка строк по условию;
- Project (π) — выборка столбцов;
- Union (∪) — объединение таблиц;
- Set Difference (−) — разность множеств;
- Cartesian Product (×) — декартово произведение;
- Rename (ρ) — переименование таблиц или столбцов.
Именно на этих операциях строятся все SQL-запросы, даже самые сложные.
Разберём подробнее первую и, пожалуй, самую важную из них — операцию выборки.
Операция выборки (Select): как она работает
Операция Select (σ) используется для фильтрации строк в таблице по заданному условию.
Её можно сравнить с фильтром в Excel: вы просматриваете весь набор данных и оставляете только те строки, которые соответствуют нужным критериям.
Пример:
Допустим, у нас есть таблица Сотрудники, содержащая поля:
| ID | Имя | Должность | Отдел | Зарплата | Дата найма | 
|---|---|---|---|---|---|
| 1 | Анна | Менеджер | Продажи | 120000 | 2022-07-01 | 
| 2 | Иван | Программист | IT | 150000 | 2023-03-12 | 
| 3 | Олег | Тестировщик | IT | 130000 | 2023-02-10 | 
Если мы хотим выбрать всех сотрудников из отдела IT, в реляционной алгебре это выражается так:
σ Отдел = 'IT' (Сотрудники)
То есть “выбери все строки из отношения (таблицы) Сотрудники, где Отдел равен IT”.
Результатом будет таблица с ИТ-специалистами — подмножество исходных данных.
Синтаксис операции выборки
Общее выражение выглядит так:
σ_условие(Таблица)
- σ (сигма) — символ операции Select;
- условие — предикат (логическое выражение, определяющее критерии выборки);
- Таблица — имя отношения, к которому применяется операция.
В условиях можно использовать стандартные операторы сравнения:
| Оператор | Значение | 
|---|---|
| = | равно | 
| ≠ | не равно | 
| > | больше | 
| < | меньше | 
| ≥ | больше или равно | 
| ≤ | меньше или равно | 
Также можно комбинировать условия с помощью логических связок:
AND (и), OR (или), NOT (не).
Примеры операций выборки
1. Простая выборка
Выбрать всех сотрудников отдела IT:
σ Отдел = 'IT' (Сотрудники)
Результат — все строки, где поле Отдел имеет значение IT.
2. Условие с числовым сравнением
Найти всех, кто зарабатывает больше 140000:
σ Зарплата > 140000 (Сотрудники)
3. Сложное условие (AND)
Найти всех программистов из отдела IT:
σ (Должность = 'Программист' ∧ Отдел = 'IT') (Сотрудники)
4. Альтернативное условие (OR)
Выбрать сотрудников, которые работают в продажах или были наняты в 2023 году:
σ (Отдел = 'Продажи' ∨ Год(ДатаНайма) = 2023) (Сотрудники)
Разница между Select и Project
Очень часто начинающие путают две операции: Select и Project.
| Операция | Что делает | Аналогия | 
|---|---|---|
| Select (σ) | Отбирает строки по условию | “Горизонтальный фильтр” | 
| Project (π) | Отбирает столбцы | “Вертикальный фильтр” | 
Пример:
- σ Отдел='IT' (Сотрудники)— выбираем всех сотрудников IT.
- π Имя, Зарплата (Сотрудники)— выбираем только имена и зарплаты всех сотрудников.
Часто эти операции применяются вместе, например:
π Имя, Зарплата (σ Отдел='IT' (Сотрудники))
Это выражение сначала выбирает всех сотрудников из отдела IT, а затем оставляет только их имена и зарплаты.
Связь с SQL
Операция Select (σ) напрямую соответствует оператору SELECT ... FROM ... WHERE в SQL.
Сравним два подхода:
Реляционная алгебра:
σ (Отдел='IT' ∧ Зарплата>150000) (Сотрудники)
SQL:
SELECT *
FROM Сотрудники
WHERE Отдел = 'IT' AND Зарплата > 150000;
Как видно, логика полностью совпадает. Разница лишь в том, что алгебра выражает смысл операции, а SQL — её реализацию на практике.
Почему важно понимать реляционную алгебру
Знание основ реляционной алгебры помогает:
- понимать, как работает SQL под капотом;
- оптимизировать запросы, зная, какие операции реально выполняет СУБД;
- читать планы выполнения запросов (query plan);
- глубже понимать, почему одни запросы выполняются быстрее других.
SQL — это всего лишь “надстройка” над реляционной алгеброй. Внутренний оптимизатор базы данных всегда преобразует ваши SQL-запросы в последовательность алгебраических операций, чтобы рассчитать наиболее эффективный способ выборки данных.
Заключение
Операция выборки — это фундаментальная часть реляционной алгебры и основа работы с базами данных. Она определяет, какие строки из таблицы попадут в результат, а не какие столбцы (это делает Project). Понимание этой разницы — шаг к профессиональному владению SQL и осознанному построению запросов.
Если вы хотите не просто “писать код”, а понимать, как работает база данных изнутри, начните с реляционной алгебры. Именно она превращает SQL из инструмента “на ощупь” в точный язык инженерного мышления.
 
         
                          

 
               
               
               
               
               
               
              