Соединение выполняется для связывания данных между двумя таблицами. Исходные таблицы R1, R2 имеют разные структуры, в которых есть одинаковые атрибуты - внешние ключи. Операция соединения формирует новую таблицу, структура которой представляет собой совокупность всех атрибутов исходных таблиц. У операции соединения есть несколько версий: естественное соединение, тета-соединение и эквисоединение.
Естественное соединение. Операция соединения -
операция, связывающая таблицы, когда общие столбцы имеют равные значения. Общее определение естественного соединения таково: предположим, что мы хотим взять естественное соединение двух таблиц А и В, которые имеют общие строки С1,…,С
1. Берется произведение таблиц А и В. В результате получается таблица, содержащая по два столбца на каждый С1,…,С
2. Из таблицы произведения исключаются все строки, кроме тех, в которых значения столбцов С1,…,С
3. Проектированием исключается одна копия столбцов С1,…,С
Если таблица А имеет k столбцов, а таблица В имеет m столбцов, то естественное соединение таблиц А и В будет состоять из (k+m-n) столбцов, где n - число общих столбцов таблиц А и В.
Пример. Рассмотрим таблицу А «Продажа» (табл.4.13) и таблицу В «Клиент» (табл.4.14). Предположим, мы хотим знать список клиентов, закупивших товар 2518. Результатом этого запроса будет таблица С «Отношение АJB» (табл.4.15).
Таблица 4.13. А «Продажа»
День |
№ клента |
№ торгового агента |
№ товара |
Количество |
28.02 |
100 |
10 |
2241 |
200 |
19.02 |
101 |
23 |
2518 |
300 |
12.02 |
105 |
10 |
2241 |
160 |
22.02 |
100 |
39 |
2518 |
30 |
14.02 |
101 |
23 |
2234 |
60 |
15.02 |
110 |
37 |
2518 |
250 |