СУБД - Присоединяется
Мы понимаем преимущества декартова произведения двух отношений, которое дает нам все возможные кортежи, объединенные вместе. Но в некоторых случаях для нас может оказаться невозможным взять декартово произведение, где мы сталкиваемся с огромными отношениями с тысячами кортежей, имеющих значительное количество атрибутов.
Joinпредставляет собой сочетание декартова произведения, за которым следует процесс выбора. Операция соединения объединяет два кортежа из разных отношений тогда и только тогда, когда выполняется заданное условие соединения.
Мы кратко опишем различные типы соединений в следующих разделах.
Тета (θ) Присоединиться
Тета-соединение объединяет кортежи из разных отношений при условии, что они удовлетворяют тета-условию. Условие соединения обозначается символомθ.
Обозначение
R1 ⋈θ R2
R1 и R2 - это отношения, имеющие атрибуты (A1, A2, .., An) и (B1, B2, .., Bn), такие, что атрибуты не имеют ничего общего, то есть R1 ∩ R2 = Φ.
Тета-соединение может использовать все виды операторов сравнения.
Студент | ||
---|---|---|
SID | название | Стандартное |
101 | Alex | 10 |
102 | Мария | 11 |
Предметы | |
---|---|
Класс | Тема |
10 | Математика |
10 | английский |
11 | Музыка |
11 | Спортивный |
Student_Detail -
STUDENT ⋈Student.Std = Subject.Class SUBJECT
Student_detail | ||||
---|---|---|---|---|
SID | название | Стандартное | Класс | Тема |
101 | Alex | 10 | 10 | Математика |
101 | Alex | 10 | 10 | английский |
102 | Мария | 11 | 11 | Музыка |
102 | Мария | 11 | 11 | Спортивный |
Equijoin
Когда Theta join использует только equalityоператор сравнения, он называется эквисоединением. Приведенный выше пример соответствует equijoin.
Естественное соединение ( ⋈ )
Естественное соединение не использует никаких операторов сравнения. Он не объединяет, как декартово произведение. Мы можем выполнить естественное соединение, только если между двумя отношениями существует хотя бы один общий атрибут. Кроме того, атрибуты должны иметь одинаковое имя и домен.
Естественное соединение действует на те совпадающие атрибуты, где значения атрибутов в обоих отношениях одинаковы.
Курсы | ||
---|---|---|
CID | Курс | Отдел |
CS01 | База данных | CS |
ME01 | Механика | МНЕ |
EE01 | Электроника | EE |
HoD | |
---|---|
Отдел | Голова |
CS | Alex |
МНЕ | майя |
EE | Мира |
Курсы ⋈ HoD | |||
---|---|---|---|
Отдел | CID | Курс | Голова |
CS | CS01 | База данных | Alex |
МНЕ | ME01 | Механика | майя |
EE | EE01 | Электроника | Мира |
Внешние соединения
Theta Join, Equijoin и Natural Join называются внутренними соединениями. Внутреннее соединение включает только те кортежи с соответствующими атрибутами, а остальные отбрасываются в результирующем отношении. Следовательно, нам нужно использовать внешние объединения, чтобы включить все кортежи из участвующих отношений в результирующее отношение. Существует три вида внешних соединений: левое внешнее соединение, правое внешнее соединение и полное внешнее соединение.
Левое внешнее соединение (R
S)
Все кортежи из отношения Left, R, включаются в результирующее отношение. Если в R есть кортежи без какого-либо совпадающего кортежа в правом отношении S, то S-атрибуты результирующего отношения становятся NULL.
Осталось | |
---|---|
А | B |
100 | База данных |
101 | Механика |
102 | Электроника |
Правильно | |
---|---|
А | B |
100 | Alex |
102 | майя |
104 | Мира |
Курсы
|
|||
---|---|---|---|
А | B | C | D |
100 | База данных | 100 | Alex |
101 | Механика | --- | --- |
102 | Электроника | 102 | майя |
Правое внешнее соединение: (R
S)
Все кортежи из отношения Right, S, включаются в результирующее отношение. Если в S есть кортежи без какого-либо совпадающего кортежа в R, то R-атрибуты результирующего отношения становятся NULL.
Курсы
|
|||
---|---|---|---|
А | B | C | D |
100 | База данных | 100 | Alex |
102 | Электроника | 102 | майя |
--- | --- | 104 | Мира |
Полное внешнее соединение: (R
S)
Все кортежи из обоих участвующих отношений включаются в результирующее отношение. Если для обоих отношений нет совпадающих кортежей, их соответствующие несовпадающие атрибуты становятся NULL.
Курсы
|
|||
---|---|---|---|
А | B | C | D |
100 | База данных | 100 | Alex |
101 | Механика | --- | --- |
102 | Электроника | 102 | майя |
--- | --- | 104 | Мира |