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

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

Синтаксис экви-соединения:

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

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

PNUM PNAME

1 Иванов

2 Петров

3 Сидоров

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

Номер детали Наименование детали

DNUM DNAME

1 Болт

2 Гайка

3 Винт

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

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

PNUM DNUM VOLUME

1 1 100

1 2 200

1 3 300

2 1 150

2 2 250

3 1 1000

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

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

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

Номер Наименование Номер Номер Поставляемое

поставщика поставщика поставщика детали количество

PNUM1 PNAME PNUM2 DNUM VOLUME

1 Иванов 1 1 100

1 Иванов 1 2 200

1 Иванов 1 3 300

2 Петров 2 1 150

2 Петров 2 2 250

3 Сидоров 3 1 1000

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

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


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



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