Операция соединения.
СоединениеR1 [f] R2 отношений R1 и R2 по условию, заданному формулой f, представляет собой отношение R, которое можно получить путем расширенного декартова произведения отношений R1 и R2 с последующим применением к результату операции селекции по формуле f. Правила записи формулы f такие же, как и для операции селекции.
Другими словами, соединением отношения R1 по атрибуту А с отношением R2 по атрибуту В (отношения не имеют общих имен атрибутов) является результат выполнения операции вида:
(R1 R2) WHERE A Q В,
где Q — логическое выражение над атрибутами, определенными на одном (нескольких — для составного атрибута) домене, атрибуты А и В могут быть составными.
Важными с практической точки зрения частными случаями соединения являются эквисоединение и естественное соединение.
Операция эквисоединения характеризуется тем, что формула задает равенство операндов. Приведенный выше пример демонстрирует частный случай операции эквисоединения по одному столбцу. Иногда эквисоединение двух отношений выполняется по таким столбцам, атрибуты которых в обоих отношениях имеют соответственно одинаковые имена и домены. Вэтом случае говорят об эквисоединении по общему атрибуту.
Операция естественного соединения (операция JOIN) применяется к двум отношениям, имеющим общий атрибут (простой или составной). Этот атрибут в отношениях имеет одно и то же имя (совокупность имен) и определен на одном и том же домене (доменах).
Результатом операции естественного соединения является отношение R, которое представляет собой проекцию эквисоединения отношений R1 и R2 по общему атрибуту на объединенную совокупность атрибутов обоих отношений.
Задание 8.
Получить все возможные сочетания преподавателей и дисциплин – все возможные варианты ведения предметов. Вывести фамилии и имена преподавателей и названия дисциплин.
На языке реляционной алгебры:
Запрос_8 = Преподаватель [Фам_преп, Имя_преп]
Предмет [Название]
То есть сначала выполняются операции проекции отношений Студент и Предмет, а затем операция произведения, а не соединения (см. задание 7).
На языке QBE. Запрос на выборку:
Запрос_8
Поле | Фам_преп | Имя_преп | Название |
Имя таблицы | Преподаватель | Преподаватель | Предмет |
Вывод на экран | ü | ü | ü |
Для получения произведения на языке QBE необходимо удалить связь по полю Номер_преп между таблицами ПРЕПОДАВАТЕЛЬ и ПРЕДМЕТ. Удаление связи производится в запросной форме: щелкнуть правой кнопкой по связи и выполнить Удалить.
На языке SQL: