Операция theta-join (тета-соединение)
Пусть заданы отношения R(A, B1) и S(B2, C) такие, что B1 и B2 определены на общем домене, и пусть θ – какое-либо из бинарных отношений =, <, <, ≤, ≥, >, ≠, которое применимо к домену атрибутов B1, B2. Тета-соединение R по B1 с S по B2 обозначается как R[B1 θ B2]S. Это – конкатенация строк отношения R со строками отношения S, формируемая всякий раз, когда компонент B1 строки R
находится в отношении θ с компонентом B2 строки S. Если отношение θ является равенством, операция THETA-JOIN называется EQUI-JOIN (эквисоединением). Из всех операций THETA-JOIN только EQUI-JOIN дает результат, который обязательно содержит два идентичных столбца (один продуцированный из B1, а другой – из B2). В общем случае допускается использование в качестве θ произвольного бинарного отношения, которое применимо к домену атрибутов B1и B2.
Примеры THETA-JOIN:
R ( A B C ) S ( D E ) p 1 2 2 u
p 2 1 3 v
q 1 2 4 u
r 2 5 r 3 3
R[C = D]S ( A B C D E ) p 1 2 2 u
q 1 2 2 u
r 3 3 3 v
R[C > D]S ( A B C D E ) r 3 3 2 u
r 2 5 2 u
r 2 5 3 v
r 2 5 4 u
Если отношения, к которым применяется оператор THETA-JOIN, имеют какие-либо общие имена атрибутов, то должны быть заданы имена атрибутов результирующего отношения. Например, если у обоих отношений R и S
имеются атрибуты A, B, и все эти четыре атрибута определяются на некотором общем домене, мы можем определить несколько возможных θ-соединений R с S. Одно из таких определений:
T(D, E, F, G) = R(A, B)[B > B]S(A, B).
При использовании соглашения о порядке перечисления атрибутов это означает, что источником значений для атрибута D отношения T является атрибут A отношения R. Подобным же образом, источниками значений атрибутов E, F и G отношения T являются, соответственно, атрибут B отношения R, а также атрибуты A и B отношения S.