Естественное соединение

Пусть даны отношения А(А1, А2,…,Аn, Х1, Х2,…,Хр) и В(Х1, Х2,…,Хр, В1, В2,…,Вm), имеющие одинаковые атрибуты Х1, Х2,…,Хр (т.е. атрибуты с одинаковыми именами и определенные на одинаковых доменах).

Тогда естественным соединением отношений А и В называется отношение с заголовком 1, А2,…,Аn, Х1, Х2,…,Хр, В1, В2,…,Вm), и телом, содержащим множество соответствующих кортежей.

Естественное соединение настолько важно, что для него используют специальный синтаксис: A JOIN B.

Замечания:

§ В синтаксисе естественного соединения не указываются, по каким атрибутам производится соединение. Естественное соединение производится по всем одинаковым атрибутам.

§ Естественное соединение эквивалентно следующей последовательности реляционных операций:

1. Переименовать одинаковые атрибуты в отношениях

2. Выполнить декартово произведение отношений

3. Выполнить выборку по совпадающим значениям атрибутов, имевших одинаковые имена

4. Выполнить проекцию, удалив повторяющиеся атрибуты

5. Переименовать атрибуты, вернув им первоначальные имена

§ Можно выполнять последовательное естественное соединение нескольких отношений. Естественное соединение (как и соединение общего вида) обладает свойством ассоциативности, т.е. (A JOIN B) JOIN С = A JOIN (B JOIN С), поэтому его можно записать, опуская скобки A JOIN B JOIN С.

Применяя естественное соединение, результат, полученный в таблице 7.6, можно было получить операцией A JOIN B, но с одним условием, атрибут отношения В используемый для связи с отношением А должен иметь имя совпадающее с атрибутом связи отношения А (т.е. Код товара).

 

Деление.Пусть даны отношения А(Х12,…,Хn,Y1,Y2,…,Ym) и B(Y1,Y2,…,Ym), причем атрибуты (Y1,Y2,…,Ym) - общие для двух отношений. Делением отношений А на В называется отношение с заголовком 12,…,Хn) и телом, содержащим множество кортежей 12,…,хn), только таких, для которых найдутся все кортежи (y1,y2,…,ym)ÎВ, в отношении А.

Синтаксис операции деления: А DEVIDBY В (А : В)

Замечание. Типичные запросы, реализуемые с помощью операции деления, обычно в своей формулировке имеют слово «все» - «какие поставщики поставляют все детали?».

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

 

Таблица 7.7 - Отношение Х «Поставщики-Детали»

 

Номер поставщика Номер детали

 

Требуется узнать, какой поставщик поставляет все детали. Отношение Х возьмем в качестве делимого, а проекцию таблицы 7 «детали» - Y=B[Номер детали] (таблица 7.8):

 

 

Таблица 7.8 - Отношение Y = B[Номер детали]

 

Номер детали

 

Деление Х DEVIDBY Y дает список номеров поставщиков, поставляющих все детали (таблица 7.9):

 

Таблица 7.9 - Результирующее отношение (А : В)

 

Номер поставщика







Дата добавления: 2015-11-18; просмотров: 1122;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.