Реляционная алгебра и таблицы
Реляционная база на математическом языке — это не «файл с ячейками», а отношение: множество кортежей (строк), каждый кортеж — упорядоченный набор значений из доменов (столбцов). Столбец i соответствует i-му домену Dᵢ; допустимые строки лежат в D₁ × D₂ × … × Dₙ.
Предпосылки: множества и кортежи, при необходимости логика. Дальше по Кодду и SQL: теория реляционных данных, реляционная модель.
// Строка таблицы orders как кортеж (id, user_id, amount)
строка := (1042, 7, 1500.00)
// Множество всех допустимых строк таблицы — отношение Orders
Orders ⊆ Id × UserId × Amount
Алгебра отношений
Рассматривают множество отношений R = {P₁, P₂, …} и операции над совместимыми отношениями: оба лежат в одном и том же Aⁿ (одинаковая «арность» кортежа).
| Операция | Обозначение | Результат |
|---|---|---|
| Объединение | P ∪ Q | кортежи из P или из Q |
| Пересечение | P ∩ Q | кортежи одновременно в P и Q |
| Разность | P \ Q | кортежи из P, которых нет в Q |
| Декартово произведение | P × Q | конкатенация кортежа X ∈ P и Y ∈ Q |
P := {(a, b, d), (b, c, e)}
Q := {(a, b, d), (b, d, e)}
P ∪ Q // {(a,b,d), (b,c,e), (b,d,e)}
P ∩ Q // {(a,b,d)}
P \ Q // {(b,c,e)}
Декартово произведение «склеивает» кортежи: если X = (x₁,…,xᵣ) и Y = (y₁,…,yₛ), то X̂Y = (x₁,…,xᵣ,y₁,…,yₛ). Отсюда взрыв числа строк при JOIN без условия — в алгебре Кодда его сужают выборкой σ и соединением ⋈.
Таблица на практике
| Понятие теории | В СУБД | Пример |
|---|---|---|
отношение Rₙ | таблица | exams(schedule_id, subject, room, date) |
| кортеж | строка | (1, "Math", "A-101", "2026-06-01") |
домен Dᵢ | тип столбца + ограничения | date, varchar, NOT NULL |
R ⊆ D₁×…×Dₙ | допустимые строки по схеме | CHECK, FK, UNIQUE |
Четырехместное отношение «расписание экзаменов» в формальной постановке — тот же объект, что таблица в PostgreSQL: столбцы задают домены, каждая запись — один кортеж, принадлежащий отношению.
Две алгебры — один SQL
| Уровень | Операции (идея) | Аналог в SQL |
|---|---|---|
| Алгебра отношений (множества кортежей) | ∪, ∩, , × | UNION, INTERSECT, EXCEPT, декартово FROM a, b |
| Алгебра Кодда | σ (выборка), π (проекция), ⋈ (соединение), переименование | WHERE, список столбцов, JOIN, alias |
Оптимизатор SQL переписывает запрос в дерево операций реляционной алгебры Кодда, но семантика «таблица = множество строк-кортежей» остаётся той же, что в дискретной математике.
Назад: дискретная математика (обзор). Дальше: теория чисел и алгоритмы или раздел SQL.
См. также
Другие статьи этого же раздела в боковом меню (как на странице "О разделе"). Когнитивистика для разработчиков — память, чанкинг, нагрузка при чтении кода и осознанное обучение новым технологиям. История термина "ментальная модель" - Крейк о внутренних представлениях мира, которые строит когнитивная система. Единый процесс - согласованные по цели, времени и пространству действия участников ради одного результата. Что такое система и её элементы, как все это связано и зачем нужно. Краткое знакомство с науками, которые лежат в основе логики программ, данных и вычислений — от булевой алгебры до теории информации. Булева и предикатная логика для разработки — операции, таблицы истинности, кванторы и законы де Моргана в условиях кода. Совершенные ДНФ и КНФ, минимизация, карты Карно и логические сети — от таблицы истинности до упрощения условий в коде. Множества, отношения, графы и комбинаторика — язык описания структур данных, сетей, зависимостей и оценки сложности в IT. Математическая индукция, мощность, биекции, матрицы и порядки — формальная база перед таблицами и графами в IT. Представления графов, кратчайшие пути, остовы и разрезы, раскраска и планарность — формальная теория графов для сетей и алгоритмов. Вопросы по множествам, логике, графам и таблицам с подсказками — после статей 31–323 формального маршрута. Делимость и НОД, запись алгоритмов псевдокодом, худший случай и асимптотика O(n) — связь с криптографией и проектированием кода.Когнитивистика - наука о мышлении
Ментальные модели
Тектология
Системы и модели
Математическая основа IT
Логика
Алгебра логики — нормальные формы и схемы
Дискретная математика
Множества и отношения — формальный слой
Графы — маршруты, остовы и раскраски
Дискретная математика — чек-лист самопроверки
Теория чисел, псевдокод и анализ алгоритмов