Базы данных. Учебное пособие

       

Соединение


Соединение  выполняется   для  связывания  данных  между  двумя  таблицами.  Исходные  таблицы  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

<
 

                         Таблица 4.14.  В «Клиент»

№  клиента

Имя клиента

Город

100

Смирнов

Москва

101

Петров

Самара

105

Кошкин

Томск

110

Воробьев

Кемерово

 Таблица 4.15.С «Отношение  АJB»

  Имя  клиента

Смирнов

Петров

Воробьев

Тета-соединение  -  это  соединение  с  определенным  условием,  в  котором  участвуют  столбцы  из  каждой  таблицы.  Это  условие  означает  что  два  столбца  будут  определенным  образом  сравниваться.  Оператор  сравнения  может  быть  любым из  шести  следующих:  =,  ¹,  <,  >,  <=,  >=.

Пример.  Рассмотрим  таблицу  «Торговый  агент»  (табл.4.16).  Предположим,  что  мы  должны  идентифицировать  агентов,  чьи  менеджеры получают  комиссионные  более  11%.  Результатом  этого  запроса  будет  таблица  «Менеджер»  (табл.4.17). 

                        Таблица   4.16.   «Торговый  агент»

№  агента

Фамилия

№  менеджера

Офис

Комис. %

10

Петров

27

Москва

10

14

Сидоров

44

Киев

11

23

Смирнов

35

Токио

9

37

Иванов

12

Томск

13

27

Васильева

Москва

15

39

Пряников

44

Киев

10

35

Манжурин

27

Токио

11

12

Сорокин

27

Томск

10

44

Кошкин

27

Киев

12

   Таблица 4.17 «Менеджер»

     № менеджера

Петров

Сидоров

Пряников

Кошкин

Манжурин

Сорокин

Данный  пример  иллюстрирует  тета-соединение  в  случае,  когда  оператор  сравнения  «=«.  Такое  соединение  также  называется  эквисоединением.  В  некоторых  задачах  требуются  другие  операторы. 


Содержание раздела