Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема 5-1 Реляційна алгебра.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
152.58 Кб
Скачать

1. Описовий

  • вибрати із відношення Movie ті кортежі, які задовольняють умові length100

  • вибрати із відношення Movie ті кортежі, які задовольняють умові

studioName=”Fox”;

  • розрахувати пересічення множин –відносин, отриманих при виконанні п.п.1,2;

  • здійснити проекцію результуючого відношення п.3 на атрибути title і year.

2. деревоподібний (рис.5.9), де вершини відображують операції реляційної алгебри і умови їх виконання (π - операція проекції, σ- операція вибору, ∩ - операція пересічення)

title, year

Рис.5.9 Дерево часткових виразів реляційної алгебри

3. традиційна лінійна формула із дужками має вид:

ptitle, year ( σ length100 (Movie) ∩ σ studioName = “Fox” (Movie))

можна записати той же вираз за допомогою логічного оператора (AND)

ptitle, year ( σ length100 AND σ studioName = “Fox” (Movie))

Еквівалентні вирази і оптимізація запитів.

Усі СУБД містять у своєму складі підсистеми обробки запитів, які підтримують мови реляційної алгебри. Запит, який формує користувач, дуже часто можна представити у вигляді декількох еквівалентних виразів, які у результаті обчислень дають один і той же результат. Але справа у тому, що деякі із них піддаються обробці більш ефективно, ніж інші. Пошук таких виразів здійснює в СУБД оптимізатор запитів.

Перейменування атрибутів.

Як ми бачили, у процесі конструювання запитів дуже часто виникає потреба у явному задані імен відношень і їх атрибутів. Для перейменування відношення R використовується оператор ρS(A1, A2,…An)(R). Оператор переіменовуе відношення R у відношення S, а його атрибути отримують імена A1, A2,….,An у порядку зліва направо. Якщо треба змінити тільки назву відношення, застосовується скорочений запис оператора ρS(R).

Приклад 5.5.

Розрахувати декартовий добуток відношень R і S (рис.5.10) з попереднім перейменуванням атрибута В відношення S на ім’я Х.

Результат виконання операції перейменування ρS(X,C,D)(S) – це відношення, назване S,. яке виглядає майже як відношення S на рис.5.6, за виключенням того, що його перший атрибут позначен як Х замість В.

А

В

Х

С

В

1

2

2

5

6

3

4

4

7

8

9

10

11

Відношення R Відношення S після операції перейменування атрибута В

A

B

Х

C

D

1

2

2

5

6

1

2

4

7

8

1

2

9

10

11

3

4

2

5

6

3

4

4

7

8

3

4

9

10

11

Відношення R×ρS(X,C,D)(S)

Рис. 5.10. Розрахунок декартового добутку відношень R і S з попереднім перейменуванням атрибута В відношення S на ім’я Х.

Залежні і незалежні операції.

Шість операцій – об’єднання, різниці, вибору, проекції, декартового добутку і перейменування – являються незалежними, і кожну із них неможна виразити у термінах решти операцій. До залежних відносяться операції пересічення, натурального з’єднання, тета - з’єднання. Вони можуть бути виражені у термінах других операцій реляційної алгебри. Так операція пересічення може бути замінена двома операціями різниці

R∩S = R – (R – S)

Операцію тета - з’єднання можна представити у вигляді сполучення операцій декартового добутку і вибору.

R S = σС(RS)

С

Операцію натурального з’єднання відношень R і S можна почати із розрахунку їх декартового добутку, RS, а потім застосувати до останнього оператор вибору за умовою С виду

R.A1 = S.A1 AND R.A2 = S.A2 AND AND R.An = S.An ,

де A1, A2, An – це атрибути, що одночасно присутні у схемах R і S . На завершення треба виконати операцію проекції, щоб обрати по одній копії із кожної пари співпадаючих атрибутів. Нехай L представляє собою список атрибутів схеми R, за якими слідують атрибути S, які відсутні в R. Тоді повний вираз буде мати вигляд:

R S = πLC(R  S))

Алгебраїчні вирази у лінійному представленні.

На рис.5.9 вирази реляційної алгебри представлені у вигляді дерев. Але можна створити і іншій засіб на основі позначення проміжних відношень, що відповідають вершинам дерева, тимчасовими іменами і у формуванні послідовності виразів присвоювання із застосуванням цих імен. Порядок слідування часткових виразів присвоювання повинен відповідати логіці вихідного виразу реляційної алгебри(або дерева). Так відношення, що є дочірніми вершинами, повинні розраховуватися раніше ніж формуватися вирази присвоювання для батьківських вершин дерева. Вираз присвоювання складається із наступних частин:

  1. імені відношення і списку імен його атрибутів, заключного у дужки; ім’я Answer у відповідності з прийнятою домовленістю використовується для позначення результуючого відношення, що представляє результат виконання усіх операцій і відповідає корінній вершині дерева; розміщується ліворуч від оператора присвоювання;

  2. оператора присвоювання :=;

  3. будь-якого виразу реляційної алгебри, яким може бути як окремий оператор так і комбінація алгебраїчних операторів, що розміщується праворуч від оператора присвоювання.

Приклад 5.6.

Представити дерево часткових виразів на рис.5.9 у вигляді послідовності виразів присвоювання. Один із варіантів послідовності виразів присвоювання такий:

R(t, y, l, i, s, p) := σ length100 (Movie) ;

S(t, y, l, i, s, p) := σ studioName = “Fox” (Movie);

T(t, y, l, i, s, p) := RS;

Answer (title, year) :=πt, y(T)

Першим кроком є отримання відношення, що відповідає проміжній вершині дерева, позначеної як σ length>=100 . Слід звернути увагу, що у лівій частині оператора присвоювання приводиться надане ім’я проміжного відношення і надані імена його атрибутів. Дозволяється надавати любі імена. Ліві частини інших проміжних вершин створені аналогічно.