Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка без заданий часть1.pdf
Скачиваний:
11
Добавлен:
12.05.2015
Размер:
310.49 Кб
Скачать

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

Пересечение R Ç S

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

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

R Ç S = R-(R-S)

A B

a1

Разность R-S

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

Деление

Оператор деления может быть полезен в случае запросов особого типа, которые довольно часто встречаются в приложениях баз данных. Предположим, что отношение R определено на множестве атрибутов А, а отношение S

— на множестве атрибутов В, причем В Í А (т.е. В является подмножеством А). Пусть С=А-В, т.е. С является множеством атрибутов отношения R, которые не являются атрибутами отношения S. Тогда определение оператора деления будет выглядеть следующим образом.

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

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

Т1 = ПС (R)

Т2 = ПС ((S´Т1)-R) Т = Т1 - Т2

Если возьмем результат из выше приведенного примера декартового произведения и поделим на S, то получим R.

Операции соединения

Как правило, пользователей интересует лишь некоторая часть всех ком-

- 23 -

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

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

Тета-соединение (Θ-join).

Соединение по эквивалентности (equi-join), которое является частным видом тета-соединения.

Естественное соединение (natural join).

Внешнее соединение (outer join).

Полусоединение (semi-join).

Teтa-соединение (Θ-join)

Операция тета-соединения определяет отношение, которое содержит кортежи из декартового произведения отношений R и S, удовлетворяющие предикату F. Предикат F имеет вид R.aiΘS.bi, где вместо Θ может быть указан один из операторов сравнения (<, <=, >, >=, = или ~=).

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

R F S = QF(RxS)

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

R R.B>S.B S=

R.A

R.B

S.B

S.C

 

 

 

 

a

1

1

aa

 

 

 

 

a

1

2

bb

 

 

 

 

b

2

1

aa

 

 

 

 

b

2

2

bb

 

 

 

 

c

3

1

aa

 

 

 

 

c

3

2

aa

 

 

 

 

R.A

R.B

S.B

S.C

 

 

 

 

a

1

2

bb

 

 

 

 

b

2

1

aa

 

 

 

 

c

3

1

aa

 

 

 

 

c

3

2

aa

 

 

 

 

- 24 -

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

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

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

R S=

R.A

R.B

S.B

S.C

 

 

 

 

a

1

1

aa

 

 

 

 

a

1

2

bb

 

 

 

 

b

2

1

aa

 

 

 

 

b

2

2

bb

 

 

 

 

c

3

1

aa

 

 

 

 

c

3

2

aa

 

 

 

 

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

R.A

R.B

S.C

 

 

 

a

1

aa

 

 

 

b

2

bb

 

 

 

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

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

R É S=

R.A

R.B

S.B

S.C

 

 

 

 

a

1

1

aa

 

 

 

 

a

1

2

bb

 

 

 

 

b

2

1

aa

 

 

 

 

b

2

2

bb

 

 

 

 

c

3

1

aa

 

 

 

 

c

3

2

Aa

 

 

 

 

c

3

null

null

 

 

 

 

R.A

R.B

S.B

S.C

 

 

 

 

a

1

1

aa

 

 

 

 

b

2

2

bb

 

 

 

 

c

3

null

null

 

 

 

 

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

- 25 -