Выбор
Проекция
Специальные операции
К специальным операциям реляционной алгебры относятся:
- проекция
- выбор (или селекция)
- соединение
- деление
Специальные операции определены только для нормализованных отношений. В этих операциях, наряду с самими отношениями, участвуют и их атрибуты. В отношениях РМД к атрибутам можно обращаться или по имени, или по их позиции в схеме отношений. Мы будем использовать обращение к атрибутам по имени.
Данная операция является унарной операцией на отношениях, т.е. в этой операции участвует только одно отношение.
Определение
Проекцией отношения r(R), R = {Ai}, на некоторый список имен атрибутов (подмножество атрибутов) L из R, L Í R, называется отношение s = pL(r), для которого:
- схема отношения определяется списком L,
- реализация отношения есть множество кортежей, полученных из кортежей отношения r путем вычеркивания элементов, соответствующих атрибутам R – L и исключением дубликатов.
Формальная запись:
Дано r(R), R(A1, A2, …, Am), r = {<t1 : A1, t2 : A2…, tm : Am >}
|
|
s(L) = pL(r), L Í R, L(B1, B2, …, Bk), Bi Í R, s = {<u1: B1, u2: B2, …, uk: Bk> | таких, что ui = tj, если Bi º Aj}
Пример:
r | (A | B | C | D) | L = (A,B) | pL(r) | (A | B) | |
a1 | b1 | c2 | d1 | a1 | b1 | ||||
a1 | b1 | c1 | d2 | a2 | b1 | ||||
a2 | b1 | c3 | d2 |
Проекция дает вертикальное подмножество отношения.
Свойство проекции:
Если Y Í X Í R, то pY(pX(r)) º pY(r)
Данную операцию называют еще ограничением и селекцией.
Также является унарной операцией над отношением.
Определение
Выбором из отношения r(R) по условию F называется отношение s = sF(r), для которого:
- схема отношения совпадает со схемой R,
- реализация отношения есть множество кортежей из r, удовлетворяющих условию F.
Формальная запись:
Дано r(R), r = {ti}
s(R) = sF(r), s = {u1 | ui Î R и F(u) – истинно}
Условие (предикат) F записывается в соответствии со следующими правилами:
- в качестве операндов могут быть указаны атрибуты отношения и/или константы;
- в качестве операций могут быть использованы операции отношения (=, ¹ и т.д.) и логические операции (Ù, Ú, Ø).
Для указания порядка вычисления предиката F в нем могут быть использованы круглые скобки.
Пример:
r | (A | B | C) | s = sA = ‘a1’ Ù C = ‘c1’(r) | (A | B | C) | |
a1 | b1 | c1 | a1 | b1 | c1 | |||
a1 | b2 | c1 | a1 | b2 | c1 | |||
a2 | b1 | c2 |
Выбор дает горизонтальное подмножество отношения.
Свойства операции:
коммутативна – sF1(sF2(r)) = sF2(sF1(r)) = sF1Ù F2 (r)
дистрибутивна относительно операций g = (Ù, Ú, –):
sF (r g s) = sF (r) g sF (s)
Операция выбора осуществляет ограничение кортежей исходного отношения до значений, удовлетворяющих условию.
|
|
В реляционной алгебре рассматриваются две модификации данной операции: естественное соединение и соединение по условию (или q – соединение).
Естественное соединение
Определение
Естественным соединением отношений r1(R1), R1 = XY, и r2(R2), R2 = YZ, где Y – общее подмножество атрибутов из R1 и R2, определенных на одних и тех же доменах, называется отношение
s(R) = r1 r2, для которого:
- схема отношения R = R1 È R2 = XYZ,
- реализация отношения есть множество кортежей {t}, для которых pXY(t) Î r1 и pYZ(t) Î r2.
Формальная запись:
Даны r1(R1), R1 = XY, и r2(R2), R2 = YZ.
s(R) = r1 r2, R = R1 È R2 = XYZ, s = {t | таких, что pXY(t) Î r1 и pYZ(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 | d | b | c | e | ||||||||
c | a | d | b |
Соединение по условию
Определение
Даны два отношения r1(R1) и r2(R2), для которых в R1 и R2 нет атрибутов с одинаковыми именами, т.е. R1 Ç R2 = 0. Пусть атрибут A Î R1 сравним по условию q с атрибутом B Î R2 (условие q определяется так же, как предикат F в операции выбора). Тогда соединением отношений r1(R1) и r2(R2) по условию q называется отношение s(R) = r1A qB r2, для которого:
- схема отношения R = R1 È R2,
- реализация отношения есть множество сцеплений кортежей из r1 и r2, удовлетворяющих условию A q B.
Формальная запись:
Даны r1(R1) и r2(R2), R1 Ç R2 = 0.
s(R) = r1A qB r2, R = R1 È R2, s = {uv | таких, что u Î r1, v Î r2 и для u и v выполняется условие q}.
Атрибуты A и B могут быть составными, т.е. A = {A1, A2, …, An}, B = {B1, B2, …, Bn}. Тогда
A q B = [A1 q1 B1, A2 q2 B2, …, An qn Bn]. Операции qi могут быть разными. Например, пусть даны r1(A1, A2, A3) и r2(B1, B2, B3), и все атрибуты определены на числовых доменах. Тогда можно получить соединение по условию: s = r1 A1 < B1, A2 = B2, A3 ³ B3 r2
Пример:
r1 | (A | B | C) | r2 | (X | Y) | s = r1 B < X r2 | (A | B | C | X | Y) | ||
Если в качестве операции q используется операция =, такое соединение по условию называется эквисоединением.