Обробка запитів: операції реляційної алгебри

Розділ: Бази та сховища даних

📌 Про що ця тема


Реляційна алгебра — це формальна мова опису запитів до бази даних, у якій таблиці (відношення) обробляються операціями, а результатом кожної операції завжди є нова таблиця. На іспиті перевіряють, чи вмієш визначити, яка операція потрібна для заданого результату, і як вона змінює рядки/стовпці. Ключове поняття — відношення (таблиця) зі схемою (набором атрибутів) і кортежами (рядками).


📖 Головне


• Відношення — таблиця без дублікатів рядків; схема — назви й типи стовпців; кортеж — один рядок. Усі операції дають нову таблицю (принцип замкненості).

• Вибірка (селекція, σ) — залишає РЯДКИ, що задовольняють умову. Кількість стовпців не змінюється. Приклад: σ(вік>18)(Студенти).

• Проекція (π) — залишає задані СТОВПЦІ, решту відкидає; дублікати рядків автоматично видаляються. Приклад: π(Прізвище, Група)(Студенти).

• Об'єднання (∪) — усі рядки з двох таблиць разом, без повторів. Вимога: однакова схема (сумісність — однакова кількість і типи стовпців).

• Перетин (∩) — лише рядки, присутні в ОБОХ таблицях. Теж потрібна сумісність схем.

• Різниця (−) — рядки першої таблиці, яких НЕМАЄ в другій. R−S ≠ S−R (не комутативна).

• Декартів добуток (×) — кожен рядок першої таблиці зчіплюється з кожним рядком другої. Якщо R має m рядків, S має n, результат — m·n рядків, стовпці складаються.

• З'єднання (⋈, join) — комбінація добутку й вибірки: зчіплює рядки за умовою збігу атрибутів. Природне з'єднання об'єднує за однойменними стовпцями.

• Операції комбінують: запит = послідовність операцій над проміжними таблицями.


🔢 Як це працює на прикладі


Таблиця Студенти: (Іван, Г1, 20), (Олег, Г2, 17), (Марія, Г1, 19).

Завдання: вивести прізвища повнолітніх з групи Г1.


Крок 1 — вибірка рядків за умовою: σ(вік≥18 І Група='Г1'). Залишаються (Іван, Г1, 20) і (Марія, Г1, 19).

Крок 2 — проекція потрібного стовпця: π(Прізвище). Результат: Іван, Марія.


Приклад різниці: Відмінники − Боржники дасть студентів, які відмінники, але НЕ боржники. Поміняєш місцями — отримаєш зовсім інший результат.


⚠️ Типові помилки


• Плутають вибірку і проекцію: вибірка (σ) ріже по рядках за умовою, проекція (π) — по стовпцях. Це найчастіша втрата балів.

• Забувають, що проекція прибирає дублікати рядків автоматично — у результаті їх менше, ніж очікують.

• Вважають різницю комутативною: R−S та S−R дають різні таблиці.

• Намагаються об'єднати (∪) чи перетнути (∩) таблиці з різними схемами — ці операції вимагають сумісності.

• Плутають декартів добуток (усі з усіма, m·n рядків) із з'єднанням (лише рядки, що відповідають умові).


🎯 Що завчити напам'ять


• σ — рядки за умовою; π — стовпці.

• ∪, ∩, − потребують однакової схеми; − не комутативна.

• Декартів добуток: m·n рядків, стовпці складаються.

• З'єднання = добуток + вибірка за умовою збігу.

• Результат будь-якої операції — завжди таблиця без дублікатів.


🧠 Перевір себе


1. Яка операція залишає лише деякі СТОВПЦІ таблиці?

2. Чи можна об'єднати (∪) таблиці з різною кількістю стовпців?

3. Скільки рядків дасть декартів добуток таблиць на 4 і 5 рядків?

4. Чим з'єднання відрізняється від декартового добутку?


Відповіді: 1 — проекція (π); 2 — ні, потрібна сумісність схем; 3 — 20 рядків (4·5); 4 — з'єднання залишає лише рядки, що відповідають умові збігу, а добуток зчіплює всі з усіма.

Перевірити себе на практиці

Прочитати — половина справи. Далі потрібні завдання цієї ж теми з розбором кожної відповіді: саме на них видно, чи справді тема закрита.