1. Реляційні оператори

1.1. Сумісність відносин

1.1.1. Відносини, сумісні по об'єднанню

Реляційні оператори об'єднання, перетину і взяття різниці вимагають, щоб відносини мали однакові заголовки. Справді, відносини складаються з заголовка і тіла. Операція об'єднання двох відносин є просто об'єднання двох множин кортежів, взятих з тіл відповідних відносин.
Відносини називаються сумісними з об'єднання, якщо

  • мають одне і те ж безліч імен атрибутів, тобто для будь-якого атрибуту в одному відношенні знайдеться атрибут з таким же найменуванням в іншому відношенні,
  • атрибути з однаковими іменами визначені на одних і тих же доменах.

Деякі відносини не є сумісними з об'єднання, але стають такими після деякого перейменування атрибутів.


1.1.2. Відносини, сумісні по взяттю розширеного декартового добутку

Реляційний оператор розширеного декартового добутку вимагає, щоб відносини-операнди не володіли однойменними атрибутами. Відносини називаються сумісними з узяття розширеного декартового твору, якщо перетин множин імен атрибутів, взятих з їх схем відносин, порожньо.

1.2. Оператор перейменування атрибутів

В результаті застосування оператора перейменування атрибутів отримуємо нове ставлення, із зміненими іменами атрибутів.
Синтаксис:
R RENAME Atr 1, Atr 2,... AS NewAtr 1, NewAtr 2,...
де
R - відношення
Atr 1, Atr 2,... - вихідні імена атрибутів
NewAtr 1, NewAtr 2,... - нові імена атрибутів

1.3. Оператор присвоювання

Оператор присвоювання (: =) дозволяє зберегти результат обчислення реляційного вираження в існуючому відношенні.

1.4. Теоретико-множинні оператори

1.4.1. Об'єднання

Ставлення з тим же заголовком, що і у сумісних по типу відносин A і B, і тілом, що складається з кортежів, що належать або A, або B, або обом відносинам.
Синтаксис:
A UNION B

1.4.2. Перетин

Ставлення з тим же заголовком, що і у сумісних по типу відносин A і B, і тілом, що складається з кортежів, що належать одночасно обом відносинам A і B.
Синтаксис:
A INTERSECT B

1.4.3. Віднімання

Ставлення з тим же заголовком, що і у сумісних по типу відносин A і B, і тілом, що складається з кортежів, що належать відношенню A і не належать відношенню B.
Синтаксис:
A MINUS B

1.4.4. Декартовій твір

Ставлення (A 1, A 2,..., A m, B 1, B 2,..., B m), заголовок якого є зчепленням заголовків відносин A (A 1, A 2,..., A m) і B (B 1, B 2,..., B m), а тіло складається з кортежів, що є зчепленням кортежів відносин A і B:

(A 1, a 2,..., a m, b 1, b 2,..., b m)

таких, що (a 1, a 2,..., a m)A, (b 1, b 2,..., b m)B.

Синтаксис:

A TIMES B


1.5. Спеціальні реляційні оператори

1.5.1. Вибірка (обмеження)

Ставлення з тим же заголовком, що і у відносини A, і тілом, що складається з кортежів, значення атрибутів яких при підстановці в умову c дають значення ІСТИНА. C являє собою логічне вираження, до якого можуть входити атрибути відносини A і / або скалярні вирази.
Синтаксис:
A WHERE c

1.5.2. Проекція

Проекція в реляційній алгебрі - унарний операція, яка дозволяє отримати "вертикальне" підмножина даного відносини, або таблиці, тобто таке підмножина, яке виходить вибором специфікованих атрибутів з наступним виключенням, якщо це необхідно, надлишкових дублікатів кортежів. Нехай дана таблиця T з іменами атрибутів A_1, \; A_2, \; \ ldots, \; A_n , Тобто T (A_1, \; A_2, \; \ ldots, \; A_n) і деяке підмножина безлічі імен атрибутів \ {A_ {i_1}, \; A_ {i_2}, \; \ ldots, \; A_ {i_k} \} . Результатом проекції таблиці за обраними іменам атрибутів називається нова таблиця T (A_ {i_1}, \; A_ {i_2}, \; \ ldots, \; A_ {i_k}) , Отримана з вихідної таблиці викреслюванням атрибутів, що не входять в вибране безліч, з подальшим можливим віддаленням надлишкових дублікатів кортежів.

При здійснення проекції необхідно задати проецируемое відношення і якийсь набір його атрибутів, який стане заголовком результуючого.


1.5.3. З'єднання

Операція з'єднання є результат послідовного застосування операцій декартового добутку та вибірки. Якщо у відносинах і є атрибути з однаковими найменуваннями, то перед виконанням з'єднання такі атрибути необхідно перейменувати.
Синтаксис:
(A TIMES B) WHERE c

1.5.4. Ділення

Ставлення з заголовком (X 1, X 2,..., X n) і тілом, що містить безліч кортежів (x 1, x 2,..., x n), таких, що для всіх кортежів (y 1, y 2,..., y m) ∈ B відносно A (X 1, X 2,..., X n, Y 1, Y 2,..., Y m) знайдеться кортеж (x 1, x 2,..., x n, y 1, y 2,..., y m).
Синтаксис:
A DIVIDEBY B

2. Залежність реляційних операторів

Не всі реляційні оператори є незалежними, тобто деякі з реляційних операторів можуть бути виражені через інші реляційні оператори.

  • Оператор з'єднання

Оператор з'єднання визначається через оператори декартового добутку та вибірки таким чином: (A TIMES B) WHERE X = Y де X і Y атрибути відповідно відносин A і B з первісно рівними іменами.

  • Оператор перетину

Оператор перетину виражається через віднімання таким чином: A INTERSECT B = A MINUS (A MINUS B)

  • Оператор ділення

Оператор розподілу виражається через оператори віднімання, декартового добутку і проекції наступним чином: A DIVIDEBY B = A [X] MINUS ((A [X] TIMES B) MINUS A) [X]


3. Примітивні реляційні оператори

Решту реляційні оператори (об'єднання, віднімання, декартовій твір, вибірка, проекція) є примітивними операторами - їх не можна виразити один через одного.

  • Оператор декартового добутку

Оператор декартового добутку - це єдиний оператор, що збільшує кількість атрибутів, тому його не можна виразити через об'єднання, віднімання, вибірку, проекцію.

  • Оператор проекції

Оператор проекції - єдиний оператор, що зменшує кількість атрибутів, тому його не можна виразити через об'єднання, віднімання, декартовій твір, вибірку.

  • Оператор вибірки

Оператор вибірки - єдиний оператор, який дозволяє проводити порівняння по атрибутах відносини, тому його не можна виразити через об'єднання, віднімання, декартовій твір, проекцію.

  • Оператори об'єднання і віднімання

Доказ примітивності операторів об'єднання і віднімання більш складні і ми їх тут не наводимо.