Экви-соединение

Наиболее важным частным случаем -соединения является случай, когда есть просто равенство. Синтаксис экви-соединения:

Пример 9. Пусть имеются отношения , и , хранящие информацию о поставщиках, деталях и поставках соответственно (для удобства введем краткие наименования атрибутов):

Номер поставщика PNUM Наименование поставщика PNAME
1 Иванов
2 Петров
3 Сидоров

Таблица 16. Отношение P (Поставщики).

Номер детали DNUM Наименование детали DNAME
1 Болт
2 Гайка
3 Винт

Таблица 17. Отношение D (Детали).

Номер поставщика PNUM Номер детали DNUM Поставляемое количество VOLUME
1 1  
1 2  
1 3  
2 1  
2 2  
3 1  

Таблица 18. Отношение PD (Поставки).

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

Обычно, такой сложной формой записи не пользуются. Но как бы то ни было, в результате имеем отношение:

Номер поставщика PNUM1 Наименование поставщика PNAME Номер поставщика PNUM2 Номер детали DNUM Поставляемое количество VOLUME
  Иванов      
  Иванов      
  Иванов      
  Петров      
  Петров      
  Сидоров      

Таблица 19. Отношение "Какие детали поставляются какими поставщиками".

Недостатком экви-соединения является то, что если соединение происходит по атрибутам с одинаковыми наименованиями (а так чаще всего и происходит!), то в результатирующем отношении появляется два атрибута с одинаковыми значениями. В нашем примере атрибуты PNUM1 и PNUM2 содержат дублирующие данные. Избавиться от этого недостатка можно, взяв проекцию по всем атрибутам, кроме одного из дублирующих. Именно так действует естественное соединение.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: