Добавлен: 28.11.2018

Просмотров: 5436

Скачиваний: 10

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

 

66

4.5.  

Выбор

 

Выбор

   

операция

  

выполняется

  

над

  

одной

  

таблицей

 R.  

В

  

результате

   

операции

   

выборки

   

производится

   

отбор

   

строк

   

из

  

таблицы

  

на

  

основании

  

некоторого

  

условия

.  

Результирующая

  

таблица

  

имеет

  

ту

  

же

  

структуру

,  

но

  

число

  

ее

  

кортежей

  

будет

  

меньше

  (

или

  

равно

)  

исходной

  

таблицы

Пример

.  

Ниже

   

приведен

   

пример

   

исходной

   

таблицы

    R  

«

Агент

»  (

табл

. 4.9).  

Предположим

,  

что

   

мы

 

хотим

   

знать

   

всю

  

информацию

  

об

  

агенте

  

Никитине

.  

Результатом

  

этого

  

запроса

  

будет

  

таблица

  R1 «

Агент

1» (

табл

.4.10). 

 
                                

Таблица

 4.9.  R  «

Агент

» 

  

аген

-

та

 

Фамилия

 

 

менед

-

жера

 

Офис

 

10 

Петров

 27 

Самара

 

14 

Лазарев

 44 

Москва

 

23 

Никитин

 35 

Тверь

 

 
 
                                    

Таблица

 4.10 R1 «

Агент

1»  

  

аген

-

та

 

Фамилия

 

 

менедже

-

ра

 

Офис

 

23 

Никитин

 35 

Тверь

 

 

4.6.  

Проекция

 

Проекция

    -   

операция

   

выполняется

   

над

   

одной

   

таблицей

  

R. 

Операцию

   

проекция

   

можно

   

представить

   

как

   

исключение

  

ненужных

   

столбцов

.  

Новая

  

таблица

  

может

  

содержать

  

мень

-

ше

  

кортежей

,  

так

  

как

  

после

  

исключения

  

из

  

исходной

  

табли

-

цы

  R  

ненужных

  

атрибутов

  

могут

  

образоваться

  

кортежи

,  

ко

-

торые

  

дублируют

  

друг

  

друга

Пример

.   

Ниже

   

приведен

   

пример

   

исходной

   

таблицы

    R  

«

Служащий

»  (

табл

.4.11)  

и

   

результат

   

проекции

    (RPR)  

(

табл

.4.12). 

 
 
 
 
                           


background image

 

67

                       

Таблица

 4.11.  R «

Служащий

» 

Служащий

 

Номер

 

отдела

 

Должность

 

Иванов

 

Петров

 

Нестеров

 

Никитин

 

01 
02 
01 
02 

Инженер

 

Инженер

 

Инженер

 

Лаборант

 

 
 
      

Таблица

 4.12   

Отношение

  RPR 

Номер

   

отдела

 

Должность

 

01 
02 
01 
02 

Инженер

 

Инженер

 

Инженер

 (*) 

Лаборант

 

 

Примечание

:  (*) – 

удаляемый

  

кортеж

 - 

дубликат

4.7.   

Соединение

 

Соединение

  

выполняется

   

для

  

связывания

  

данных

  

между

  

двумя

  

таблицами

.  

Исходные

  

таблицы

  R1,  R2  

имеют

  

разные

  

структуры

,  

в

   

которых

   

есть

   

одинаковые

   

атрибуты

    - 

внешние

  

ключи

.  

Операция

   

соединения

   

формирует

   

новую

   

таблицу

,  

структура

   

которой

   

представляет

   

собой

   

совокупность

   

всех

  

атрибутов

   

исходных

   

таблиц

.  

У

   

операции

   

соединения

   

есть

  

несколько

  

версий

:  

естественное

  

соединение

,  

тета

-

соединение

  

и

   

эквисоединение

Естественное

   

соединение

.   

Операция

   

соединения

 

 

опе

-

рация

,  

связывающая

  

таблицы

,  

когда

  

общие

  

столбцы

  

имеют

  

равные

   

значения

Общее

   

определение

   

естественного

   

со

-

единения

  

таково

:  

предположим

,  

что

  

мы

  

хотим

  

взять

  

естест

-

венное

  

соединение

  

двух

  

