Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Неделя 05 Лекция 1 (7).doc
Скачиваний:
4
Добавлен:
13.11.2019
Размер:
412.67 Кб
Скачать

7.2.7.4. Полусоединение.

Операция полусоединения определяет отношение, которое содержит те кортежи отношения , которые входят в соединение отношений и .

Преимущество полусоединения заключается в том, что оно позволяет сократить количество кортежей, которые нужно обработать для получения соединения. Это особенно полезно при вычислении соединений в распределенных системах. Операцию полусоединения можно сформулировать и с помощью операторов проекции и соединения:

.

Здесь — это набор всех атрибутов в отношении . На самом деле это полутета-соединение, причем следует отметить, что существуют полусоединения по эквивалентности и полуестественные соединения.

ПРИМЕР.

Создайте отчет, содержащий полную информацию обо всех читателях по имени «Дмитрий», которые когда-либо брали книги в библиотеке

Если нас интересуют, только атрибуты отношения Readers, то в таком случае мы можем использовать следующую операцию полусоединения, которая приводит к созданию отношения, приведенного в табл. 7.9.

Таблица 7.9.

Результат полусоединения отношений Reader и BookGiveOutRecord.

Code

FamilyNamе

Name

Patronymic

ReaderCardNumber

PasportCode

Job

Post

Note

4

Суренко

Дмитрий

Павлович

543

6

ДГУ, каф. геофизики

Ст. преподава-тель

blob

7.2.8. Пересечение.

Операция пересечения определяет отношение, которое содержит кортежи, присутствующие как в отношении , так и в отношении . Отношения и должны быть совместны по объединению.

Пересечение можно сформулировать и на основе оператора разности множеств: .

7.2.9. Деление.

Оператор деления может быть полезен в случае запросов особого типа, которые довольно часто встречаются в приложениях баз данных. Предположим, что отношение определено на множестве атрибутов , а отношение — на множестве атрибутов , причем (т.е. является подмножеством ). Пусть , т.е. является множеством атрибутов отношения , которые не являются атрибутами отношения . Тогда определение оператора деления будет выглядеть следующим образом.

Результатом оператора деления является набор кортежей отношения , определенных на множестве атрибутов , которые соответствуют комбинации всех кортежей отношения .

Этот оператор можно сформулировать и на основе других основных операторов:

ПРИМЕР.

Создайте список всех читателей, которые родились после 31 декабря 1960 года.

Для решения поставленной задачи сначала следует с помощью оператора выборки выполнить поиск в отношении PasportData всех кодов паспортов, в которых дата рождения указана после 31 декабря 1960 года (результат этой операции указан в таблице 7.10). Затем последствием проекции получить только номера кодов паспортов и кодов читателей из отношения Readers (результат этой операции представлен в табл. 7.11). После этого нужно применить приведенный ниже оператор деления и получить новое отношение, представленное в таблице 7.12.

Таблица 7.10.

Результат применения к отношению PasportData операции выборки .

Code

3

4

5

7

8

12

Таблица 7.11.

Результат применения проекции к отношению PasportData.

Code

PasportCode

1

4

2

1

3

11

4

6

5

8

6

5

Таблица 7.12.

Результат применения операции деления к двум предыдущим операциям.

Code

1

5

6