Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція 3 Реляційні БД.doc
Скачиваний:
24
Добавлен:
19.11.2019
Размер:
2.52 Mб
Скачать

Напівз'єднання

R S

Операція напівз'єднання визначає відношення, що містить ті кортежі відношення R, що входять у з'єднання відношень R і S.

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

R S = ПА(R S)

Тут А - це набір всіх атрибутів у відношенні R. Насправді це напівтета-зєднання, причому слід зазначити, що існують напівз'єднання по еквівалентності і напівприродні з'єднання.

Приклад 3.9 Операція напівз'єднання

Створіть звіт, що містить повну інформацію про всіх співробітників працюючих у відділенні компанії, розташованому в районі 'Partick'.

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

S taff staff.bno = branch.bno and branch.ares = ‘Patrick’ Branch

Перетинання

R S

Операція перетинання визначає відношення, що містить кортежі, що є присутнім як у відношенні R, так і у відношенні S. Відношення R і S повинні бути сумісні по об'єднанню.

Перетинання можна сформулювати і на основі оператора різниці множин:

R S = R - (R - S)

Розподіл

Оператор розподілу може бути корисний у випадку запитів особливого типу, які досить часто зустрічаються в додатках баз даних. Припустимо, що відношення R визначене на множині атрибутів А, а відношення S - на множини атрибутів У, причому В А (тобто В є підмножиною А). Нехай С = А - У, тобто С є множиною атрибутів відношення R, що не є атрибутами відношення S.

Тоді визначення оператора розподілу буде виглядати в такий спосіб

R S

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

Цей оператор можна сформулювати і на основі інших основних операторів:

T1 = Пс(ДО)

T2 = Пс((S x T1) - R)

T = T1 + T2

Приклад 3.10 Операція розподілу відношень

Створіть список всіх орендарів, що оглядали об'єкти нерухомості з трьома кімнатами.

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

( П rno, pno (Viewing)) (П pnorooms = 3 (Property_for_Rent)))

Таблиця 3.18. Результат застосування до відношення Property_for_Rent операції вибірки

pnorooms = 3 (Property_for_Rent))

Rno

RG4

RG36