Таблица 1Реляционная алгебра: естественное соединение со значением NULL
Customer id city
John 1 LA
Nancy 2 NULL
Таблица 2
Customer $ in the pocket
John 20
Nancy 30
Я учусь реляционной алгебры.
Мне интересно, что произойдет, если Table 1
естественное соединение с Table 2
? Я предполагаю, что результатом будет 4 атрибута, и появятся и Джон, и Нэнси.
Но мой друг сказал мне, что появится только Джон, Нэнси не будет, потому что есть значение null
.
Я так запутать
joins происходит по двум атрибутам, и если вы присоединяетесь к клиенту (который будет по умолчанию), то ваш друг ошибается :) – bugwheels94
Чтобы понять это, просто перепишите NATURAL JOIN как обычный INNER EQUIJOIN, используя те же правила, что и NATURAL JOIN использует. Учитывая отношения в вашем примере, это будет равнозначно атрибуту 'Customer'. (Значение NULL в атрибуте city не имеет значения, так как другое отношение не имеет атрибута с именем 'city'.) NATURAL JOIN будет использовать все атрибуты с одинаковым именем. Если второе отношение также имело атрибут с именем 'city', это будет то же самое, что и INNER EQUIJOIN как для атрибутов' Customer', так и 'city'. – spencer7593
Для естественного соединения мы присоединяемся, только если мы сопоставили общий атрибут (в данном случае это поле Customer)? – randy