Реляционная алгебра - Экви-соединение
ОГЛАВЛЕНИЕ
Экви-соединение
Наиболее важным частным случаем -соединения является случай, когда есть просто равенство.
Синтаксис экви-соединения:
Пример 9. Пусть имеются отношения , и , хранящие информацию о поставщиках, деталях и поставках соответственно (для удобства введем краткие наименования атрибутов):
Номер поставщика PNUM | Наименование поставщика PNAME |
---|---|
1 | Иванов |
2 | Петров |
3 | Сидоров |
Таблица 16. Отношение P (Поставщики)
Номер детали | Наименование детали |
---|---|
1 | Болт |
2 | Гайка |
3 | Винт |
Таблица 17. Отношение D (Детали)
Номер поставщика | Номер детали | Поставляемое количество |
---|---|---|
1 | 1 | 100 |
1 | 2 | 200 |
1 | 3 | 300 |
2 | 1 | 150 |
2 | 2 | 250 |
3 | 1 | 1000 |
Таблица 18. Отношение PD (Поставки)
Ответ на вопрос, какие детали поставляются поставщиками, дает экви-соединение . На самом деле, т.к. в отношениях имеются одинаковые атрибуты, то требуется сначала переименовать атрибуты, а потом выполнить экви-соединение. Запись становится более громоздкой:
Обычно, такой сложной формой записи не пользуются. Но как бы то ни было, в результате имеем отношение:
Номер поставщика | Наименование поставщика | Номер поставщика | Номер детали | Поставляемое количество |
---|---|---|---|---|
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 содержат дублирующие данные. Избавиться от этого недостатка можно, взяв проекцию по всем атрибутам, кроме одного из дублирующих. Именно так действует естественное соединение.