таблиц

  

А

  

и

  

В

,  

которые

  

имеют

  

об

-

щие

  

строки

  

С

1,…,

С

n

.  

Тогда

  

операция

  

выполняется

  

за

  

сле

-

дующих

  

три

  

шага

1. 

Берется

   

произведение

   

таблиц

   

А

   

и

   

В

.  

В

   

результате

  

получается

  

таблица

,  

содержащая

  

по

  

два

  

столбца

  

на

  

каждый

  

С

1,…,

С

n


background image

 

68

2. 

Из

   

таблицы

   

произведения

   

исключаются

   

все

   

строки

,  

кроме

  

тех

,  

в

   

которых

  

значения

  

столбцов

   

С

1,…,

С

n

  

из

  

таб

-

лицы

  

А

  

равны

  

значениям

  

этих

  

столбцов

  

в

  

В

3. 

Проектированием

   

исключается

   

одна

   

копия

   

столбцов

  

С

1,…,

С

n

Если

  

таблица

  

А

  

имеет

  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» 

  

Имя

  

клиента

 

Смирнов

 

Петров

 

Воробьев

 


background image

 

69

Тета

-

соединение

    -   

это

   

соединение

   

с

   

определенным

   

ус

-

ловием

,  

в

   

котором

  

участвуют

  

столбцы

  

из

  

каждой

  

таблицы

.  

Это

  

условие

  

означает

  

что

  

два

  

столбца

  

будут

  

определенным

  

образом

  

сравниваться

.  

Оператор

  

сравнения

  

может

  

быть

  

лю

-

бым

 

из

  

шести

  

следующих

:  =,  

,  

<

,  

>

,  <=,  >=. 

Пример

.  

Рассмотрим

   

таблицу

    «

Торговый

   

агент

»  

(

табл

.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 «

Менеджер

» 

     

 

менеджера

 

Петров

 

Сидоров

 

Пряников

 

Кошкин

 

Манжурин

 

Сорокин

 

 

Данный

  

пример

  

иллюстрирует

  

тета

-

соединение

   

в

  

случае

,  

когда

  

оператор

  

сравнения

  «=«.  

Такое

  

соединение

  

также

  

на

-

зывается

  

эквисоединением

.  

В

  

некоторых

  

задачах

  

требуются

  

другие

  

операторы

.   


background image

 

70

4.8.  

Деление

 

Деление

   

операция

   

выполняется

   

над

   

двумя

   

таблицами

  

R1,  R2,  

которые

  

имеют

  

разную

  

структуру

  

и

  

некоторые

  

оди

-

наковые

  

атрибуты

.  

В

  

результате

  

операции

  

образуется

  

новая

  

таблица

,  

структура

   

которой

   

получается

   

исключением

   

из

  

множества

  

атрибутов

  

таблицы

  R1  

множество

  

атрибутов

  

таб

-

лицы

    R2.   

Результирующие

   

строки

   

не

   

должны

   

содержать

  

дубликаты

Пример

.  

Рассмотрим

   

таблицу

    R1    «

Товар

» (

табл

.4.18)  

и

  

таблицу

  R2  «

Агент

» (

табл

.4.19).  

Предположим

,  

что

   

у

   

нас

  

есть

  

такой

  

запрос

:  

перечислить

  

торговых

  

агентов

  

с

  

указани

-

ем

   

проданных

   

товаров

.  

Результатом

   

этого

   

запроса

   

будет

  

таблица

  R3 (

табл

.4.20). 

 
   

Таблица

 4.18  R1 

  

товара

 

1035 
2241 
2249 
2518 

                                                                             
     

Таблица

 4.19  R2 

  

агента

 

  

товара

 

10 2241 
23 2518 
23 1035 
39 2518 
37 2518 
10 2249 
23 2249 
23 2241 

         
  

Таблица

 4.20   R3 

    

 

агента

 

23 

 

Рассмотренные

   

выше

   

операции

   

в

   

той

   

или

   

иной

   

мере

  

реализуются

   

в

   

средствах

   

СУБД

,  

которые

   

обеспечивают

   

об

-

работку

  

реляционных

  

таблиц

.  

К

  

таким

  

средствам

  

относятся

  

средства

  

запросов

  

и

  

другие

  

языковые

  

конструкции