2. Еще одним примером, производной базовой операции от восьми исходных операций является операция естественного соединения. В самом общем виде эта операция является производной от бинарной операции декартового произведения и унарных операций выборки, проекции и переименования атрибутов. Однако, в свою очередь, операция внутреннего соединения является производной операцией от той же операции декартового произведения отношений. Поэтому, чтобы показать, что операция естественного соединения – производная операция, рассмотрим следующий пример.
Сравним приведенные ранее примеры для операций естественного и внутреннего соединений.
Пусть нам даны два отношения
Как мы уже получали ранее, результатом операции естественного соединения этих отношений будет являться таблица следующего вида:
А результатом внутреннего соединения этих же отношений
Сравним эти два результата, получившиеся новые отношения
Ясно, что операция естественного соединения выражается через операцию внутреннего соединения, но, что главное, с условием соединения специального вида.
Запишем математическую формулу, описывающую действие операции естественного соединения как производную операции внутреннего соединения.
где
Здесь одна из функций переименования
Условие соединимости
6. Выражения реляционной алгебры
Покажем, как можно использовать рассмотренные ранее выражения и операции реляционной алгебры в практической эксплуатации различных баз данных.
Пусть для примера в нашем распоряжении имеется фрагмент какой-то коммерческой базы данных:
Поставщики (
Инструменты (
Поставки (
Подчеркнутые имена атрибутов[1] являются ключевыми (т. е. идентификационными) атрибутами, причем каждый в своем отношении.
Предположим, что к нам, как разработчикам этой базы данных и хранителям информации по этому вопросу, поступил заказ получить наименования поставщиков (Имя Поставщика) и место их расположения (Город Поставщика) в случае, когда эти поставщики не поставляют каких-либо инструментов с родовым именем «Плоскогубцы».
Чтобы в нашей, возможно, весьма обширной, базе данных определить всех поставщиков, отвечающих этому требованию, запишем несколько выражений реляционной алгебры.
1. образуем естественное соединение отношений «Поставщики» и «Поставки» для того, чтобы сопоставить с каждым поставщиком коды поставляемых им деталей. Новое отношение – результат применения операции естественного соединения – для удобства дальнейшего применения обозначим через
Поставщики × Поставки ≔
В скобках мы перечислили все атрибуты отношений, участвующих в этой операции естественного соединения. Мы видим, что атрибут «Код поставщика» дублируется, но в итоговой записи операции каждое имя атрибута должно присутствовать только один раз, т. е.:
Поставщики × Поставки ≔
2. снова образуем естественное соединение, только на этот раз отношения, получившегося в пункте один и отношения Инструменты. Делаем это для того, чтобы с каждым кодом инструмента, получившемуся в предыдущем пункте, – сопоставить имя этого инструмента.