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

7.2.7.1. Тета-соединение.

Операция тета-соединения определяет отношение, которое содержит кортежи из декартового произведения отношений и , удовлетворяющие предикату . Предикат имеет вид , где вместо может быть указан один из операторов сравнения .

Обозначение тета-соединения можно переписать на основе базовых операций выборки и декартового произведения так, как показано ниже.

Так же, как и в случае с декартовым произведением, степенью тета-соединения называется сумма степеней операндов-отношений и . Если предикат содержит только оператор равенства , то соединение называется соединением по эквивалентности (equi-join).

ПРИМЕР.

Создайте список всех читателей, которые когда-либо брали книги в библиотеке.

В примере, иллюстрирующем декартово произведение, для получения этого списка использовались операции декартового произведения и выборки. Однако тот же самый результат можно получить с помощью операции соединения по эквивалентности.

Результат выполнения этой операции показан в табл. 7.4.

7.2.7.2. Естественное соединение.

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

Степенью естественного соединения называется сумма степеней операндов-отношений и минус количество атрибутов .

ПРИМЕР.

Создайте список всех читателей, которые когда-либо брали книги в библиотеке.

В примере тета-соединения для составления этого списка использовалось соединение по эквивалентности, но в нем присутствовали два атрибута Readers.Code и ReaderCode, содержащие коды читателей библиотеки. Если бы они имели одинаковое имя, например ReaderCode, то для устранения одного из них можно было бы воспользоваться операцией естественного соединения.

Результат этих операций показан в таблице 7.7.

Таблица 7.7.

Естественное соединение сокращенного варианта отношений Readers и BookGiveOutRecord (использованы только некоторые атрибуты).

ReaderCode

FamilyName

Name

BookGiveOutRecord.Code

InventoryCode

2

Иванов

Петр

1

6

3

Федорец

Ирина

2

4

6

Ильин

Иван

3

3

4

Суренко

Дмитрий

4

6

7.2.7.3. Внешнее соединение.

Зачастую при соединении двух отношений кортеж из одного отношения не находит соответствующего кортежа в другом отношении. Иначе говоря, в столбцах соединения оказываются несовпадающие значения. Может потребоваться, чтобы строка из одного отношения была представлена в результате соединения, даже если в другом отношении нет совпадающего значения. Эта цель может быть достигнута с помощью внешнего соединения.

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

Для обозначения отсутствующих значений во втором отношении используется определитель NULL. Внешнее соединение становится все более распространенным в реляционных СУБД, к тому же в настоящее время оно является оператором, включенным в новый стандарт SQL. Преимуществом внешнего соединения является то, что при таком соединении сохраняется исходная информация, т.е. внешнее соединение сохраняет кортежи, которые были бы утрачены при использовании других типов соединения.

ПРИМЕР.

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

Результат этой операции показан в таблице 7.8.

Таблица 7.8

Внешнее соединение отношений Readers и BookGiveOutRecord

ReaderCode

FamilyNamе

Name

Patronymic

OutLibrarianCode

InventaryCode

IssueDate

ReturnDate

FactReturnDate

InLibrarianCode

1

Иванов

Петр

Иванович

4

6

11.09.2004

25.09.2004

24.09.2004

3

2

Федорец

Ирина

Олеговна

4

4

02.09.2004

16.09.2004

11.12.2004

3

3

Ильин

Иван

Петрович

4

3

02.09.2004

16.09.2004

16.09.2004

1

4

Суренко

Дмитрий

Павлович

3

6

30.10.2004

13.11.2004

10.01.2005

6

5

Коршунова

Наталья

Юрьевна

NULL

NULL

NULL

NULL

NULL

NULL

6

Носенко

Олег

Владимирович

NULL

NULL

NULL

NULL

NULL

NULL

Строго говоря, в примере показано левое (естественное) внешнее соединение, поскольку в результирующем отношении содержатся все кортежи левого отношения. Существует также правое внешнее соединение, называемое так потому, что в резуль­тирующем отношении содержатся все кортежи правого отношения. Кроме того, су­ществует и полное внешнее соединение, в результирующее отношение которого по­мещаются все кортежи из обоих отношений и в котором для обозначения несовпа­дающих значений кортежей используются определители NULL.