Upload
vikakopoty
View
737
Download
0
Embed Size (px)
Citation preview
Реляційна алгебра
План
1. Огляд початкової алгебри.2. Основні операції реляційної алгебри.3. Додаткові операції реляційної
алгебри.4. Приклади.
Огляд початкової алгебри•Реляційна модель – це спосіб розгляду даних;
вказівка для способу представлення даних (за допомогою таблиць) і для способу роботи з таким представленням (за допомогою операторів).
•У реляційній моделі розглядаються три аспекти даних: структура даних (об’єкти даних), цілісність даних та обробка даних (оператори).
•Операційну частину реляційної моделі можна реалізувати двома різними, але еквівалентними способами реляційною алгеброю та реляційним численням відповідно.
Основна мета реляційної алгебри – це забезпечення запису виразів для визначення області вибірки та для оновлення даних. У цілому вирази реляційної алгебри слугують для символічного високорівневого представлення намірів користувача (наприклад, деякого запиту).
Реляційна алгебра
являє собою сукупність операцій високого рівня над відношеннями. Є п’ять основних (примітивних): об’єднання, різниця, декартовий добуток, проекція і вибір або вибірка. А також додаткові операції, які не розширюють можливості основних, але забезпечують стислість запису: перетин, сполучення та ділення.
Теоретико-множинні операції
Об’єднання Перетин Різниця
В
А А
В
А
В
Зауваження
•Варто відзначити, що реляційна алгебра володіє властивістю замкненості: результат кожної операції над відношеннями є також відношення. Це дає можливість результат однієї операції використовувати як вихідні дані для іншої, тобто записувати вкладені вирази (операнди представлені виразами замість простих імен відношень).
відношення сумісні за типом
•Будемо називати два відношення сумісними за типом, якщо вони мають однакову кількість атрибутів (однакову степінь) та якщо відповідні атрибути визначені на одному й тому ж домені.
Для ілюстрації означень прикладами побудуємо чотири відношення:
Для операцій об’єднання, перетин та різниця відношення повинні бути сумісними за типом.Наприклад, відношення R і S є сумісними за типом.
Об’єднанняОб’єднанням двох сумісних за типом відношень А і В (A UNION B) називається нове відношення з атрибутами, як у відношеннях А і В, та з тілом, яке містить множину всіх кортежів належних відношенням А або В чи обом відношенням.A B C
p 1 A
p 2 B
q 2 C
q 3 A
R UNION S
ПеретинПеретином двох сумісних за типом відношень А і В (A INTERSECT B) називається нове відношення з атрибутами, як у відношеннях А і В, та з тілом, яке містить множину всіх кортежів належних одночасно обом відношенням А і В. Наприклад:
A B C
p 2 B
R INTERSECT S
РізницяРізницею двох сумісних за типом відношень А і В (A MINUS B) називається нове відношення з атрибутами, як у відношеннях А і В, та з тілом, яке містить множину всіх кортежів належних відношенню А і не належних відношенню В. Звернімо увагу на те, що для операції різниця важливий порядок слідування операндів. Наприклад:A B C
p 1 A
q 2 C
R MINUS S
Для наступних операцій відношення не повинні бути сумісними за типом.
Декартів добуток
•Декартовим добутком двох відношень А і В (A TIMES B), де А і В не мають спільних атрибутів, називається відношення із заголовком, який є зчепленням двох заголовків відношень А і В, та з тілом, яке містить множину всіх кортежів, що є зчепленням кортежів відношень А і В.
R TIMES QA 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
Вибірка
– це скорочена назва -вибірки, де позначає довільний оператор порівняння (=, , >, та ін.).-вибіркою з відношення А по атрибутах X та Y (A WHERE XY) називається відношення, яке має той же заголовок, що і відношення А, а тіло містить множину всіх кортежів відношення А, для яких умова “XY” буде істинна.
Вибірка
•R WHERE A=’p’
•S WHERE B<3
•R WHERE A=’p’ AND B>1
A B Cp 1 ap 2 b
A B Cp 2 b
A B C
p 2 b
ПроекціяПроекцією відношення А по атрибутам 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 Cp ap bq c
-сполученняНехай відношення А і В мають заголовки {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.
•R JOIN P
A B Cp 1 a
q 2 c
-сполучення
Операція -сполучення використовується у тих випадках, коли необхідно сполучити два відношення на основі деяких умов. Природне сполучення є частковим випадком -сполучення, а саме: – знак “=”. Але на відміну від -сполучення для природного сполучення необхідно, щоби був один спільний атрибут, причому в результуюче відношення він входить лише єдиний раз (його не треба перейменувати, як при операції декартового добутку).
-сполучення
-сполученням відношення А по атрибуту X з відношенням В по атрибуту Y називається результат обчислення виразу: (A TIMES B) WHERE XY.(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
RENAMEОперація перейменування RENAME використовується для зміни імені атрибуту. Наприклад, перейменуємо атрибут А на N відношення R
•R RENAME A as NN B C
p 1 a
p 2 b
q 2 c
“Магазин побутової техніки”Товар ПостачальникиКод_товару
Назва Ціна
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 Перлина
•Товар2
•Нехай інформація про товар розташовується в двох сумісних за типом відношеннях Товар та Товар2. Товар – список товарів, які є в наявності, а Товар2 – список товарів, котрі можна замовити.
Код_товару
Назва Ціна
102 Телевізор SONY (61)
1800
103 Телевізор Samsung (70 cm)
2500
202 Відеомагнітофон SONY
980
203 Відеоплейєр LG
560
302 Муз. центр SONY
1500
Запит 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
Запит 2. Отримати список товарів (з кодом, назвою та ціною), які є одночасно в наявності і їх можна замовити.•Товар INTERSECT Товар2
Код_товару
Назва Ціна
102 Телевізор SONY (61)
1800
202 Відеомагнітофон SONY
980
Запит 3. Отримати список товарів (з кодом, назвою та ціною), які є в наявності, але їх не можна замовити.•Товар MINUS Товар2
Код_товару
Назва Ціна
101 Телевізор LG (51cm)
1100
201 Відеомагнітофон LG
760
301 Муз. центр LG 1000
Запит 4. Побудуємо результат декартового добутку відношень Товар та Постачальники2.
Для виконання цієї операції необхідно, щоб у двох відношень не було спільних атрибутів, тому атрибут Код_товару перейменуємо:
Постачальники2 RENAME Код_товару as Код_т
Код_т Закупівельна_ціна Постачальник
101 900 Парус
102 1720 Перлина
103 2300 Орен
Товар 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 Орен
Запит 5. Отримати список товарів (з кодом, назвою та ціною), що є в наявності і ціна яких не перевищує 1000 грн.•Товар WHERE Ціна 1000
Код_товару
Назва Ціна
201 Відеомагнітофон LG
760
202 Відеомагнітофон SONY
980
301 Муз. центр LG 1000
Запит 6. Отримати список тих кодів товарів (з їх закупівельною ціною та постачальником), які постачає фірма Парус.Постачальники WHERE Постачальник=’Парус’Код_т
оваруЗакупівельна_
цінаПостачальник
101 900 Парус201 680 Парус203 470 Парус301 750 Парус
Запит 7. Отримати список постачальників магазину побутової техніки.•Постачальники [Постачальник]
Постачальник
Парус
Перлина
Орен
Запит 8. Отримати список товарів (з кодом, назвою та ціною), які є в наявності, а також їх постачальників і закупівельну ціну.•Товар JOIN Постачальники
Код_то-вару
Назва Ціна
Закупівельна
ціна
Постачальник
101 Телевізор LG (51cm)
1100
900 Парус
102 Телевізор SONY (61cm)
1800
1720 Перлина
201 Відеомагнітофон LG
760 680 Парус
202 Відеомагнітофон SONY
980 850 Перлина
301 Муз. центр LG
1000 750 Парус
Запит 9. На використання операції -сполучення. Отримати список товарів (з кодом, назвою та ціною), які є в наявності, їх постачальників (з відношення Постачальники2) і закупівельну ціну при умові Закупівельна_ціна < Ціна.
•Для виконання цієї операції необхідно, щоб у двох відношень не було спільних атрибутів, тому атрибут Код_товару перейменуємо:
•Постачальники2 RENAME Код_товару as Код_т
(Товар 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 Перлина
Запит 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 Перлина
Запит 12. Отримати список товарів (з назвою, ціною та закупівельною ціною), що є в наявності або їх можна замовити, постачальником яких є фірма “Перлина”.
((Товар UNION Товар2) JOIN ((Постачальники WHERE Постачальник=’Перлина’))[Назва, Ціна, Закупівельна_ціна])Код_това
руНазва Цін
аЗакупівельна_
ціна
102 Телевізор SONY (61) 1800
1720
202 Відеомагнітофон SONY
980 850
302 Муз. центр SONY 1500
1340
Запит 13. Отримати список товарів (з назвою, ціною та постачальником), що є в наявності і можна замовити.
((Товар UNION Товар2) JOIN Постачальники) [Назва, Ціна, Постачальник]Назва Ціна Постачальник
Телевізор LG (51cm) 1100 Парус
Телевізор SONY (61) 1800 Перлина
Телевізор Samsung (70 cm) 2500 Орен
Відеомагнітофон LG 760 Парус
Відеомагнітофон SONY 980 Перлина
Відеоплейєр LG 560 Парус
Муз. центр LG 1000 Парус
Муз. центр SONY 1500 Перлина
Запит 14. Отримати список товарів (з назвою, ціною та постачальником), що є в наявності і можна замовити, ціна яких не більше за 1200 грн.
• (((Товар UNION Товар2) JOIN Постачальники) [Назва, Ціна, Постачальник]) WHERE Ціна1200Назва Ціна Постачальник
Телевізор LG (51cm) 1100 Парус
Відеомагнітофон LG 760 Парус
Відеомагнітофон SONY 980 Перлина
Відеоплейєр LG 560 Парус
Муз. центр LG 1000 Парус