ВУЗ: Томский государственный университет систем управления и радиоэлектроники
Категория: Учебное пособие
Дисциплина: Базы данных
Добавлен: 28.11.2018
Просмотров: 5436
Скачиваний: 10
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).
67
Таблица
4.11. R «
Служащий
»
Служащий
Номер
отдела
Должность
Иванов
Петров
Нестеров
Никитин
01
02
01
02
Инженер
Инженер
Инженер
Лаборант
Таблица
4.12
Отношение
RPR
Номер
отдела
Должность
01
02
01
02
Инженер
Инженер
Инженер
(*)
Лаборант
Примечание
: (*) –
удаляемый
кортеж
-
дубликат
.
4.7.
Соединение
Соединение
выполняется
для
связывания
данных
между
двумя
таблицами
.
Исходные
таблицы
R1, R2
имеют
разные
структуры
,
в
которых
есть
одинаковые
атрибуты
-
внешние
ключи
.
Операция
соединения
формирует
новую
таблицу
,
структура
которой
представляет
собой
совокупность
всех
атрибутов
исходных
таблиц
.
У
операции
соединения
есть
несколько
версий
:
естественное
соединение
,
тета
-
соединение
и
эквисоединение
.
Естественное
соединение
.
Операция
соединения
−
опе
-
рация
,
связывающая
таблицы
,
когда
общие
столбцы
имеют
равные
значения
.
Общее
определение
естественного
со
-
единения
таково
:
предположим
,
что
мы
хотим
взять
естест
-
венное
соединение
двух
таблиц
А
и
В
,
которые
имеют
об
-
щие
строки
С
1,…,
С
n
.
Тогда
операция
выполняется
за
сле
-
дующих
три
шага
:
1.
Берется
произведение
таблиц
А
и
В
.
В
результате
получается
таблица
,
содержащая
по
два
столбца
на
каждый
С
1,…,
С
n
.
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»
Имя
клиента
Смирнов
Петров
Воробьев
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 «
Менеджер
»
№
менеджера
Петров
Сидоров
Пряников
Кошкин
Манжурин
Сорокин
Данный
пример
иллюстрирует
тета
-
соединение
в
случае
,
когда
оператор
сравнения
«=«.
Такое
соединение
также
на
-
зывается
эквисоединением
.
В
некоторых
задачах
требуются
другие
операторы
.
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
Рассмотренные
выше
операции
в
той
или
иной
мере
реализуются
в
средствах
СУБД
,
которые
обеспечивают
об
-
работку
реляционных
таблиц
.
К
таким
средствам
относятся
средства
запросов
и
другие
языковые
конструкции
.