2. План
1. Огляд початкової алгебри.
2. Основні операції реляційної алгебри.
3. Додаткові операції реляційної алгебри.
4. Приклади.
3. Огляд початкової алгебри
• Реляційна модель – це спосіб розгляду даних;
вказівка для способу представлення даних (за
допомогою таблиць) і для способу роботи з таким
представленням (за допомогою операторів).
• У реляційній моделі розглядаються три аспекти
даних: структура даних (об’єкти даних), цілісність
даних та обробка даних (оператори).
• Операційну частину реляційної моделі можна
реалізувати двома різними, але еквівалентними
способами реляційною алгеброю та реляційним
численням відповідно.
4. Основна мета реляційної алгебри
– це забезпечення запису виразів для
визначення області вибірки та для оновлення
даних. У цілому вирази реляційної алгебри
слугують для символічного високорівневого
представлення намірів користувача
(наприклад, деякого запиту).
5. Реляційна алгебра
являє собою сукупність операцій високого
рівня над відношеннями.
Є п’ять основних (примітивних): об’єднання,
різниця, декартовий добуток, проекція і вибір
або вибірка.
А також додаткові операції, які не розширюють
можливості основних, але забезпечують
стислість запису: перетин, сполучення та
ділення.
7. Зауваження
• Варто відзначити, що реляційна алгебра
володіє властивістю замкненості: результат
кожної операції над відношеннями є також
відношення. Це дає можливість результат
однієї операції використовувати як вихідні
дані для іншої, тобто записувати вкладені
вирази (операнди представлені виразами
замість простих імен відношень).
8. відношення сумісні за типом
• Будемо називати два відношення сумісними
за типом, якщо вони мають однакову
кількість атрибутів (однакову степінь) та
якщо відповідні атрибути визначені на
одному й тому ж домені.
9. Для ілюстрації означень прикладами
побудуємо чотири відношення:
Для операцій об’єднання, перетин та різниця
відношення повинні бути сумісними за типом.
Наприклад, відношення R і S є сумісними за
типом.
10. Об’єднання
Об’єднанням двох сумісних за типом
відношень А і В (A UNION B) називається нове
відношення з атрибутами, як у відношеннях А і
В, та з тілом, яке містить множину всіх
кортежів належних відношенням А або В чи
обом відношенням.
A B C
p 1 A
p 2 B
q 2 C
q 3 A
R UNION S
11. Перетин
Перетином двох сумісних за типом
відношень А і В (A INTERSECT B) називається
нове відношення з атрибутами, як у
відношеннях А і В, та з тілом, яке містить
множину всіх кортежів належних одночасно
обом відношенням А і В. Наприклад:
A B C
p 2 B
R INTERSECT
12. Різниця
Різницею двох сумісних за типом відношень
А і В (A MINUS B) називається нове
відношення з атрибутами, як у відношеннях А і
В, та з тілом, яке містить множину всіх
кортежів належних відношенню А і не
належних відношенню В. Звернімо увагу на те,
що для операції різниця важливий порядок
слідування операндів. Наприклад:
A B C
p 1 A
q 2 C
R MINUS S
14. Декартів добуток
• Декартовим добутком двох відношень А і
В (A TIMES B), де А і В не мають спільних
атрибутів, називається відношення із
заголовком, який є зчепленням двох
заголовків відношень А і В, та з тілом, яке
містить множину всіх кортежів, що є
зчепленням кортежів відношень А і В.
15. R TIMES Q
A B C F G H
p 1 A P 2 b
p 2 B Q 3 a
q 2 C P 2 b
p 2 B P 2 b
q 2 C Q 3 a
p 1 A Q 3 a
16. Вибірка
– це скорочена назва θ-вибірки, де θ позначає
довільний оператор порівняння (=, ≠, >, ≥ та
ін.).
θ-вибіркою з відношення А по атрибутах X та
Y (A WHERE XθY) називається відношення,
яке має той же заголовок, що і відношення А, а
тіло містить множину всіх кортежів
відношення А, для яких умова “XθY” буде
істинна.
17. Вибірка
• R WHERE A=’p’
• S WHERE B<3
• R WHERE A=’p’ AND B>1
A B C
p 1 a
p 2 b
A B C
p 2 b
A B C
p 2 b
18. Проекція
Проекцією відношення А по атрибутам X, Y, …,
Z, де кожен із атрибутів належить відношенню А,
(A [X, Y, …, Z]) називається відношення з
заголовком {X, Y, …, Z} і тілом, яке містить
множину всіх кортежів {X:x, Y:y, …, Z:z}, таких,
для яких у відношенні А значення атрибута X
рівно x, атрибута Y рівно y, …, атрибута Z рівно z.
R [A,C] A C
p a
p b
q c
19. θ-сполучення
Нехай відношення А і В мають заголовки {X1, X2,
..Xm, Y1, Y2, …,Yn} {Y1, Y2, …, Yn, Z1, Z2, …, Zp}
відповідно, тобто атрибути Y1, Y2, …,Yn – спільні для
двох відношень. Припустимо, що відповідні атрибути
визначені на одному і тому ж домені. Будемо
розглядати вирази {X1, X2, ..Xm}, {Y1, Y2, …,Yn} та {Z1,
Z2, …, Zp} як три складені атрибути X, Y та Z
відповідно. Тоді природним сполученням
відношень А і В (A JOIN B) називається відношення з
заголовком {X, Y, Z} та тілом, що містить множину
всіх кортежів {X:x, Y:y, Z:z}, для яких у відношенні А
значення атрибута Х дорівнює х, а атрибута Y рівно y, і
у відношенні В значення атрибута Y рівно y, а
атрибута Z рівно z.
21. θ-сполучення
Операція θ-сполучення використовується у тих
випадках, коли необхідно сполучити два
відношення на основі деяких умов. Природне
сполучення є частковим випадком θ-
сполучення, а саме: θ – знак “=”. Але на відміну
від θ-сполучення для природного сполучення
необхідно, щоби був один спільний атрибут,
причому в результуюче відношення він входить
лише єдиний раз (його не треба перейменувати, як
при операції декартового добутку).
22. θ-сполучення
θ-сполученням відношення А по атрибуту X з
відношенням В по атрибуту Y називається
результат обчислення виразу:
(A TIMES B) WHERE XθY.
(R TIMES Q) WHERE B<G
A B C F G H
p 1 a p 2 b
p 2 b q 3 a
q 2 c q 3 a
p 1 a q 3 a
24. “Магазин побутової техніки”
Товар Постачальники
Код_то
вару
Назва Ціна
101 Телевізор
LG (51cm)
1100
102 Телевізор
SONY (61cm)
1800
201 Відеомагнітофо
н LG
760
202 Відеомагнітофо
н SONY
980
301 Муз. центр
LG
1000
Код_то
вару
Закупівельна_ц
іна
Постачальни
к
101 900 Парус
102 1720 Перлина
103 2300 Орен
201 680 Парус
202 850 Перлина
203 470 Парус
301 750 Парус
302 1340 Перлина
25. • Товар2
• Нехай інформація про товар розташовується
в двох сумісних за типом відношеннях Товар
та Товар2. Товар – список товарів, які є в
наявності, а Товар2 – список товарів, котрі
можна замовити.
Код_тов
ару
Назва Ціна
102 Телевізор SONY
(61′)
1800
103 Телевізор
Samsung (70 cm)
2500
202 Відеомагнітофон
SONY
980
203 Відеоплейєр LG 560
302 Муз. центр SONY 1500
26. Запит 1. Отримати повний список
товарів (з кодом, назвою та ціною),
які пропонує цей магазин.
• Товар UNION Товар2
Код_това
ру
Назва Ціна
101 Телевізор LG (51cm) 1100
102 Телевізор SONY (61′) 1800
103 Телевізор Samsung (70 cm) 2500
201 Відеомагнітофон LG 760
202 Відеомагнітофон SONY 980
203 Відеоплейєр LG 560
301 Муз. центр LG 1000
302 Муз. центр SONY 1500
27. Запит 2. Отримати список товарів (з
кодом, назвою та ціною), які є одночасно
в наявності і їх можна замовити.
• Товар INTERSECT Товар2
Код_т
овару
Назва Ціна
102 Телевізор SONY (61′) 1800
202 Відеомагнітофон
SONY
980
28. Запит 3. Отримати список товарів (з
кодом, назвою та ціною), які є в
наявності, але їх не можна замовити.
• Товар MINUS Товар2
Код_то
вару
Назва Ціна
101 Телевізор LG
(51cm)
1100
201 Відеомагнітофон
LG
760
301 Муз. центр LG 1000
29. Запит 4. Побудуємо результат декартового
добутку відношень Товар та
Постачальники2.
Для виконання цієї операції необхідно, щоб у двох
відношень не було спільних атрибутів, тому атрибут
Код_товару перейменуємо:
Постачальники2 RENAME Код_товару as
Код_т
Код_т Закупівельна_ціна Постачальник
101 900 Парус
102 1720 Перлина
103 2300 Орен
30. Товар TIMES Постачальники2
Код_то-вару Назва Ціна Код_т Закупівель-на_ціна Постачальник
101 Телевізор LG (51cm) 1100 101 900 Парус
102 Телевізор SONY (61cm) 1800 101 900 Парус
201 Відеомагнітофон LG 760 101 900 Парус
202 Відеомагнітофон SONY 980 101 900 Парус
301 Муз. центр LG 1000 101 900 Парус
101 Телевізор LG (51cm) 1100 102 1720 Перлина
102 Телевізор SONY (61cm) 1800 102 1720 Перлина
201 Відеомагнітофон LG 760 102 1720 Перлина
202 Відеомагнітофон SONY 980 102 1720 Перлина
301 Муз. центр LG 1000 102 1720 Перлина
101 Телевізор LG (51cm) 1100 103 2300 Орен
102 Телевізор SONY (61cm) 1800 103 2300 Орен
201 Відеомагнітофон LG 760 103 2300 Орен
202 Відеомагнітофон SONY 980 103 2300 Орен
301 Муз. центр LG 1000 103 2300 Орен
31. Запит 5. Отримати список товарів (з
кодом, назвою та ціною), що є в наявності
і ціна яких не перевищує 1000 грн.
• Товар WHERE Ціна ≤1000
Код_тов
ару
Назва Ціна
201 Відеомагнітофон LG 760
202 Відеомагнітофон
SONY
980
301 Муз. центр LG 1000
32. Запит 6. Отримати список тих кодів товарів
(з їх закупівельною ціною та постачальником),
які постачає фірма Парус.
Постачальники WHERE Постачальник=’Парус’
Код_то
вару
Закупівельна_ці
на
Постачальник
101 900 Парус
201 680 Парус
203 470 Парус
301 750 Парус
33. Запит 7. Отримати список
постачальників магазину побутової
техніки.
• Постачальники [Постачальник]
Постачальник
Парус
Перлина
Орен
34. Запит 8. Отримати список товарів (з кодом,
назвою та ціною), які є в наявності, а також
їх постачальників і закупівельну ціну.
• Товар JOIN Постачальники
Код_
то-вару
Назва Ціна Закупівельна
ціна
Постачальн
ик
101 Телевізор LG
(51cm)
1100 900 Парус
102 Телевізор
SONY (61cm)
1800 1720 Перлина
201 Відеомагніто
фон LG
760 680 Парус
202 Відеомагніто
фон SONY
980 850 Перлина
301 Муз. центр LG 1000 750 Парус
35. Запит 9. На використання операції θ-
сполучення. Отримати список товарів (з кодом,
назвою та ціною), які є в наявності, їх
постачальників (з відношення Постачальники2)
і закупівельну ціну при умові Закупівельна_ціна
< Ціна.
•Для виконання цієї операції необхідно, щоб у
двох відношень не було спільних атрибутів,
тому атрибут Код_товару перейменуємо:
•Постачальники2 RENAME Код_товару as
Код_т
36. (Товар TIMES Постачальники2) WHERE
Закупівельна_ціна < Ціна
Код
_то-вару
Назва Ціна Код_т Закупівель-
на_ціна
Постачальник
101 Телевізор LG
(51cm)
1100 101 900 Парус
102 Телевізор SONY
(61cm)
1800 101 900 Парус
202 Відеомагнітофон
SONY
980 101 900 Парус
301 Муз. центр LG 1000 101 900 Парус
102 Телевізор SONY
(61cm)
1800 102 1720 Перлина
37. Запит 11. Отримати список товарів (з
кодом, назвою та ціною), які є в наявності і
їх можна замовити, а також перелік їх
постачальників.
• ((Товар UNION Товар2) JOIN Постачальники)
[Код_товару, Назва, Ціна, Постачальник]
Код_товар
у
Назва Ціна Постачальник
101 Телевізор LG (51cm) 1100 Парус
102 Телевізор SONY (61′) 1800 Перлина
103 Телевізор Samsung (70 cm) 2500 Орен
201 Відеомагнітофон LG 760 Парус
202 Відеомагнітофон SONY 980 Перлина
203 Відеоплейєр LG 560 Парус
301 Муз. центр LG 1000 Парус
302 Муз. центр SONY 1500 Перлина
38. Запит 12. Отримати список товарів (з
назвою, ціною та закупівельною ціною), що є
в наявності або їх можна замовити,
постачальником яких є фірма “Перлина”.
((Товар UNION Товар2) JOIN ((Постачальники
WHERE Постачальник=’Перлина’))[Назва, Ціна,
Закупівельна_ціна])
Код_товар
у
Назва Ціна Закупівельна_ці
на
102 Телевізор SONY (61′) 1800 1720
202 Відеомагнітофон SONY 980 850
302 Муз. центр SONY 1500 1340
39. Запит 13. Отримати список товарів (з
назвою, ціною та постачальником), що є в
наявності і можна замовити.
((Товар UNION Товар2) JOIN Постачальники)
[Назва, Ціна, Постачальник]
Назва Ціна Постачальник
Телевізор LG (51cm) 1100 Парус
Телевізор SONY (61′) 1800 Перлина
Телевізор Samsung (70 cm) 2500 Орен
Відеомагнітофон LG 760 Парус
Відеомагнітофон SONY 980 Перлина
Відеоплейєр LG 560 Парус
Муз. центр LG 1000 Парус
Муз. центр SONY 1500 Перлина
40. Запит 14. Отримати список товарів (з
назвою, ціною та постачальником), що є в
наявності і можна замовити, ціна яких не
більше за 1200 грн.
• (((Товар UNION Товар2) JOIN Постачальники)
[Назва, Ціна, Постачальник]) WHERE Ціна≤1200
Назва Ціна Постачальник
Телевізор LG (51cm) 1100 Парус
Відеомагнітофон LG 760 Парус
Відеомагнітофон SONY 980 Перлина
Відеоплейєр LG 560 Парус
Муз. центр LG 1000 Парус