Реляционная алгебра – механизм манипулирования реляционными данными Все операции производятся над отношениями, и результатом операции является отношение. R=f(R1, R2, … , Rn)

Содержание

Слайд 2

Две группы операций РА теоретико-множественные операции специальные реляционные операции

Две группы операций РА

теоретико-множественные операции
специальные реляционные операции

Слайд 3

Теоретико-множественные операции объединения отношений; пересечения отношений; взятия разности отношений; взятия декартова произведения отношений.

Теоретико-множественные операции

объединения отношений;
пересечения отношений;
взятия разности отношений;
взятия декартова произведения отношений.

Слайд 4

Объединение, пересечение и разность Отношения совместимыми по типу, если они имеют

Объединение, пересечение и разность

Отношения совместимыми по типу, если они имеют идентичные

заголовки, а атрибуты с одинаковыми именами определены на одних и тех же доменах .
Слайд 5

Объединение union При выполнении операции объединения (UNION) двух отношений с одинаковыми

Объединение union

При выполнении операции объединения (UNION) двух отношений с одинаковыми заголовками производится

отношение, включающее все кортежи, которые входят хотя бы в одно из отношений-операндов.
A ∪ B = { c: c∈A OR c∈B}
Слайд 6

Пересечение intersect пересечением множеств A и B является такое множество C{c},

Пересечение intersect

пересечением множеств A и B является такое множество C{c}, что для

любого c существуют такие элементы a, принадлежащий множеству A, и b, принадлежащий множеству B, что c=a=b;
A ∩ B = { c: c∈A AND c∈B}
Слайд 7

Разность minus разностью множеств A и B является такое множество C{c},

Разность minus

разностью множеств A и B является такое множество C{c}, что для

любого c существует такой элемент a, принадлежащий множеству A, что c=a, и не существует такой элемент b, принадлежащий B, что c=b.
A \ B = { c: c∈A AND c∉B}
Слайд 8

Слайд 9

Избыточность пересечения

Избыточность пересечения

Слайд 10

Избыточность пересечения A ∩ B = A \ (A \ B)

Избыточность пересечения

A ∩ B = A \ (A \ B)
A ∩

B = B \ (B \ A)
Слайд 11

Слайд 12

Слайд 13

Чему тождественно равно выражение (A ∩ B) \ (A \ B)

Чему тождественно равно выражение (A ∩ B) \ (A \ B)

(A

∩ B) ∩ (B \ (A \B))
(A ∩ B) ∪ (B \ A)
A ∩ B
Слайд 14

Декартово произведение Два отношения совместимы по взятию декартова произведения в том

Декартово произведение

Два отношения совместимы по взятию декартова произведения в том и

только в том случае, если пересечение множеств имен атрибутов, взятых из их схем отношений, пусто.
Любые два отношения всегда могут стать совместимыми по взятию декартова произведения, если применить операцию переименования к одному из этих отношений.
Слайд 15

Переименование атрибутов Оператор переименования атрибутов имеет следующий синтаксис: A RENAME Atr1,

Переименование атрибутов

Оператор переименования атрибутов имеет следующий синтаксис: A RENAME Atr1, Atr2 AS

NewAtr1, NewAtr2 где Atr1, Atr2 - старые значения атрибутов NewAtr1, NewAtr2 - новые значения атрибутов
A (a, b, c) B (a, d) A×B (A.a, b, c, B.a, d)
Слайд 16

