Пример. Равносоединение и естественное соединение отношений 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.

         

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: