Лекція 6. Основи реляційної алгебри. Реляційні операції.
Основи реляційної алгебри. Реляційні операції.
Алгеброю називається множина об'єктів із заданою на ній сукупністю операцій, які замкнені відносно цієї множини.
Основною множиною в реляційній алгебрі є множина відношень. Варіант реляційної алгебри, запропонований Коддом, містить такі основні операції: об'єднання, різниця, перетин, декартовий добуток, проекція, селекція, з'єднання, ділення.
Операція |
Позначення |
Зміст |
Вибірка |
sпредикат(R) |
Визначення відношення, яке вміщує тільки ті кортежі з відношення R, які задовольняють заданому предикату |
Проекція |
∏a1…an(R) |
Визначення відношення, яке вміщує вертикальну підмножину відношення R, що утворюється шляхом отримання значень вказаних атрибутів і виключення з результату рядків-дублікатів |
Об'єднання |
R ∪ S |
Визначення відношення, яке вміщує всі кортежі, що належать R або S, при цьому виключаються з результату всі дублікати кортежів. Відношення R і S повинні бути сумісні за об'єднанням |
Перетин |
R ∩ S |
Визначення відношення, яке вміщує всі кортежі, що належать R і S. Відношення R і S повинні бути сумісні за об'єднанням |
Різниця |
R – S |
Визначення відношення, яке вміщує всі кортежі, що належать R і відсутні в S. Відношення R і S повинні бути сумісні за об'єднанням |
Декартовий добуток |
R*S |
Визначення відношення, яке є результатом конкатенації кожного кортежа з відношення R з кожним кортежем з відношення S |
Тета-з'єднання |
R⋈FS |
Визначення відношення, яке вміщує кортежі з декартового добутку відношень R і S, що задовольняє предикату F |
Операція |
Позначення |
Зміст |
З'єднання по еквівалентності |
R⋈FS |
Визначення відношення, яке вміщує кортежі з декартового добутку відношень R і S, що |
|
|
задовольняє предикату F |
|
|
(предикат виконує порівняння |
|
|
тільки на рівність) |
Природне з'єднання |
R⋈S |
Визначення відношення, яке отримано з'єднанням по еквівалентності двох відношень |
|
|
R і S, що виконано по всім |
|
|
спільним атрибутам x, з |
|
|
результатів якого вилучається |
|
|
по одному екземпляру кожного |
|
|
спільного атрибута |
Ліве зовнішнє з'єднання |
R⊃⊳S |
Визначення відношення, для якого кортежи відношення R, які не мають співпадаючих значень в |
|
|
спільних стовпцях відношення S, |
|
|
також включаються в |
|
|
результуюче відношення |
Напівз'єднання |
R⊲FS |
Визначення відношення, яке вміщує ті кортежі відношення R, які входять в з'єднання відношень R і S |
Ділення |
R÷S |
Визначення відношення, яке вміщує ті кортежі відношення R, які визначені на атрибуті C, що відповідає комбінації всіх кортежів відношення S, де C - множина атрибутів, які є у відношенні R, але відсутні у відношенні S |
Приклад. Задані два відношення Студент і Дисципліна.
Студент
Прізвище |
Курс |
Група |
Спеціальність |
Бойко |
2 |
1 |
ІТП |
Левченко |
3 |
2 |
САПР |
Дисципліна
Назва |
Курс |
Спеціальність |
Викладач |
Семестр |
Бази даних |
3 |
ІТП |
Петренко |
5 |
Системний аналіз |
4 |
САПР |
Гавриш |
7 |
- Визначити всіх студентів спеціальності САПР.
∏прізвище(sспеціальність="САПР" (Студент))
- Визначити всіх студентів, для яких у 7 семестрі викладач Гавриш проводить заняття.
∏прізвище(sсеместр=7Ùвикладач="Гавриш" (Студент ⋈ Дисципліна))
∏прізвище(Студент ⋈ (sсеместр=7Ùвикладач="Гавриш" Дисципліна))