Пример. Равносоединение и естественное соединение отношений S и SP

Декартово произведение отношений S и SP

S TIMES (SP RENAME S# As SPS#)

S# SNAME STATUS CITY SPS# P# QTY
S1 Smith London S1 P1
S1 Smith London S1 P2
S1 Smith London S1 P3
S1 Smith London S2 P1
S1 Smith London S2 P2
S1 Smith London S3 P2
S2 Jones Paris S1 P1
S2 Jones Paris S1 P2
S2 Jones Paris S1 P3
S2 Jones Paris S2 P1
S2 Jones Paris S2 P2
S2 Jones Paris S3 P2
S3 Black Paris S1 P1
S3 Black Paris S1 P2
S3 Black Paris S1 P3
S3 Black Paris S2 P1
S3 Black Paris S2 P2
S3 Black Paris S3 P2

Таблица 1.

Равносоединение отношений S и SP

(S TIMES (SP RENAME S# As SPS#)) WHERE S# = SPS#

S# SNAME STATUS CITY SPS# P# QTY
S1 Smith London S1 P1
S1 Smith London S1 P2
S1 Smith London S1 P3
S2 Jones Paris S2 P1
S2 Jones Paris S2 P2
S3 Black Paris S3 P2

Таблица 2.

 

Естественное соединение отношений S и SP

Если в этом отношении (Таблица 2.) опустить один атрибут, например SPS#, то получим естественное соединение.

 

 

((S TIMES (SP RENAME S# As SPS#)) WHERE S# = SPS#){All BUT SPS#} (А)

S# SNAME STATUS CITY P# QTY
S1 Smith London P1
S1 Smith London P2
S1 Smith London P3
S2 Jones Paris P1
S2 Jones Paris P2
S3 Black Paris P2

Таблица 3.

Выражение (А) эквивалентно выражению S JOIN SP

Получить всю информацию о поставщиках и поставках деталей ‘P2’

 

(S JOIN SP) WHERE P = ‘P2’ (В)

S# SNAME STATUS CITY P# QTY
S1 Smith London P2
S2 Jones Paris P2
S3 Black Paris P2

 

((S JOIN SP) WHERE P = ‘P2’){SNAME} (С)

SNAME
Smith
Jones
Black

 

Последнее выражение определяет имена поставщиков детали ‘Р2’. Первым выполняется естественное соединение S и SP по общему атрибуту S#. Затем в результате соединения выбираются кортежи, в которых P# = ‘P2’, и далее выполняется проекция по атрибуту SNAME полученной выборки.

Предыдущее выражение можно преобразовать в логически эквивалентное и более рациональное выражение следующего вида

((SP WHERE P# = ‘P2’) JOIN S){SNAME} (D)

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

Пример естественного соединения

C D

X Y   Y Z
A1 B1   B1 C1
A2 B1   B2 C1
A3 B2   B3 C2

 

C JOIN D

X Y Z
A1 B1 C1
A2 B2 C1
A3 B2 C1

Деление.Пусть отношения С и D имеют заголовки {X1, X2, …, XM} {Y1, Y2, …, YN} соответственно. Заголовки не пересекаются. Пусть имеется отношение Я с заголовком {X1, X2, …, XM, Y1, Y2,…, YN}. Результат деления отношения С на D по отношению Z (C DIVIPEBY D PER Z, где С - делимое, D - делитель, Z - отношение-посредник) называется отношение, содержащее такие значения Х из отношения С, для которых соответствующие значения Y из Z включают все значения Y из D.