Учебники

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

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

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.