Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
бд.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.92 Mб
Скачать

Спеціальні реляційні операції

У цьому підрозділі ми трохи докладніше розглянемо спеціальні реляційні операції реляційної алгебри: обмеження, проекція, з'єднання і поділ.

Операція обмеження

Операція обмеження A WHERE c вимагає наявності двох операндів: відношення, що обмежується і умови обмеження. Проста умова обмеження може мати вид:

a comp-op b,

де а і b - назви атрибутів відношення, яке обмежується, для яких осмислена операція порівняння comp-op, або вид

a comp-op const,

де a - назва атрибута з відношення, що обмежується, а const - літерально задана константа.

На інтуїтивному рівні операцію обмеження найкраще представляти, як взяття деякої «горизонтальної» (може з пропусками) вирізки з операнда-відношення (рис. 6.4.).

Рис. 6.4. Обмеження відношення

Операція взяття проекції

Операція взяття проекції PROJECT A {a1, a2, …, an} також вимагає наявності двох операндів - відношення A, яке проектується і списку назв атрибутів, що входять в заголовок відношення A. Результатом проекції відношення A за списком атрибутів a1, a2, ..., am є нове відношення, з заголовком, який визначається множиною атрибутів {a1, a2, ..., am}, і з тілом, що складається з кортежів виду <a1: v1, a2: v2, ..., am: vm> таких, що відносно A є кортеж, атрибут a1 якого має значення v1, атрибут a2 має значення v2, ..., атрибут am має значення vm.

Якщо сказати простою мовою: потрібно з відношення А видалити «зайві» атрибути (стовпці), які не входять до {a1, a2, ..., am}. А потім видалити кортежі-дублікати (рядки, що повторюються) (рис. 6.5.).

Рис. 6.5. Проекція відношення на три атрибута

Операція з'єднання відношень

Загальна операція з'єднання (що також називається з'єднанням за умовою) вимагає наявності двох операндів - з'єднуються два відношення і третього операнда - простої умови. Нехай з'єднуються відношення A і B. Як і у випадку операції обмеження, умова з'єднання comp має вигляд або

(a comp-op b),

або

(a comp-op const),

де a і b - назви атрибутів відношень A і B, const - літерально задана константа, а comp-op - допустима в даному контексті операція порівняння. Тоді за визначенням результатом операції порівняння є відношення, що отримується шляхом виконання операції обмеження за умовою comp прямого добутку відношень A і B.

Якщо уважно осмислити це визначення, то стане ясно, що в загальному випадку застосування умови з'єднання істотно зменшить потужність результату проміжного прямого добутку операндів-відношень тільки в тому випадку, коли умова з'єднання має вигляд

(a comp-op b),

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

Для прикладу розглянемо результат, отриманий в табл. 6.3. та накладемо на нього нову умову, що код студента повинен бути непарним числом (табл. 6.4.).

Таблиця 6.4. З'єднання відношень за умовою

Код навчальної групи

Назва групи

Код студента

ПІБ

500

КА-01

1

Рубан Ілля Сергійович

500

КА-01

3

Земляний Кирило Дмитрович

600

КА-02

1

Рубан Ілля Сергійович

600

КА-02

3

Земляний Кирило Дмитрович

Хоча операція з'єднання в нашій інтерпретації не є примітивною (оскільки вона визначається з використанням прямого добутку і обмеження), в силу особливої практичної важливості вона включається в базовий набір операцій реляційної алгебри.

Існує важливий окремий випадок з'єднання - еквіз'єднання і просте, але важливе розширення операції еквіз'єднання - природне з'єднання. Операція з'єднання називається операцією еквіз'єднання, якщо умова з'єднання має вигляд (x = y), де x і y - назви різних операндів з'єднання. Цей випадок важливий тому, що він часто зустрічається на практиці та для нього існують ефективні алгоритми реалізації. Позначається еквіз'єднання:

A[x=y]B.

Розглянемо приклад еквіз'єднання відношень ГРОМАДЯНСТВО (табл. 6.5.) та МІСЦЕ_РОБОТИ (табл. 6.6.).

Таблиця 6.5. Відношення ГРОМАДЯНСТВО

ПІБ

Громадянство

Даниленко

Україна

Палій

Португалія

Бондаренко

Германія

Таблиця 6.6. Відношення МІСЦЕ_РОБОТИ

ПІБ

Місце роботи

Даниленко

Італія

Палій

Іспанія

Бойко

Австрія

Результуюче відношення (за умовою рівності атрибутів «ПІБ» в обох відношеннях) отримали у табл. 6.7.

Таблиця 6.7. Еквіз'єднання відношень

ПІБ

Громадянство

ПІБ

Місце роботи

Даниленко

Україна

Даниленко

Італія

Палій

Португалія

Палій

Іспанія

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

Операція природного з'єднання застосовується до пари відношень A(a1, a2, ..., an - 1, z) та B(b1, b2, ..., bn - 1, z), які обидва мають загальний атрибут z (тобто атрибут з однією і тією ж назвою і визначений на одному і тому ж домені). Природне з'єднання A і B - нове відношення С(a1, a2, ..., an - 1, z, b1, b2, ..., bn - 1), яке складається з кортежів, таких що (a1, a2, ..., an - 1, z) є A та (b1, b2, ..., bn - 1, z) є B.

Природне з'єднання настільки важливе, що для нього використовують спеціальний синтаксис:

A JOIN B

У синтаксисі природного з'єднання не вказуються, за яким атрибутам проводиться з'єднання. Природне з'єднання проводиться по всіх однаковим атрибутам. Природне з'єднання еквівалентно наступній послідовності реляційних операцій:

  1. Перейменувати однакові атрибути у відношеннях.

  2. Виконати декартовий добуток відношень.

  3. Виконати вибірку по співпадаючим значенням атрибутів, що мали однакові назви.

  4. Виконати проекцію, видаливши атрибути, які повторюються.

  5. Перейменувати атрибути, повернувши їм початкові назви.

Природне з'єднання (як, і з'єднання загального вигляду) має властивість асоціативності, тому можна виконувати послідовне природне з'єднання декількох відношень:

(A JOIN B) JOIN C = A JOIN (B JOIN C),

тому такі з'єднання можна записувати, опускаючи дужки:

A JOIN B JOIN C.

Для розглянутих вищє відношень ГРОМАДЯНСТВО (табл. 6.1.) та МІСЦЕ_РОБОТИ (табл. 6.2.) виконаємо природне з'єднання (табл. 6.4.).

Таблиця 6.4. Природне з'єднання відношень

ПІБ

Громадянство

Місце роботи

Даниленко

Україна

Італія

Палій

Португалія

Іспанія

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