Реляционная операция " Соединение>>

Операция "Соединение" является также наиболее часто используемой в реализации баз данных, представляя возможность выполнить операции над данными из разных таблиц, но обладающих идентичными или взаимо- действующим и полям и.

В реляционной алгебре данная операция имеет несколько вариантов реализации. Основным из вариантов является так называемое естественное соединение (рис. 1.28), предполагающее указание всех атрибутов (доменов) исходных отношений и декартовое произведение всех их кортежей. Таким образом, предположим, что в первом отношении указаны следующие атрибуты (домены):

а {А, В, С). (1.5)

Второе отношение содержит следующие атрибуты (домены):

b{Х,У,Z). (1.6)

В результате выполнения операции "Соединение" над отношениями "а" и <<Ь" будет получено результирующее отношение "с" со следующими атрибутами (доменами):

с {A, В, С, X, У, Z}. (1.7)

Если предположить, что в обоих исходных отношениях есть одинаковые атрибуты (домены), как представлено на примере, то при выполнении операции "Соединение" могут быть получены одинаковые атрибуты (домены) в результирующем отношении. Для исключения такой ситуации в реляционной алгебре используется операция "Переименование"[1], которая дает возможность указать в результирующем отношении другое наименование указанного в операции атрибута (домена).

Рис. 1.28. Пример выполнения "естественного соединения"


Фактически операция "естественного соединения" является копией операции "Произведение". Поэтому наиболее полезной данная операция будет, когда нужно выполнить соединение па основе условия равенства кортежей по определенным условиям (рис. 1.29).

Такое представление операции "Соединение" получается при последовательном выполнении операций "Произведение", "Сокращение" и "Переименование". Обычно операция "Переименование" может не использоваться, поскольку именование атрибута (домена) целесообразно указывать с именем отношения, в котором оно изначально использовалось, т.е. в исходном отношении.

Наложим на результат "естественного соединения" условие соединения отношений по атрибуту (домену) "ФИО сотрудника"

"Л. ФИО сотрудника" = "Б. ФИО сотрудника". (1.8)

В этом случае получается результирующее отношение, где участвуют все атрибуты (домены) исходных отношений и кортежами, где значения атрибутов (доменов) "ФИО сотрудника" совпадают. Важно понимать, что логическое условие для выполнения операции "Соединение", в полном его исполнении, может быть представлено любым из вариантов. Для его формирования использование идентичных атрибутов является важным. Например, для выбора сотрудников, проживающих в городе рождения, условие будет выглядеть следующим образом (рис. 1.30):

"А. Город рождения" = "Б. Город проживания";

"А. ФИО сотрудника" = "Б. ФИО сотрудника". (1.9)

Рис. 1.29. Пример выполнения операции "Соединение" по атрибуту (домену) "ФИО сотрудника"


Рис. 1.30. Пример выполнения операции "Соединение" по условию (1.9)



Как видно, в результирующем отношении отразились кортежи, где атрибуты (домены) "Город рождения" и "Город проживания" совпали, а также наложено условие совпадения значений атрибутов "ФИО сотрудника".

Такие объединения являются основными элементами при реализации запросов по выборке данных и получении сведений по информационным потребностям пользователей. Их комбинация позволяет организовывать достаточно сложные запросы и получать данные из большого количества таблиц.