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