Декартово произведение times Заголовок R1 × R2 R (a1, a2, …,

Декартово произведение times

Заголовок R1 × R2 R (a1, a2, …, an, b1, b2,

…, bm),
Тело R1 × R2 ={ra1, ra2, …, ran, rb1, rb2, …, rbm : ra1, ra2, …, ran∈R1, rb1, rb2, …, rbm ∈R2}.
Мощность [R1 × R2 ]= [R1] × [R2]
На основе ДК производится операция соединения
Слайд 17

Декартово произведение - пример

Декартово произведение - пример

Слайд 18

Свойства операций (OP) Ассоциативность (A OP B) OP C = A

Свойства операций (OP)

Ассоциативность (A OP B) OP C = A OP

(B OP C)
Коммутативность (кроме разности) A OP B = B OP A
Слайд 19

Реляционные операции ограничение отношения (селекция) – горизонтальная вырезка; проекцию отношения –

Реляционные операции

ограничение отношения (селекция) – горизонтальная вырезка;
проекцию отношения – вертикальная вырезка;
соединение отношений (по

условию, эквисоединение и естественное соединение);
деление отношений.
Слайд 20

Селекция (where) Простое условие требует наличия двух операндов: ограничиваемого отношения и

Селекция (where)

Простое условие требует наличия двух операндов: ограничиваемого отношения и условия

ограничения (f).
Условие ограничения может иметь вид:
(a comp-op b), где а и b – имена атрибутов ограничиваемого отношения; атрибуты a и b определены на одном домене, для значений которого поддерживается операция сравнения comp_op,;
(a comp-op const), где a – имя атрибута ограничиваемого отношения, а const –константа; атрибут a должен быть определен на домене или базовом типе, для значений которого поддерживается операция сравнения comp_op.
Операцией сравнения comp-op могут быть = ≠ > ≥ < ≤
Слайд 21

Селекция (where) Условие может состоять из нескольких простых условий, связанных булевскими

Селекция (where)

Условие может состоять из нескольких простых условий, связанных булевскими операторами

AND NOT OR Приоритеты – NOT AND OR
Результатом селекции является отношение, заголовок которого совпадает с заголовком отношения-операнда, а в тело входят те кортежи отношения-операнда, для которых значением условия ограничения является true.
Слайд 22

Как обойтись только простыми условиями? A WHERE (comp1 AND comp2) (A

Как обойтись только простыми условиями?

A WHERE (comp1 AND comp2) (A WHERE

comp1) ???? (A WHERE comp2);
A WHERE (comp1 OR comp2) (A WHERE comp1) ???? (A WHERE comp2);
A WHERE NOT comp1 (A WHERE comp1) ????.
Слайд 23

Так обойтись только простыми условиями A WHERE (comp1 AND comp2) =

Так обойтись только простыми условиями

A WHERE (comp1 AND comp2) = (A WHERE

comp1) ∩ (A WHERE comp2);
A WHERE (comp1 OR comp2) = (A WHERE comp1) ∪ (A WHERE comp2);
A WHERE NOT comp1 = A \ (A WHERE comp1).
Слайд 24

Селекция (where) σ A WHERE f = { c: c∈A AND

Селекция (where)

σ A WHERE f = { c: c∈A AND f}
σf(A)=

{ c ∈A : f(c) }
Слайд 25

Селекция - пример σ СЛУЖАЩИЕ_В_ПРОЕКТЕ_1 WHERE (СЛУ_ЗАРП > 20000.00 AND (СЛУ_ОТД_НОМ

Селекция - пример

σ СЛУЖАЩИЕ_В_ПРОЕКТЕ_1 WHERE (СЛУ_ЗАРП > 20000.00 AND (СЛУ_ОТД_НОМ

= 310 OR СЛУ_ОТД_НОМ = 315))
Слайд 26

Проекция Операция взятия проекции также требует наличия двух операндов – проецируемого

Проекция

Операция взятия проекции также требует наличия двух операндов – проецируемого отношения

A и подмножества множества имен атрибутов, входящих в заголовок отношения A.
Атрибутами результирующего отношения являются один или несколько атрибутов исходного, возможно в другом порядке.
Слайд 27

Проекция PROJECT Проекцией отношения A по атрибутам X, Y, …, Z,

Проекция PROJECT

Проекцией отношения A по атрибутам X, Y, …, Z, где каждый

из атрибутов принадлежит отношению , называется отношение с заголовком (X, Y, …, Z) и телом, содержащим множество кортежей вида (x, y, …z) , таких, для которых в отношении найдутся кортежи со значением атрибута X равным x, значением атрибута Y равным y, …, значением атрибута Z равным z.
Синтаксис операции проекции: π (X, Y, … Z) (A) = {x, y, …z : ∃ a1, a2, …, an ∈A AND x= ai1, y=ai2, …, z=aim},
Операция проекции дает " вертикальный срез " отношения, в котором удалены все возникшие при таком срезе дубликаты кортежей.
Слайд 28

Проекция - пример PROJECT (СЛУ_ОТД_НОМ) СЛУЖАЩИЕ_В_ПРОЕКТЕ_1

Проекция - пример

PROJECT (СЛУ_ОТД_НОМ) СЛУЖАЩИЕ_В_ПРОЕКТЕ_1

Слайд 29

Соединение по условию – JOIN Тэта-соединение Требует наличия двух операндов –

Соединение по условию – JOIN Тэта-соединение

Требует наличия двух операндов – соединяемых

отношений и третьего операнда – простого условия.
Условие – см. селекцию.
Операнды совместимы по взятию декартова произведения.
A JOIN B WHERE comp = (A × B) WHERE comp.
R⊳⊲fS = σf(R×S)
Слайд 30

Соединение по условию - JOIN (ПРО_ЗАРП – средняя зарплата по проекту) Соединение по условию - JOIN

Соединение по условию - JOIN

(ПРО_ЗАРП – средняя зарплата по проекту)

Соединение по

условию - JOIN
Слайд 31

Соединение по условию – JOIN СЛУЖАЩИЕ JOIN ПРОЕКТЫ WHERE (СЛУ_ЗАРП > ПРО_ЗАРП)

Соединение по условию – JOIN

СЛУЖАЩИЕ JOIN ПРОЕКТЫ WHERE (СЛУ_ЗАРП > ПРО_ЗАРП)

Слайд 32

Эквисоединение Операция соединения называется операцией эквисоединения (EQUIJOIN) , если условие соединения

Эквисоединение

Операция соединения называется операцией эквисоединения (EQUIJOIN) , если условие соединения имеет

вид (a = b), где a и b – атрибуты разных операндов соединения. Этот случай важен потому, что он чаще всего встречается на практике, и для него существуют наиболее эффективные алгоритмы реализации.
Слайд 33

Эквисоединение СЛУЖАЩИЕ JOIN (ПРОЕКТЫ RENAME ПРО_НОМ AS ПРО_НОМ1)) WHERE (СЛУ_ЗАРП = ПРО_ЗАРП)

Эквисоединение

СЛУЖАЩИЕ JOIN (ПРОЕКТЫ RENAME ПРО_НОМ AS ПРО_НОМ1)) WHERE (СЛУ_ЗАРП = ПРО_ЗАРП)

Слайд 34

Естественное соединение NATURAL JOIN Операция естественного соединения применяется к паре отношений

Естественное соединение NATURAL JOIN

Операция естественного соединения применяется к паре отношений A

и B, обладающих (возможно, составным) общим атрибутом c (т. е. атрибутом с одним и тем же именем и определенным на одном и том же домене).
Пусть ab обозначает объединение заголовков отношений A и B. Тогда естественное соединение A и B – это спроецированный на ab результат эквисоединения A и B по условию A.c = B.c).
Слайд 35

Естественное соединение через другие операции?

Естественное соединение через другие операции?

Слайд 36

Естественное соединение через другие операции Переименование Декартово произведение Селекция Проекция R⊳⊲S = π атрибуты R,S\S.AσR.A=S.A(R×S)

Естественное соединение через другие операции

Переименование
Декартово произведение
Селекция
Проекция
R⊳⊲S = π атрибуты R,S\S.AσR.A=S.A(R×S)

Слайд 37

Естественное соединение - пример СЛУЖАЩИЕ NATURAL JOIN ПРОЕКТЫ (естественное соединение –

Естественное соединение - пример

СЛУЖАЩИЕ NATURAL JOIN ПРОЕКТЫ (естественное соединение – выдать

полную информацию о служащих и проектах, в которых они участвуют).
Слайд 38

Деление DIVIDE Пусть заданы два отношения: A с заголовком {a1, a2,

Деление DIVIDE

Пусть заданы два отношения:
A с заголовком {a1, a2, ..., an,

b1, b2, ..., bm}
B с заголовком {b1, b2, ..., bm}.
Будем считать, что атрибут bi отношения A и атрибут bi отношения B (i = 1, 2, …, m) не только обладают одним и тем же именем, но и определены на одном и том же домене.
Назовем множество атрибутов {aj} составным атрибутом a, а множество атрибутов {bj} – составным атрибутом b.
После этого будем говорить о реляционном делении «бинарного» отношения A{a, b} на унарное отношение B{b}.
Слайд 39

Деление По определению, результатом деления A на B (A DIVIDE BY

Деление

По определению, результатом деления A на B (A DIVIDE BY B)

является «унарное» отношение C (a), тело которого состоит из кортежей v таких, что в теле отношения A содержатся кортежи для любого w из B.
Операция реляционного деления не является примитивной и выражается через операции декартова произведения, взятия разности и проекции.
(A DIVIDE BY B) = С : С×B∈A
Слайд 40

Деление - пример Найдем всех сотрудников, которые работают и в 1, и во 2 проектах.

Деление - пример

Найдем всех сотрудников, которые работают и в 1, и

во 2 проектах.
Слайд 41

Деление R DIVIDE S = π1,2,...r-s(R)- π1,2,...r-s(π1,2,...r-s(R)xS)-R).

Деление

R DIVIDE S = π1,2,...r-s(R)- π1,2,...r-s(π1,2,...r-s(R)xS)-R).