Определение
Выбором из отношения r(R) по условию F называется отношение s = σF(r), для которого:
• схема отношения совпадает со схемой R,
• реализация отношения есть множество кортежей из r, удовлетворяющих условию F.
Формальная запись:
Дано r(R), r = {ti}
s(R) = σF(r), s = {u1 | ui ∈ R и F(ui) – истинно}
Условие (предикат) F записывается в соответствии со следующими правилами:
• в качестве операндов могут быть указаны атрибуты отношения и/или константы;
• в качестве операций могут быть использованы операции отношения (=, ≠ и т.д.) и логические операции (∧, ∨, ¬).
Для указания порядка вычисления предиката F в нем могут быть использованы круглые скобки.
Пример:
r | (A | B | C) | s = σA = ‘a1’ ∧ C = ‘c1’(r) | (A | B | C) | |
a1 | b1 | c1 | a1 | b1 | c1 | |||
a1 | b2 | c1 | a1 | b2 | c1 | |||
a2 | b1 | c2 |
Выбор дает горизонтальное подмножество отношения.
Свойства операции:
коммутативна – σF1(σF2(r)) = σF2(σF1(r)) = σF1∧ F2 (r)
дистрибутивна относительно операций γ = (∩, ∪, –):
σF (r γ s) = σF (r) γ σF (s)
Операция выбора осуществляет ограничение кортежей исходного отношения до значений, удовлетворяющих условию.
Соединение
В реляционной алгебре рассматриваются две модификации данной операции: естественное соединение и соединение по условию (или θ – соединение).
Естественное соединение
Естественным соединением отношений r1(R1), R1 = XY, и r2(R2), R2 = YZ, где Y – общее подмножество атрибутов из R1 и R2, определенных на одних и тех же доменах, называется отношение
s(R) = r1 r2, для которого:
• схема отношения R = R1 ∪ R2 = XYZ,
• реализация отношения есть множество кортежей {t}, для которых πXY(t) ∈ r1 и πYZ(t) ∈ r2.
Формальная запись:
Даны r1(R1), R1 = XY, и r2(R2), R2 = YZ.
s(R) = r1 r2, R = R1 ∪ R2 = XYZ, s = {t | таких, что πXY(t) ∈ r1 и πYZ(t) ∈ r2}
Пример:
r1 | (A | B | C) | r2 | (B | C | D) | s = r1 r2 | (A | B | C | D) | ||
a | b | c | b | c | d | a | b | c | d | |||||
d | b | c | b | c | e | a | b | c | e | |||||
b | b | f | a | d | b | d | b | c | d | |||||
c | a | d | a | b | f | d | b | c | e | |||||
c | a | d | b |
Приведенное естественное соединение называется внутренним, или замкнутым, так как результат операции содержит только те кортежи из двух отношений, которые имеют совпадающие значения одноименных атрибутов. Наряду с такой операцией, рассматривается еще операция внешнего, или не замкнутого естественного соединения, при этом существуют разновидности операции внешнего соединения: левое, правое и полное внешнее соединение.
Результат операции левого внешнего соединения r1 r2 включает результат операции естественного соединения, дополненный и теми кортежами из r1, для которых нет соответствующих кортежей из r2; для таких кортежей значения атрибутов, унаследованных от r2, устанавливаются как пустые значения.
Пример:
r1 | (A | B | C) | r2 | (B | C | D) | s = r1 r2 | (A | B | C | D) | ||
a | b | c | b | c | d | a | b | c | d | |||||
d | b | c | b | c | e | a | b | c | e | |||||
b | b | f | a | d | b | d | b | c | d | |||||
c | a | d | a | b | f | d | b | c | e | |||||
b | b | f | - | |||||||||||
c | a | d | b |
Результат операции правого внешнего соединения r1 r2 включает результат операции естественного соединения, дополненный и теми кортежами из r2, для которых нет соответствующих кортежей из r1; для таких кортежей значения атрибутов, унаследованных от r1, устанавливаются как пустые значения.
Пример:
r1 | (A | B | C) | r2 | (B | C | D) | s = r1 r2 | (A | B | C | D) | ||
a | b | c | b | c | d | a | b | c | d | |||||
d | b | c | b | c | e | a | b | c | e | |||||
b | b | f | a | d | b | d | b | c | d | |||||
c | a | d | a | b | f | d | b | c | e | |||||
c | a | d | b | |||||||||||
- | a | b | f |
Наконец, результат операции полного внешнего соединения r1 r2 включает результат операции естественного соединения, дополненный и кортежами и из r1, для которых нет соответствующих кортежей из r2, и кортежами из r2, для которых нет соответствующих кортежей из r1, с пустыми значениями соответствующих унаследованных атрибутов.
Пример:
r1 | (A | B | C) | r2 | (B | C | D) | s = r1 r2 | (A | B | C | D) | ||
a | b | c | b | c | d | a | b | c | d | |||||
d | b | c | b | c | e | a | b | c | e | |||||
b | b | f | a | d | b | d | b | c | d | |||||
c | a | d | a | b | f | d | b | c | e | |||||
b | b | f | - | |||||||||||
c | a | d | b | |||||||||||
- | a | b | f |
Соединение по условию