Наиболее важным частным случаем -соединения является случай, когда есть просто равенство. Синтаксис экви-соединения:
Пример 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 содержат дублирующие данные. Избавиться от этого недостатка можно, взяв проекцию по всем атрибутам, кроме одного из дублирующих. Именно так действует естественное соединение.