СУБД - Объединения

Мы понимаем преимущества взятия декартова произведения двух отношений, что дает нам все возможные кортежи, соединенные вместе. Но в некоторых случаях для нас может оказаться невозможным взять декартово произведение, где мы сталкиваемся с огромными отношениями с тысячами кортежей, имеющих значительное количество атрибутов.

Join - это комбинация декартового произведения с последующим процессом выбора. Операция Join объединяет два кортежа из разных отношений, если и только если удовлетворяется заданное условие соединения.

Мы кратко опишем различные типы соединений в следующих разделах.

Тета (θ) Присоединиться

Тета-соединение объединяет кортежи из разных отношений при условии, что они удовлетворяют условию тета. Условие соединения обозначается символом θ .

нотация

R1 ⋈ θ R2

R1 и R2 являются отношениями, имеющими атрибуты (A1, A2, .., An) и (B1, B2, .., Bn), так что атрибуты не имеют ничего общего, то есть R1 ∩ R2 = Φ.

Тета-соединение может использовать все виды операторов сравнения.

Ученик
SID имя Std
101 Alex 10
102 Мария 11
Предметы
Учебный класс Предмет
10 математический
10 английский
11 Музыка
11 Виды спорта

Student_Detail -

STUDENT ⋈ Student.Std = Subject.Class SUBJECT

Student_detail
SID имя Std Учебный класс Предмет
101 Alex 10 10 математический
101 Alex 10 10 английский
102 Мария 11 11 Музыка
102 Мария 11 11 Виды спорта

эквисоединения

Когда соединение Theta использует только оператор сравнения на равенство , оно называется equijoin. Приведенный выше пример соответствует equijoin.

Естественное соединение (⋈)

Естественное объединение не использует оператор сравнения. Он не объединяет способ декартовых произведений. Мы можем выполнить естественное соединение, только если между двумя отношениями существует хотя бы один общий атрибут. Кроме того, атрибуты должны иметь одинаковые имя и домен.

Естественное объединение действует для тех совпадающих атрибутов, где значения атрибутов в обоих отношениях одинаковы.

Курсы
ИДС Курс Отдел
CS01 База данных CS
ME01 механика МНЕ
EE01 электроника EE
HoD
Отдел Голова
CS Alex
МНЕ майя
EE Мир
Курсы ⋈ HoD
Отдел ИДС Курс Голова
CS CS01 База данных Alex
МНЕ ME01 механика майя
EE EE01 электроника Мир

Внешние соединения

Theta Join, Equijoin и Natural Join называются внутренними объединениями. Внутреннее объединение включает только те кортежи с совпадающими атрибутами, а остальные отбрасываются в результирующем отношении. Следовательно, нам нужно использовать внешние объединения, чтобы включить все кортежи из участвующих отношений в результирующее отношение. Существует три вида внешних объединений - левое внешнее соединение, правое внешнее соединение и полное внешнее соединение.

Левое внешнее соединение (R Левое внешнее соединение S)

Все кортежи из отношения Left, R, включены в результирующее отношение. Если в R есть кортежи без соответствующих кортежей в правом отношении S, то S-атрибуты результирующего отношения становятся NULL .

Осталось
В
100 База данных
101 механика
102 электроника
Правильно
В
100 Alex
102 майя
104 Мир
Курсы Левое внешнее соединение HoD
В С D
100 База данных 100 Alex
101 механика --- ---
102 электроника 102 майя

Правое внешнее соединение: (R Правое внешнее соединение S)

Все кортежи из отношения Right, S, включены в результирующее отношение. Если в S есть кортежи без соответствующих кортежей в R, то R-атрибуты результирующего отношения становятся NULL .

Курсы Правое внешнее соединение HoD
В С D
100 База данных 100 Alex
102 электроника 102 майя
--- --- 104 Мир

Полное внешнее соединение: (R Полное внешнее соединение S)

Все кортежи из обоих участвующих отношений включены в результирующее отношение. Если для обоих отношений нет соответствующих кортежей, их соответствующие несопоставленные атрибуты становятся NULL .

Курсы Полное внешнее соединение HoD
В С D
100 База данных 100 Alex
101 механика --- ---
102 электроника 102 майя
--- --- 104 Мир