Присъединявания към СУБД: THETA, Inner, Outer, Equi. Видове присъединявания
⚡ Умно обобщение
Съединението (join) в СУБД (системи за управление на бази данни) е двоична операция, която комбинира редове от две или повече таблици, използвайки техните първични и външни ключове. Съединенията се разделят на вътрешни съединения, които връщат само съвпадащи редове, и външни съединения, които запазват несъвпадащите редове и запълват празнините с null.

Какво е Join в СУБД?
Присъединете се към СУБД е двоична операция, която ви позволява да комбинирате произведение на съединение и селекция в едно изявление. Целта на създаването на условие за съединение е да се комбинират данните от две или повече таблици. Таблиците се свързват с помощта на техните първични ключове и чужди ключове.
Видове присъединяване
В СУБД има основно два типа съединения:
- Вътрешни съединения: Theta, Natural, EQUI
- Външни съединения: Ляво, Дясно, Пълно
Таблицата по-долу показва предварителен преглед на всички типове съединения, преди всеки от тях да бъде обяснен с пример.
| Регистрация | Връщане | Несъответстващи редове |
|---|---|---|
| Вътрешна (Тета / EQUI / Естествена) | Редове, съответстващи на условието и в двете таблици | Окачен |
| Ляв външен | Всички леви редове плюс съвпадения | Запазено отляво, нула отдясно |
| Десен външен | Всички правилни редове плюс съвпадения | Запазено отдясно, нула отляво |
| Пълен външен | Всички редове от двете таблици | Пазено и от двете, null където липсва |
Вътрешно присъединяване
Вътрешно присъединяване се използва за връщане на редове от двете таблици, които отговарят на даденото условие. Това е най-широко използваната операция за съединение и може да се счита за тип съединение по подразбиране.
Вътрешното съединение, или екви-съединение, е съединение, базирано на сравнение, което използва сравнения за равенство в предиката за съединение. Ако обаче използвате други оператори за сравнение, като „>“, то не може да се нарече екви-съединение. Вътрешното съединение се разделя допълнително на три подтипа:
- Тета присъединяване
- Естествено присъединяване
- Присъединете се към EQUI
Theta Присъединете се
Theta Присъединете се позволява ви да обедините две таблици въз основа на условието, представено от theta. Theta обединява работата за всички оператори за сравнение. Означава се със символа θОбщият случай на операция JOIN се нарича тета съединение.
Синтаксис:
A ⋈θ B
Тета съединението може да използва всякакви условия в критериите за избор.
Разгледайте следните таблици.
| Таблица А | Таблица 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и това е една от причините, поради които RDBMS може да има проблеми с производителността.
Например:
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 |


