алгебра Кодда
- Сумісність відносин [ правити | правити код ] Відносини, сумісні з об'єднання [ правити...
- Відносини, сумісні з узяття розширеного декартова твори [ правити | правити код ]
- Операція перейменування атрибутів [ правити | правити код ]
- Операція присвоювання [ правити | правити код ]
- Теоретико-множинні операції [ правити | правити код ]
- перетин [ правити | правити код ]
- віднімання [ правити | правити код ]
- декартово твір [ правити | правити код ]
- Спеціальні реляційні операції [ правити | правити код ]
- проекція [ правити | правити код ]
- з'єднання [ правити | правити код ]
- розподіл [ правити | правити код ]
Сумісність відносин [ правити | правити код ] Відносини, сумісні з об'єднання [ правити | правити код ]
Деякі реляційні операції, наприклад, об'єднання, перетину і взяття різниці, вимагають, щоб відносини мали однакові заголовки.
Відносини називаються сумісними з об'єднання, якщо
- вони мають один і той же безліч імен атрибутів, тобто для будь-якого атрибута в одному відношенні знайдеться атрибут з таким же найменуванням в іншому відношенні,
- атрибути з однаковими іменами визначені на одних і тих же типах даних ( доменах ).
Деякі відносини не є сумісними з об'єднання, але стають такими після перейменування деяких атрибутів.
Відносини, сумісні з узяття розширеного декартова твори [ правити | правити код ]
Реляційний операції розширеного декартова твори вимагає, щоб відносини-операнди не мали однойменними атрибутами. Відносини називаються сумісними з узяття розширеного декартова твори, якщо перетин множин імен атрибутів, взятих з їх схем відносин, порожньо.
Операція перейменування атрибутів [ правити | правити код ]
Результатом застосування операції перейменування атрибутів є ставлення з зміненими іменами атрибутів.
синтаксис:
R RENAME Atr1, Atr2, ... AS NewAtr1, NewAtr2, ...
де
R - відношення
Atr1, Atr2, ... - вихідні імена атрибутів;
NewAtr1, NewAtr2, ... - нові імена атрибутів.
Операція присвоювання [ правити | правити код ]
Операція присвоювання (: =) дозволяє зберегти результат обчислення реляційного вираження в існуючому відношенні.
Теоретико-множинні операції [ правити | правити код ]
об'єднання [ правити | правити код ]
Ставлення з тим же заголовком, що і у сумісних по типу відносин A і B, і тілом, що складається з кортежів, що належать або A, або B, або обом відносинам.
синтаксис:
A UNION B
перетин [ правити | правити код ]
Ставлення з тим же заголовком, що і у сумісних по типу відносин A і B, і тілом, що складається з кортежів, що належать одночасно обом відносинам A і B.
синтаксис:
A INTERSECT B
віднімання [ правити | правити код ]
Ставлення з тим же заголовком, що і у сумісних по типу відносин A і B, і тілом, що складається з кортежів, що належать відношенню A і не належать відношенню B.
синтаксис:
A MINUS B
декартово твір [ правити | правити код ]
Ставлення (A1, A2, ..., Am, B1, B2, ..., Bm), заголовок якого є зчепленням ( конкатенацией ) Заголовків відносин A (A1, A2, ..., Am) і B (B1, B2, ..., Bm), а тіло складається з кортежів, які є зчепленням кортежів відносин A і B:
(a1, a2, ..., am, b1, b2, ...,
bm)
таких, що (a1, a2, ..., am) ∈ A, (b1, b2, ..., bm) ∈ B.
синтаксис:
A TIMES B
Спеціальні реляційні операції [ правити | правити код ]
Вибірка (обмеження) [ правити | правити код ]
Ставлення з тим же заголовком, що і у відносини A, і тілом, що складається з кортежів, значення атрибутів яких при підстановці в умову c дають значення ІСТИНА. c являє собою логічне вираження, до якого можуть входити атрибути відносини A і / або скалярні вирази.
синтаксис:
A WHERE c
проекція [ правити | правити код ]
проекція в реляційної алгебри - унарна операція , Яка дозволяє отримати «вертикальне» підмножина даного відносини , Або таблиці, тобто таке підмножина, яке виходить вибором специфіковані атрибутів з наступним виключенням, якщо це необхідно, надлишкових дублікатів кортежів . Нехай дана таблиця T {\ displaystyle T} з іменами атрибутів A 1, A 2, ..., A n {\ displaystyle A_ {1}, \; A_ {2}, \; \ ldots, \; A_ {n}} , Тобто T (A 1, A 2, ..., A n) {\ displaystyle T (A_ {1}, \; A_ {2}, \; \ ldots, \; A_ {n})} і деяку підмножину безлічі імен атрибутів {A i 1, A i 2, ..., A ik} {\ displaystyle \ {A_ {i_ {1}}, \; A_ {i_ {2}}, \; \ ldots, \; A_ {i_ {k}} \}} . Результатом проекції таблиці за обраними іменах атрибутів називається нова таблиця T (A i 1, A i 2, ..., A ik) {\ displaystyle T (A_ {i_ {1}}, \; A_ {i_ {2}}, \; \ ldots, \; A_ {i_ {k}})} , Отримана з вихідної таблиці викреслюванням атрибутів, що не входять в вибране безліч, з подальшим можливим вилученням надлишкових дублікатів кортежів.
При здійсненні проекції необхідно задати проектується ставлення і певний набір його атрибутів, який стане заголовком результуючого.
з'єднання [ правити | правити код ]
Операція з'єднання є результат послідовного застосування операцій декартового твори і вибірки. Якщо у відносинах і є атрибути з однаковими найменуваннями, то перед виконанням з'єднання такі атрибути необхідно перейменувати.
синтаксис:
(A TIMES B) WHERE c
розподіл [ правити | правити код ]
Ставлення з заголовком (X1, X2, ..., Xn) і тілом, що містить безліч кортежів (x1, x2, ..., xn), таких, що для всіх кортежів (y1, y2, ..., ym) ∈ B щодо A (X1 , x2, ..., Xn, Y1, y2, ..., Ym) знайдеться кортеж (x1, x2, ..., xn, y1, y2, ..., ym).
синтаксис:
A DIVIDEBY B
Не всі реляційні оператори є незалежними, тобто деякі з реляційних операторів можуть бути виражені через інші реляційні оператори.
- оператор з'єднання
Оператор з'єднання визначається через оператори декартового твори і вибірки наступним чином: (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]
Решта реляційні оператори (об'єднання, віднімання, декартовій твір, вибірка, проекція) є примітивними операторами - їх не можна виразити один через одного.
- Оператор декартового твори
Оператор декартового твори - це єдиний оператор, що збільшує кількість атрибутів, тому його не можна виразити через об'єднання, віднімання, вибірку, проекцію.
- оператор проекції
Оператор проекції - єдиний оператор, що зменшує кількість атрибутів, тому його не можна виразити через об'єднання, віднімання, декартовій твір, вибірку.
- оператор вибірки
Оператор вибірки - єдиний оператор, що дозволяє проводити порівняння по атрибутам відносини, тому його не можна виразити через об'єднання, віднімання, декартовій твір, проекцію.
- Оператори об'єднання і віднімання
Доказ примітивності операторів об'єднання і віднімання більш складні і ми їх тут не наводимо.