Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD-КН1.doc
Скачиваний:
18
Добавлен:
27.04.2019
Размер:
7.07 Mб
Скачать

2.2.3 Спеціальні операції реляційної алгебри

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

Нехай  - бульовий вираз, складений з атрибутів, констант та операцій порівняння, сформований за допомогою зв‘язок логічне "І" (), логічне "АБО" (), логічне "НЕ" (-).

В якості виразів порівняття допускаються:

  1. А <операція порівняння> k,

де А - ім‘я деякого атрибута, що приймає значення з домена D; k - константа, що належить тому ж самому домену, тобто k  D;

  1. А <операція порівняння> В,

де А і В - імена атрибутів, що приймають значення з одного й того ж домена D: А  D, В  D.

Тоді результатом операції фільтрації, заданої на відношенні R у вигляді бульового вираза, визначеного на атрибутах відношення R будемо називати відношення R[], що вміщує ті кортежі вихідного відношення, для яких умова вибору або фільтрації є істиною, тобто:

R[ (r)] = { r | r  R   (r) = " Істина" }

Операція фільтрації є однією з головних при роботі з реляційною моделлю даних. Умова  (r) може бути як завгодно складною.

Наприклад, з відношення R1 (рис.4) вибрати дисципліну, код якої дорівнює "24", створити відношення R7. R7 = R1 [ Код дисципліни = "24"]. В результаті отримаємо:

R7

Назва

Код дисципліни

МООП

24

Рис. 2.6. Результат операції фільтрації відношення R1 за заданною умовою

Наприклад, з відношення R1 (рис.2. 4) вибрати дисципліни, що читаються на першому курсі, тобто такі код яких менше 20, створити відношення R8.

R8= R1 [ Код дисципліни < "20"].

R8

Назва

Код дисципліни

Архітектура комп‘ютера

11

Алгоритмічні мови та прогр.

14

Рис. 2.7. Результат операції фільтрації відношення R1 за заданною умовою

Наступною спеціальною операцією є операція проектування.

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

Нехай Sr = (A1, … , An) - схема відношення R. Позначимо через В підмножину атрибутів [Ai], які повинні залишитися в результуючому відношенні, а В1 - підмножину атрибутів [Aj], які не повинні увійти в результуюче відношення, причому B  {An} та B1  {An}.

Проекцією відношення R на набір атрибутів В, що позначається, як R[B], називається відношення зі схемою S r[b] = B, яке вміщує кортежі, отримані з кортежів відношення R шляхом видалення з них атрибутів підмножини В1: R[B] = {r [B]}.

За визначенням відношень всі дубльовані кортежі вилучають з результуючого відношення.

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

Нехай R{r}та Q{q} - вихідні відношення, Sr, Sq - схеми відношень відповідно. Sr = (A1, …, Ak); Sq = (B1,…, Bm), де Ai, Bj - імена атрибутів в схемах відношень R i Q відповідно. При цьому вважаємо, що задано набори атрибутів А та В такі, що A  {Ai} i = 1,k; B  {Bj} j = 1,m і ці набори складаються з  - порівняних атрибутів (визначених на одному домені). Тоді, об‘єднанням відношень R i Q за умовою  буде підмножина декартового добутка відношень R i Q, кортежі якого відповідають умові , яка складається з двох умов, виконуваних одночасно:

  • r.Ai i q.Bi : i = 1,k, де k - кількість атрибутів, що входять до наборів А і В, а і - відповідна операція порівняння.

  • r.Ai i q.Bi  Dі ; де i - і-й предикат порівняння, визначений з множини допустимих на домені Dі операцій порівняння

R [] Q ={ (r,q) | r.Ai i q.Bi = "Істина" , i = 1,k }.

Приклад: Відношення R ( рис. 2.8.) вміщує перелік дисциплін професійного спрямування, що вивчає бакалавр зі спеціальності 6.050101.

R

Назва

Код дисципліни

Архітектура комп‘ютера

11

Алгоритмічні мови та прогр.

14

МООП

24

Бази даних

26

Моделювання систем

36

Автоматизація проектув.

38

Теорія прийняття рішень

32

Рис. 2.8. Вихідне відношення R

Відношення Q (рис. 2.9.) вміщує результати перездачі сесії студентами 2 курсу по деяким дисциплінам заданим кодами. Сформувати зведену відомість перездачі сесії. (Задля спрощення прикладу використано фрагмент відомості). Результуюче відношення позначимо літерою Т (рис. 2.10.).

Q

Прізвище

Код дисципліни

Оцінка

Іващенко

24

4

Петренко

24

3

Коляда

24

3

Петренко

26

3

Коляда

26

3

Рис. 2.9. Вихідне відношення Q

Т=R [] Q = R [R.код дисципліни=Q. Код дисципліни] Q

Т

Назва дисципліни

Прізвище

Код дисципліни

Оцінка

МООП

Іващенко

24

4

МООП

Петренко

24

3

МООП

Коляда

24

3

Бази даних

Петренко

26

3

Бази даних

Коляда

26

3


Рис. 2.10. Результат операції умовного об‘єднання R та Q

Відбулося об‘єднання двох відношень за атрибутом «Код дисципліни».

Останньою операцією включеною до набору операцій реляційної алгебри є операція ділення.

Операція ділення є зручною, коли маємо порівняти деяку множину значень окремих атрибутів в різних відношеннях. Позначається вона наступним чином:

Q = R [A:B] T,

де Q,R,T - відношення, A,B - набір атрибутів спільних у обох вихідних відношеннях R і T. R[A] називається проекцією відношення R на атрибут А, відповідно Т[В] - проекція відношення Т на атрибут В.

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

Задача: Використовуючи операцію ділення сформувати список студентів, що здали всі дисципліни екзаменаційної сесії, якщо дані представлені тьома відношеннями: R1( № зал. кн., група, дисципліна, оцінка), R2( № зал. кн., ПІБ, група), R3( група, дисципліна).

Виходячи з завдання, результат отримаємо завдяки виконанню наступної операції

R7 = R1[№ зал.кн., ПІБ, : № зал.кн., ПІБ]R2.

Виконаємо послідовність проміжних кроків, що призведе до отримання кінцевого результату:

  1. Побудуємо відношення, яке відображає всі дисципліни, що має здати студент під час сесії -

R4( № зал.кн., ПІП, група, дисципліна) =

=R2 [R2. група =R3. група]R3.

  1. З відношення R1 відфільтруємо успішні результати складання іспитів

R1[a] = R1[оцінка>2].

  1. Виберемо дані про дисципліни, іспити по яким ще не здавали

R5 = R4\R1[a][ № зал. кн., ПІБ,група, дисципліна].

Зверніть увагу, що ми використали проекцію R1 для того, щоб відкинути атрибут "оцінка" і зробити схеми відношень еквівалентними.

  1. Накінець виберемо студентів, що не здали сесію повністю.

R6 = R5[№ зал. кн., ПІБ].

  1. Для отримання даних про студентів, що здали сесію, від переліку всіх студентів віднімемо тих , які відповідають відношенню R6.

R7 = R2[№ зал. кн., ПІБ]\R6.

Операції реляційної алгебри дали підставу для розробки та обгрунтування міжплатформової мови запитів SQL, а саме оператора SELECT з усіма реченнями, які забезпечують умови вибору, роботу зі з‘єднаними таблицями, групування даних і. т..д. Складові мови SQL будемо розглядати в наступних параграфах.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]