Объединения СУБД: внутренние, THETA, внешние, равноправные типы соединений. Operaных
Что такое объединение в СУБД?
Присоединяйтесь к СУБД — это бинарная операция, которая позволяет объединить произведение соединения и выбор в одном операторе. Цель создания условия соединения состоит в том, чтобы помочь вам объединить данные из двух или более таблиц СУБД. Таблицы в СУБД связаны с помощью первичного ключа и внешних ключей.
Типы присоединения
В СУБД в основном существует два типа объединений:
- Внутренние соединения: тета, естественное, EQUI.
- Внешнее соединение: левое, правое, полное
Давайте посмотрим на них подробно:
Внутреннее соединение
Внутреннее соединение используется для возврата строк из обеих таблиц, удовлетворяющих заданному условию. Это наиболее широко используемая операция соединения, и ее можно рассматривать как тип соединения по умолчанию.
Внутреннее соединение или эквивалентное соединение — это соединение на основе компаратора, которое использует сравнения на равенство в предикате соединения. Однако если вы используете другие операторы сравнения, например «>», это нельзя назвать эквивалентным соединением.
Внутреннее соединение далее делится на три подтипа:
- Тета присоединиться
- Естественное соединение
- Присоединение к EQUI
Тета Присоединяйтесь
Тета Присоединяйтесь позволяет объединить две таблицы на основе условия, представленного тетой. Тета объединяет работу всех операторов сравнения. Он обозначается символом θ. Общий случай операции JOIN называется тета-соединением.
Синтаксис:
A ⋈θ B
Theta join может использовать любые условия в критериях выбора.
Рассмотрим следующие таблицы.
Таблица 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 |
Естественное соединение (⋈)
Естественное соединение не использует ни один из операторов сравнения. В этом типе соединения атрибуты должны иметь одно и то же имя и домен. В естественном соединении между двумя отношениями должен быть хотя бы один общий атрибут.
Он выполняет выборку, формирующую равенство для тех атрибутов, которые присутствуют в обоих отношениях, и устраняет повторяющиеся атрибуты.
Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.
Рассмотрим следующие две таблицы
C | |
---|---|
В | Площадь |
2 | 4 |
3 | 9 |
D | |
---|---|
В | Cubo,en |
2 | 8 |
3 | 18 |
C ⋈ D
С ⋈ Д | ||
---|---|---|
В | Площадь | Cubo,en |
2 | 4 | 8 |
3 | 9 | 18 |
Внешнее соединение
An Внешнее соединение не требует, чтобы каждая запись в двух объединяемых таблицах имела совпадающую запись. В этом типе соединения таблица сохраняет каждую запись, даже если другой соответствующей записи не существует.
Три типа внешних соединений:
- Левое внешнее соединение
- Правое внешнее соединение
- Полное внешнее соединение
Левое внешнее соединение (A ⟕ B)
Левое внешнее соединение возвращает все строки из таблицы слева, даже если в таблице справа не найдено ни одной подходящей строки. Если в таблице справа не найдено соответствующей записи, возвращается NULL.
Рассмотрим следующие 2 таблицы
A | |
---|---|
В | Площадь |
2 | 4 |
3 | 9 |
4 | 16 |
B | |
---|---|
В | Cubo,en |
2 | 8 |
3 | 18 |
5 | 75 |
AB
А ⋈ Б | ||
---|---|---|
В | Площадь | Cubo,en |
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | – |
Правое внешнее соединение ( A ⟖ B )
Правое внешнее соединение возвращает все столбцы из таблицы справа, даже если в таблице слева не найдено соответствующих строк. Если в таблице слева не найдено совпадений, возвращается NULL. RIGHT external JOIN является противоположностью LEFT JOIN.
В нашем примере предположим, что вам нужно получить имена участников и фильмы, взятые ими напрокат. Теперь у нас есть новый участник, который еще не брал напрокат ни одного фильма.
AB
А ⋈ Б | ||
---|---|---|
В | Cubo,en | Площадь |
2 | 8 | 4 |
3 | 18 | 9 |
5 | 75 | – |
Полное внешнее соединение ( A ⟗ B)
В Полное внешнее соединение , все кортежи из обоих отношений включаются в результат независимо от условия совпадения.
Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.
AB
А ⋈ Б | ||
---|---|---|
В | Площадь | Cubo,en |
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | – |
5 | – | 75 |
Резюме
- В основном существует два типа соединений. СУБД 1) Внутреннее соединение 2) Внешнее соединение
- Внутреннее соединение — это широко используемая операция соединения, которую можно рассматривать как тип соединения по умолчанию.
- Внутреннее соединение далее делится на три подтипа: 1) Тета-соединение 2) Естественное соединение 3) Соединение EQUI
- Theta Join позволяет объединить две таблицы на основе условия, представленного тетой.
- Когда тета-соединение использует только условие эквивалентности, оно становится эквивалентным соединением.
- Естественное соединение не использует ни один из операторов сравнения.
- Внешнее соединение не требует, чтобы каждая запись в двух объединяемых таблицах имела совпадающую запись.
- Внешнее соединение далее делится на три подтипа: 1) левое внешнее соединение 2) правое внешнее соединение 3) полное внешнее соединение
- Внешнее соединение LEFT возвращает все строки из таблицы слева, даже если в таблице справа не найдено соответствующих строк.
- Внешнее соединение RIGHT возвращает все столбцы из таблицы справа, даже если в таблице слева не найдено соответствующих строк.
- При полном внешнем соединении в результат включаются все кортежи из обоих отношений, независимо от условия совпадения.