Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Важными с практической точки зрения частными случаями соединения являются эквисоединение и естественное соединение



Операция эквисоединения характеризуется тем, что формула f задает равенство операндов.

Пример 13. Эквисоединение.

Заданы отношения R1 и R2 содержащие коды и размеры (диаметры шпилек и шайб соответственно. Необходимо подобрать шайбы к шпилькам при условии, что диаметр шайбы должен быть равен диаметру шпильки. Для этого выполним операцию эквисоединения:

R1 R2

Код_шпильки Диаметр_шпильки   Код_шайбы Диаметр_шайбы
         
         
         

(R1 Ä R2) WHERE Диаметр_шпильки = Диаметр_шайбы

Код_шпильки Диаметр_шпильки Код_шайбы Диаметр_шайбы
       
       
       

Операция естественного соединения (операция JOIN) является частным случаем операции эквисоединения по одному столбцу.

Эта операция применяется к двум отношениям, имеющим общий атрибут (простой или составной).

Этот атрибут в отношениях имеет одно и то же имя (совокупность имен) и определен на одном и том же домене (доменах).

Результатом операции естественного соединения является отношение R, которое представляет собой проекцию эквисоединения отношений R1 и R2 по общему атрибуту на объединенную совокупность атрибутов обоих отношений.


Пример 15. Естественное соединение.

Пусть необходимо найти естественное соединение отношений R1 (список групп и кураторов) и R2 (список студентов) по общему атрибуту, характеризующему группу (в отношении R1 — это Ном_группы, а в отношении R2Группа). Поскольку условие операции требует одинаковости имен атрибутов, по которым выполняется соединение, то применяется операция RENAME переименования атрибута Ном_группы.

R1 R2

Ном_группы Куратор   Ном_зач ФИО Год_рожд Группа
  Иванова       Николаев Н.К.    
  Павлова       Иванова И.С    
  Сергеева       Петров П.П.    
  Иванов     Киев   Костина Н.К.    
      Киев   Серегин С.С.    
      Киев   Иванова Н.С.    
      Киев   Михайлов А.И.    
      Москва   Прошин Н.А.    
      Москва   Леонова Е.А.    
      Москва   Воробьева Е.Н.    

(RENAME R1 Ном_группы AS Группа) JOIN R2

Группа Куратор Ном_зач ФИО Год_рожд
  Иванова     Николаев Н.К.  
  Иванова     Иванова И.С  
  Павлова     Петров П.П.  
  Павлова   Киев   Костина Н.К.  
  Сергеева   Киев   Серегин С.С.  
  Сергеева   Киев   Иванова Н.С.  
  Иванов   Киев   Михайлов А.И.  
  Иванов   Москва   Прошин Н.А.  
  Павлова   Москва   Леонова Е.А.  
  Сергеева   Москва   Воробьева Е.Н.  

Обратной операцией для операции соединения является проекция. Отношения R1 и R2 из отношения R для рассматриваемого примера можно получить проекцией:

R1 = R[Группа, Куратор],

R2 = R[Ном_зач, ФИО, Год_ рожд, Группа].


Операция деления отношений

Результатом деления отношения R1 с атрибутами А и В на отношение R2 с атрибутом В (R1 / R2), где А и В простые или составные атрибуты, причем атрибут В — общий атрибут, определенныйна одном и том же домене (множестве доменов составного атрибута), является отношение R с заголовком А и телом, состоящим из кортежей s таких, что в отношении R1 имеются кортежи (s, p), причем множество значений p включает множество значений атрибута В отношения R2.


Пример 20. Деление отношения.

Пусть R1 — отношение содержащее отделы и фамилии сотрудников в них работающих, a R2 — отношение фамилии сотрудников, которые нас интересуют, тогда результатом деления R1 на R2 будет отношение R = R1 / R2 содержащее список отделов, в которых одновременно работают сотрудники с интересующими нас фамилиями.

R1   R2   R
Ном_Отд ФИО   ФИО   Ном_Отд  
  Павлов     Иванов        
  Иванов     Сидорова        
  Петров            
  Сидорова            
  Алексеев            
  Пронина            
  Павлов            
  Иванов            
  Иванов            
  Иванов            
  Сидорова            

Определим множества Сi фамилий по полю ФИО для каждого значения (кортежа) в поле Ном_Отд отношения R1 и сравним с множеством фамилий в поле ФИО отношения R2:

Ном_отд = 1С1 = {Павлов, Иванов, Петров, Сидорова, Алексеев, Пронина} É {Иванов, Сидорова} – значение (кортеж) включается в отношение R.

Ном_отд = 2С2 = {Павлов, Иванов} É {Иванов, Сидорова} – значение (кортеж) не включается в отношение R.

Ном_отд = 3С3 = {Иванов} É {Иванов, Сидорова} – значение (кортеж) не включается в отношение R.

Ном_отд = 4С4 = {Иванов, Сидорова} = {Иванов, Сидорова} – значение (кортеж) включается в отношение R.





Дата публикования: 2015-07-22; Прочитано: 689 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...