МІНІСТЕРСТВО ОСВІТИ, НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра ІСМ
Лабораторна робота №2
на тему:
ЗАСТОСУВАННЯ РЕЛЯЦІЙНИХ ОПЕРАТОРІВ
З курсу:
«Теорія систем баз даних та знань»
Мета роботи
Вивчення застосування звичайних булевих операцій над множинами до відношень. Визначення трьох спеціальних операторів над відношеннями: вибору, проекції і з’єднання. Оператори об’єднання, перетину, різниці, активного доповнення, вибірки, натурального зєднання, ділення, перейменування і -з’єднання разом з постійними і регулярниим відношеннями відносяться до реляційної алгебри. Нарешті, аналізуються дві операції, що не належать алгебрі, але іноді корисні при реалізації бази даних, а саме: оператор розщеплення та оператор фактор.
Теоретичні відомості
Два відношення з однією і тією ж схемою можуть бути розглянуті як множини того самого універсумуму – множини всіх можливих кортежів із цією схемою. До таких двох відношень можуть бути застосовані булеві операції.
Нехай dom(R) – множина всіх кортежів над атрибутами схеми R і їх доменами. Доповнення відношення r(R) можна визначити як різницю . Однак, якщо який-небудь атрибут A в R має нескінченний домен, також буде нескінченним, а відповідно не буде відношенням. Модифікована версія доповнення, що називається активним доповненням, завжди дає відношення. Визначимо його. Якщо – відношення і , то активним доменом відносно r називається множина . Нехай – множина всіх кортежів над атрибутами з R і їх активними доменами відносно r. Активним доповненням є , відмітимо, що - завжди відношення.
Оператор проекції також є унарним оператором на відношеннях. Оператор проекції вибирає підмножину стовпчиків. Нехай r – відношення зі схемою R і X – підмножина з R. Проекція r на X, записана як , є відношення , отримане ви кресленням стовпців, що відповідають атрибутам в R-X, і виключенням зі стовпців, що залишили шилися з повторюваних рядків. Розгядаючи кортежі як відображення, можна записати у вигляді .
Оператор натурального з’єднання. З’єднання – це бінарний оператор для комбінування двох відношень. Оператор з’єднання комбінує два відношення по всіх спільних атрибутах. Розглянемо два відношення r(R) та s(S) і покладемо RS=T. З’єднанням відношень r та s (записується rs) є відношення q(T), що містить всі кортежі t над T, такі, що існують кортежі та із і . є підмножиною R і S, як слідує із визначення . Отже, кожен кортеж в q є комбінацією кортежу з r і кортежу s з рівними – значеннями. Якщо , то rs – це декартовий добуток r і s.
Оператор ділення. Визначення оператора ділення досить важке, але він має застосування в деяких природних ситуаціях.
Визначення 3. 1. Нехай r(R) і s(S) – відношення, SR. Поставимо =R – S. Тоді r, розділене на s, - це відношення
для кожного кортежу існує кортеж , такий, що і }.
Відношення є приватним (незалежним) від ділення r на s, що позначається . Інший спосіб сформулювати визначення наступний: - це максимальна підмножина множини , така, що міститься в r. З’єднання в цьому випадку є декартовим добутком множин.
Оператор еквіз’єднання. У визначенні оператора з’єднання відношення можуть комбінуватися тільки по однойменних стовпцях і повинні комбінуватися по всіх таких стовпцях. Відношення можуть з’єднуватися також по стовпцях з різними іменами атрибутів, але рівними доменами.
Дамо повний опис еквіз’єднаня. Нехай r(R) і s(S) – відношення і dom (Ai) = dom (Bi), 1im; Ai i Bi не припускаються різними. Еквіз’єднанням r і s по A1, A2, .., Am і B1, B2, …, Bm називається відношення
.
Позначення: .
Розширення для інших порівнянь на доменах. До цього часу єдиним порівнянням значень домену, яким користувались, була рівність. Можна порівнювати значення домену, використовуючи нерівність. Часто домени упорядковані і в цих випадках порівняння також мають сенс. Для загального розгляду таких порівнянь вводиться множина символів (знаків) бінарних відношень над парами доменів. Якщо - знак порівняння, а А і В – атрибути, то кажуть, що А -порівняльне з В, якщо знаку співставлене бінарне відношення в dom (A) x dom(B).
Оператор розщеплення. Аргументом оператора розщеплення є одне відношення, а результатом – пара відношень. Розщеплення не включене в реляційну алгебру, так як значення кожного виразу в алгебрі повинне бути єдиним відношенням. Нехай r – відношення зі схемою R, і нехай – предикат на кортежах над . Тоді розщепленням з r по , що записується як , називається пара відношень , обидва зі схемою R, такі, що i . Ясно, що . На предикат не накладається ніяких обмежень, за виключенням того, що його значення залежать тільки від кортежy t, але не від стану r.
Оператор фактор. В якості аргументу оператора фактор береться одне відношення, а в результаті отримуються два відношення. В результаті зєднання цих двох відношень отримується відношення, яке містить початкове відношення з додатковим стовпцем.
Опис виконаної роботи
Для виконання операцій спочатку виберемо таблицю – DRIVER будемо виконувати операції над DRIVER та DRIVER2. Отже, вміст DRIVER виглядає так:
/
Рис. 1. Вміст таблиці DRIVER
А це вміст таблиці DRIVER2:
/
Рис. 2. Вміст таблиці DRIVER2
Виконуємо об’єднання наступним чином:
SELECT * FROM DRIVER
UNION
SELECT * FROM DRIVER2
Результат об’єднання DRIVER і DRIVER2:
/
Рис. 3. Результат об’єднання DRIVER і DRIVER2
Виконуємо перетин наступним чином:
SELECT * FROM DRIVER
INTERSECT
SELECT * FROM DRIVER2
Результат об’єднання DRIVER і DRIVER2:
/
Рис. 4. Результат перетину DRIVER і DRIVER2
Виконуємо різницю наступним чином:
SELECT * FROM DRIVER
EXCEPT
SELECT * FROM DRIVER2
Результат виконання різниці над DRIVER і DRIVER2:
/
Рис. 4. Результат різниці DRIVER і DRIVER2
Виконуємо проекцію для таблиці DRIVER наступним чином:
SELECT ID, NAME, DATE FROM DRIVER
Результат проекції:
/
Рис. 4. Результат проекції над відношенням DRIVER
Виконуємо натуральне з’єднання CATEGORY і DRIVER2:
SELECT * FROM CATEGORY NATURAL JOIN DRIVER
Результат проекції:
/
Рис. 5. Результат натурального з’эднання (порожня множина кортежів)
Висновок на цій лабораторній роботі я ознайомився з застосуванням звичайних булевих операторів, спеціальних реляційних операторів.