Базы данных

Employee СО ssn TimeCard


Такое соединение называется естественным соединением (natural join) и определяется таким образом, что общий атрибут входит в результирующую таблицу только один раз. В 6.6 представлен результат этой операции.

Информация, представленная в 6.6, пригодна для создания платежных ведомостей. Каждая карточка учета рабочего времени объединена с соответствующим работником и используется только один раз. Операция соединения помешает вместе сущности, связанные экземплярами типа связи между классами сущностей Employee и TimeCard. Соединение отношений производится по полю ключа отношения Employee и полю внешнего ключа отношения TimeCard. Данные атрибуты использовались для представления этого типа связи в реляционной модели. Тип связи представлялся с помощью атрибута внешнего ключа, так что операция соединения может использоваться для объединения связанных объектов.

Число строк в полученной таблице равно числу строк в таблице TimeCard. Это соответствие не является простым совпадением. Связь межцу сущностями Employee и TimeCard является связью типа “один ко многим”. Следовательно, каждой карточке учета рабочего времени соответствует в точности один работник, в то время как для одного работника может бьггь несколько карточек. При операции естественного соединения в случае связи “один ко многим” в результате всегда образуется столько кортежей, сколько их было в отношении, находящемся в типе связи на стороне “ко многим”.

Работник не присутствует в результирующей таблице операции соединения, если для него нет хотя бы одной карточки учета рабочего времени. Можно заметить, что "Julian Fortune", работник с номером "479-98-0096", и "Bruce Fivozinsky", работник с номером "588-99-0093", не представлены в 6.6.

В более общем случае в операции соединения допускается использование произвольного выражения в качестве условия соединения. Выражение для операции соединения, наиболее близкое к выражению 6.6, имеет вид: join Employee and TimeCard where Employee, ssn  TimeCard, ssn. Операция соединения, в которой условие соединения содержит толькб оператор равенства, часто называется соединением по эквивалентности. Выражение для нее записывается следующим образом:

Employee IX Employee.ssn=TimeCard.ssnTimeCard

Комментарии закрыты