Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Деление. Естественное соединение

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

Пусть даны отношения A(A1, A2,…,An, X1, X2,…,Xn) и B(X1, X2,…,Xn, B1, B2,…,Bm), имеющие одинаковые атрибуты X1, X2,…,Xn (т.е. атрибуты с одинаковыми именами и определенные на одинаковых доменах). Тогда естественным соединением отношений A и B называется отношение с заголовком (A1, A2,…,An, X1, X2,…,Xn, B1, B2,…,Bm) и телом, содержащим множество кортежей (a1, a2,…, an, x1, x2,…, xn, b1, b2…, bn) таких, что (a1, a2,…, an, x1, x2,…, xn,)ÎA и (x1, x2,…, xn, b1,b2…, bn)ÎB. Естественное соединение настолько важно, что для него используют специальный синтаксис: A JOIN B. Естественное соединение производится по всем одинаковым атрибутам.

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

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

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

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

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

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

Пример. В предыдущем примере ответ на вопрос "какие детали поставляются поставщиками", более просто записывается в виде естественного соединения трех отношений P JOIN PD JOIN D (для удобства просмотра порядок атрибутов изменен, это является допустимым по свойствам отношений):

Номер поставщика PNUM Наименование поставщика PNAME Номердетали DNUM Наименование детали DNAME Поставляемое количество VOLUME
  Иванов   Болт  
  Иванов   Гайка  
  Иванов   Винт  
  Петров   Болт  
  Петров   Гайка  
  Сидоров   Болт  

Таблица 20 Отношение P JOIN PD JOIN D

Пусть даны отношения A(X1, X2,…, Xn, Y1, Y2,…,Ym) и B (Y1, Y2,…,Ym), причем атрибуты Y1,Y2,…,Ym - общие для двух отношений. Делением отношений A на B называется отношение с заголовком (X1, X2,…, Xn) и телом, содержащим множество кортежей (x1, x2,…, xn) таких, что для всех кортежей (y1, y2,…, ym)ÎB в отношении найдется кортеж (x1, x2,…, xn, y1, y2,…, ym). Отношение A выступает в роли делимого, отношение B выступает в роли делителя. Синтаксис операции деления: A DEVIDBY B.

Пример. В примере с поставщиками, деталями и поставками ответим на вопрос, "какие поставщики поставляют все детали?". В качестве делимого возьмем проекцию X=PD[PNUM, DNUM], содержащую номера поставщиков и номера поставляемых ими деталей:

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

Таблица 21 Проекция X=PD[PNUM,DNUM]

В качестве делителя возьмем проекцию Y=D[DNUM], содержащую список номеров всех деталей (не обязательно поставляемых кем-либо):

Номер детали DNUM
 
 
 

Таблица 22 Проекция Y=D[DNUM]

Деление дает список номеров поставщиков, поставляющих все детали:

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

Таблица 23 Отношение X DEVIDEBY Y

<== предыдущая лекция | следующая лекция ==>
Тэта-соединение. Общая операция соединения | Оптимизация запросов к базе данных
Поделиться с друзьями:


Дата добавления: 2014-01-13; Просмотров: 387; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.