Вот пример естественного соединения здесь .Как говорит @Renzo, есть много вариантов.И SQL снова другой.Поэтому я буду придерживаться того, что показывает Википедия.
Самое важное: условие соединения применяется к всем атрибутам, общим для двух аргументов.Поэтому вам нужно сказать «два отношения с А, являющиеся их только общим атрибутом».Единственный общий атрибут - DeptName
в этом примере из Википедии.В общем случае может быть много общих атрибутов.
Да, объединение означает формирование кортежей в результате путем объединения кортежей из аргумента, которые имеют одинаковые значения в соответствующих общих атрибутах.Таким образом, у вас есть то же значение с тем же именем атрибута.Было бы бессмысленно повторять оба атрибута в результате, потому что вы будете повторять значения.В примере показано, что в результате есть один атрибут DeptName
.
Остерегайтесь того, что на разных диалектах реляционной алгебры используются разные символы и обозначения.Таким образом, голая бабочка (⋈) для Natural Join может быть дополнена логическим условием, делая theta-join (θ-join) или equi-join - см. Этот пример.Логическое условие находится между атрибутами с разными именами и может использовать любой оператор сравнения.Поэтому в результате появляются как имена атрибутов, так и их значения.
Теоретические операции над множествами применимы, поскольку каждый кортеж является набором пар имя-значение.Результирующие кортежи - это объединение кортежа из каждого аргумента - при условии, что это допустимый кортеж.То есть, если nv-пары с одинаковыми именами имеют одинаковое значение.