Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Проекты

СЛУЖАЩИЕ

 

СЛУ_НОМЕР СЛУ_ИМЯ СЛУ_ЗАРП ПРО_НОМ
  Иванов 22400.00  
  Петров 29600.00  
  Сидоров 18000.00  
  Федоров 20000.00  
  Иванова 22000.00  
  Иванов 22400.00  
  Петров 29600.00  
  Сидоренко 18000.00  
  Федоренко 20000.00  
  Иваненко 22000.00  

 

 

ПРО_НОМ ПРОЕКТ_РУК ПРО_ЗАРП
  Иванов 22400.00
  Иваненко 22400.00

 

Рис. 3.8. Отношения СЛУЖАЩИЕи ПРОЕКТЫ

Тогда разумной операцией соединения общего вида будет СЛУЖАЩИЕ JOIN ПРОЕКТЫ WHERE (СЛУ_ЗАРП > ПРО_ЗАРП) (Выдать данные о служащих, получающих заработную плату, большую средней заработной платы любого проекта.) Результаты этого запроса показаны на рис. 3.9.

 

СЛУ_НОМЕР СЛУ_ИМЯ СЛУ_ ЗАРП ПРО_НОМ ПРО_ НОМ ПРОЕКТ_РУК ПРО_ЗАРП
  Петров 29600.00     Иванов 22400.00
  Петров 29600.00     Иваненко 22400.00

 

Рис. 3.9. Результат операции

СЛУЖАЩИЕ JOIN ПРОЕКТЫ WHERE (СЛУ_ЗАРП > ПРО_ЗАРП)

 

Хотя операция соединения в приведенной интерпретации не является примитивной (поскольку она определяется с использованием операций декартова произведения и проекции), в силу особой практической важности она включается в базовый набор операций реляционной алгебры Кодда. Заметим также, что в практических реализациях соединение обычно не выполняется именно как ограничение декартова произведения. Имеются более эффективные алгоритмы, гарантирующие получение такого же результата.

 

Имеется важный частный случай соединения – эквисоединение (EQUIJOIN) и простое, но важное расширение операции эквисоединения – естественное соединение (NATURAL JOIN). Операция соединения называется операцией эквисоединения, если условие соединения имеет вид (a = b), где a и b – атрибуты разных операндов соединения. Этот случай важен потому, что он наиболее часто встречается на практике, и для него существуют наиболее эффективные алгоритмы реализации.

 

Операция естественного соединения применяется к паре отношений A и B, обладающих (возможно составным) общим атрибутом c (т.е. атрибутом с одним и тем же именем и определенным на одном и том же домене). Пусть ab обозначает объединение заголовков отношений A и B. Тогда естественное соединение A и B – это спроецированный на ab результат эквисоединения A и B по условию A.c = B.c. * Хотя операция естественного соединения выражается через операции переименования, соединения общего вида и проекции, для нее обычно используется сокращенная форма, называемая NATURAL JOIN.

На рис. 3.10 приведены результаты операций СЛУЖАЩИЕ JOIN (ПРОЕКТЫ RENAME (ПРО_НОМ, ПРО_НОМ1))WHERE (СЛУ_ЗАРП = ПРО_ЗАРП) (эквисоединение отношений СЛУЖАЩИЕи ПРОЕКТЫ: найти всех служащих, получающих зарплату, равную средней заработной плате в каком-либо проекте) и СЛУЖАЩИЕNATURAL JOIN ПРОЕКТЫ(естественное соединение – выдать полную информацию о служащих и проектах, в которых они участвуют).

 

Результат операции

СЛУЖАЩИЕ JOIN (ПРОЕКТЫ RENAME (ПРО_НОМ, ПРО_НОМ1)) WHERE (СЛУ_ЗАРП = ПРО_ЗАРП)

 

СЛУ_НОМЕР СЛУ_ИМЯ СЛУ_ ЗАРП ПРО_НОМ ПРО_НОМ1 ПРОЕКТ_ РУК ПРО_ ЗАРП
  Иванов 22400.00     Иванов 22400.00
  Иванов 22400.00     Иваненко 22400.00

 

Результат операции СЛУЖАЩИЕ NATURAL JOIN ПРОЕКТЫ

 

СЛУ_НОМЕР СЛУ_ИМЯ СЛУ_ЗАРП ПРО_НОМ ПРОЕКТ_ РУК ПРО_ЗАРП
  Иванов 22400.00   Иванов 22400.00
  Петров 29600.00   Иванов 22400.00
  Сидоров 18000.00   Иванов 22400.00
  Федоров 20000.00   Иванов 22400.00
  Иванова 22000.00   Иванов 22400.00
  Иванов 22400.00   Иваненко 22400.00
  Петров 29600.00   Иваненко 22400.00
  Сидоренко 18000.00   Иваненко 22400.00
  Федоренко 20000.00   Иваненко 22400.00
  Иваненко 22000.00   Иваненко 22400.00

 

Рис. 3.10. Результаты операций эквисоединения и естественного соединения отношений СЛУЖАЩИЕи ПРОЕКТЫ

 

Если вспомнить введенное нами в конце предыдущей лекции определение внешнего ключа отношения, то должно стать понятно, что основной смысл операции естественного соединения состоит в возможности восстановления сложной сущности, декомпозированной по причине требования первой нормальной формы. Операция естественного соединения не включается прямо в состав набора операций данной реляционной алгебры Кодда, но имеет очень важное практическое значение.

 

<== предыдущая лекция | следующая лекция ==>
Операция соединения отношений | Операция деления отношений
Поделиться с друзьями:


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


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



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




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