Типи з'єднань СУБД: THETA, Inner, Outer, Equi
⚡ Розумний підсумок
Об'єднання в СУБД – це двійкова операція, яка об'єднує рядки з двох або більше таблиць, використовуючи їх первинні та зовнішні ключі. Об'єднання поділяються на внутрішні об'єднання, які повертають лише співпадаючі рядки, та зовнішні об'єднання, які зберігають неспівпадаючі рядки та заповнюють пробіли значенням null.

Що таке об'єднання (JOIN) у СУБД?
Приєднатися до СУБД — це бінарна операція, яка дозволяє об’єднати добуток об’єднання та вибірку в одному операторі. Метою створення умови об’єднання є об’єднання даних з двох або більше таблиць. Таблиці пов’язуються за допомогою їхніх первинних ключів та іноземні ключі.
Типи приєднання
У СУБД в основному існує два типи об’єднань:
- Внутрішні з'єднання: Theta, Natural, EQUI
- Зовнішні з'єднання: ліве, праве, повне
У таблиці нижче наведено попередній перегляд усіх типів об'єднань, перш ніж кожен з них буде пояснено на прикладі.
| Приєднатися | Повернення | Незбігні рядки |
|---|---|---|
| Внутрішня (Тета / EQUI / Натуральна) | Рядки, що відповідають умові в обох таблицях | Випало |
| Лівий зовнішній | Усі ліві рядки плюс збіги | Збережено зліва, нуль справа |
| Правий зовнішній | Всі правильні ряди плюс сірники | Збережено справа, нуль зліва |
| Повний зовнішній | Усі рядки з обох таблиць | Збережено від обох, значення null там, де відсутнє |
Внутрішнє з'єднання
Внутрішнє з'єднання використовується для повернення рядків з обох таблиць, які задовольняють задану умову. Це найпоширеніша операція об'єднання, яку можна вважати типом об'єднання за замовчуванням.
Внутрішнє з'єднання, або еквівалентне з'єднання, — це з'єднання на основі порівняння, яке використовує порівняння рівності в предикаті з'єднання. Однак, якщо ви використовуєте інші оператори порівняння, такі як «>», його не можна назвати еквівалентним з'єднанням. Внутрішнє з'єднання також поділяється на три підтипи:
- Тета-приєднання
- Природне приєднання
- Приєднатися до EQUI
Тета приєднатися
Тета приєднатися дозволяє об'єднати дві таблиці на основі умови, представленої тетою. Тета об'єднує роботу для всіх операторів порівняння. Це позначається символом θЗагальний випадок операції JOIN називається тета-з'єднанням.
Синтаксис:
A ⋈θ B
Тета-з'єднання може використовувати будь-які умови в критеріях відбору.
Розгляньте наступні таблиці.
| Таблиця A | Таблиця B | |||
|---|---|---|---|---|
| колонка 1 | колонка 2 | колонка 1 | колонка 2 | |
| 1 | 1 | 1 | 1 | |
| 1 | 2 | 1 | 3 | |
Наприклад:
A ⋈ A.column 2 > B.column 2 (B)
| A ⋈ A.стовпець 2 > B.стовпець 2 (B) | |
|---|---|
| колонка 1 | колонка 2 |
| 1 | 2 |
EQUI Приєднуйтесь
EQUI Приєднуйтесь виконується, коли тета-з'єднання використовує лише умову еквівалентності. З'єднання EQUI є найскладнішою операцією для ефективної реалізації в СУБД, і це одна з причин, чому СУБД можуть мати проблеми з продуктивністю.
Наприклад:
A ⋈ A.column 2 = B.column 2 (B)
| A ⋈ A.стовпець 2 = B.стовпець 2 (B) | |
|---|---|
| колонка 1 | колонка 2 |
| 1 | 1 |
Природне з'єднання (⋈)
Природне приєднання не використовує жодного оператора порівняння. У цьому типі об'єднання атрибути повинні мати однакове ім'я та домен. У природному об'єднанні повинен бути принаймні один спільний атрибут між двома відношеннями.
Він виконує вибір, утворюючи рівність для атрибутів, що з'являються в обох відношеннях, та видаляє дублікати атрибутів.
приклад: розгляньте наступні дві таблиці.
| C | |
|---|---|
| В | Площа |
| 2 | 4 |
| 3 | 9 |
| D | |
|---|---|
| В | Куб |
| 2 | 8 |
| 3 | 18 |
C ⋈ D
| C ⋈ D | ||
|---|---|---|
| В | Площа | Куб |
| 2 | 4 | 8 |
| 3 | 9 | 18 |
Зовнішнє приєднання
An Зовнішнє приєднання не вимагає, щоб кожен запис у двох об'єднаних таблицях мав відповідний запис. У цьому типі об'єднання таблиця зберігає кожен запис, навіть якщо немає іншого відповідного запису. Три типи зовнішнього об'єднання:
- Зліва Зовнішнє приєднання
- Правильне зовнішнє приєднання
- Повне Зовнішнє Приєднання
Ліве зовнішнє з’єднання (A ⟕ B)
Зліва Зовнішнє приєднання повертає всі рядки з таблиці ліворуч, навіть якщо в таблиці праворуч не знайдено відповідних рядків. Якщо праворуч не знайдено відповідних записів, повертається значення null.
Розгляньте наступні дві таблиці.
| A | |
|---|---|
| В | Площа |
| 2 | 4 |
| 3 | 9 |
| 4 | 16 |
| B | |
|---|---|
| В | Куб |
| 2 | 8 |
| 3 | 18 |
| 5 | 75 |
AB
| А ⟕ Б | ||
|---|---|---|
| В | Площа | Куб |
| 2 | 4 | 8 |
| 3 | 9 | 18 |
| 4 | 16 | - |
Праве зовнішнє з'єднання (A ⟖ B)
Правильне зовнішнє приєднання повертає всі стовпці з таблиці праворуч, навіть якщо в таблиці ліворуч не знайдено відповідних рядків. Якщо ліворуч не знайдено збігів, повертається значення null. Праве зовнішнє об'єднання є протилежністю лівого об'єднання.
AB
| А ⟖ Б | ||
|---|---|---|
| В | Куб | Площа |
| 2 | 8 | 4 |
| 3 | 18 | 9 |
| 5 | 75 | - |
Повне зовнішнє з'єднання (A ⟗ B)
В Повне Зовнішнє Приєднання, усі кортежі з обох відносин включаються в результат, незалежно від умови відповідності.
приклад:
AB
| А ⟗ Б | ||
|---|---|---|
| В | Площа | Куб |
| 2 | 4 | 8 |
| 3 | 9 | 18 |
| 4 | 16 | - |
| 5 | - | 75 |


B
B
B