ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 31.03.2021
Просмотров: 1653
Скачиваний: 26
61
Пример
2
д
оше
Н
ТН
_2
.
ОТ
ЕНИ
ОТНОШЕНИЕ
_2
РЕЗУЛЬТАТ
ДИСЦИПЛИНА
ДИСЦИПЛИНА
СТУДЕНТ
Пусть
даны ва
отн
ния
:
ОТ ОШЕНИЕ
_1
и
О
ОШЕНИЕ
НОШ
Е
_1
СТУДЕНТ
Иван
Физика
Математика
Иванов
ов
Иванов
Математика
История
Орлов
Иванов
Информатика
Иванов
История
Иванов
Химия
Иванов
Электроника
Петрова
Физика
Петрова
Математика
Сидоров
Математика
Орлов
Математика
Орлов
История
Орлов
Химия
Требуется
получить
список
студентов
изучающих
все
дисциплины
,
прив
тем
едённые
во
втором
отношении
.
Эта
операция
может
быть
выполнена
пу
деления
первого
отношения
на
второе
.
62
При
й
над
отношениями
с
испо
дующие
отношения
:
СТУДЕНТЫ
,
ДИСЦИПЛИНЫ
,
УСП
анные
о
студентах
,
учебных
дисциплинах
и
оцен
по
конкретным
дисциплинам
.
С
НЫ
КОД
_
СТУД
ИМЯ
ГОРОД
КОД
_
ДИСЦИПЛ
НАИМЕНОВАНИЕ
меры
выполнения
операци
льзованием
реляционной
алгебры
.
Пусть
имеются
сле
ЕВАЕМОСТЬ
,
содержащие
д
х
студентами
ках
,
полученны
ТУДЕНТ
ДИСЦИПЛИ
С
2
Иванов
ел
Д
2
Информатик
Ор
а
С
5
Петрова
урск
Д
6
Физика
К
С
4
Сидоров
Москва
Д
1
Математика
С
7
Кузнецов
Брянск
Д
5
История
С
8
Зайцева
Липецк
Д
7
Английский
С
3
Павлов
Воронеж
Д
4
Физкультура
С
10
Котов
Орел
С
15
Лукин
Воронеж
УСПЕВАЕМОСТЬ
С
23
Белкин
Воронеж
КОД
_
СТУД
КОД
_
ДИСЦИПЛ
ОЦЕНКА
С
2
Д
2 5
С
4
Д
2
4
С
8
Д
2
5
7
6 3
С
Д
С
7
Д
1 4
С
3
Д
4 5
Пример
1
Запрос
: «
Получить
мена
студентов
,
сдавших
дисциплину
Д
2»
.
В
результате
выполнения
алгебраического
выражения
((
СТУДЕНТЫ
JOIN
УСПЕВАЕМОСТЬ
)
WHERE
КОД
_
ДИСЦИПЛ
=
Д
2
’)[
ИМЯ
]
получится
ис
и
‘
комое
отношение
,
содержащее
один
атрибут
ИМЯ
(
имя
студента
).
КОД
_
СТУД
ИМЯ
ГОРОД
КОД
_
ДИСЦИПЛ
ОЦЕНКА
Вычисление
этого
составного
выражения
может
быть
представлено
в
виде
последовательности
следующих
более
простых
действий
.
1)
T1
:=
СТУДЕНТЫ
JOIN
УСПЕВАЕМОСТЬ
Информация
отношения
СТУДЕНТЫ
дополняется
соответствующей
информацией
из
отношения
ОЦЕНКА
.
В
результате
получится
отношение
T1
С
2
Иванов
Орел
Д
2 5
С
7
Кузнецов
Брянск
Д
6 3
С
7
Кузнецов
Брянск
Д
1 4
С
8
Зайцева
Липецк
Д
2
5
С
3
Павлов
Воронеж
Д
4 5
63
2)
T2
:=
1
WHERE
КОД
_
ДИСЦИПЛ
=
‘
Д
2’
T
T2
КОД
_
СТУД
ИМЯ
ГОРОД
КОД
_
ДИСЦИПЛ
ОЦЕНКА
С
2
Иванов
Орел
Д
2 5
С
8
Зайцева
Липецк
Д
2
5
3)
T3
:=
T2
[
ИМЯ
]
T3
ИМЯ
Иванов
Зайцева
Здесь
символ
“
:=
”
означает оператор
присваивания
,
обозначения
Ti
в
тудентов
,
сдавших
информатику
».
(((
ДИ
ЕНОВАНИЕ
=
‘
Информатика
’
)
JOIN
JOIN
Студенты
)
[
ИМЯ
,
ГОРОД
]
Другой
вариант
этого
запроса
(((
НЫ
WHER
НАИМЕН ВА
тика
’)[
КО
СТУД
]
УСПЕВАЕМОСТЬ
Т
Г
ои
нт в
ы
ения
,
содержащие
у
и
ГОРОД
.
ИМЯ
О
используются
в
качест е
имен
,
вр
е
менных
отношений
,
являющихся
промежуточными
результатами
вычислений
.
Пример
2
Запрос
: «
Получить
имена
и
города
с
СЦИПЛИНЫ
WHERE
НАИМ
УСПЕВАЕМОСТЬ
)[
КОД
_
СТУД
]
ДИСЦИПЛИ
E
О
НИЕ
=‘
Информа
Д
_
JOIN
)
JOIN
С
буд
УДЕНТЫ
) [
ИМЯ
,
наков
ОРОД
]
е
ош
В
зул
ре
ьтате
об х
вариа о
ут
получены
оди
отн
два
атриб та
ИМЯ
ГОР Д
Ивано
в
Орел
Сидор
кв
ов
Мос а
Зайце
пец
ва
Ли
к
Этот
пр
ч
ллюстр рует
от
факт
,
что
один
и
тот
же
результат
может
быть
получен
различными
способами
,
с
помощью
различных
алге
((
СТУ
АЕМОСТЬ
Э
тельному
выполнению
действий
имер
,
в астности
,
и
и
т
браических
выражений
.
Пример
3
Запрос
: «
Получить
имена
студентов
,
которые
не
сдавали
дисциплину
Д
6
».
ДЕНТЫ
[
КОД
_
СТУД
]
MINUS
(
УСПЕВ
WHERE
КОД
_
ДИСЦИПЛ
=
‘
Д
6’
) [
КОД
_
СТУД
])
JOIN
Студенты
)[
ИМЯ
]
то
выражение
эквивалентно
последова
64
T1
:=
СТУДЕНТЫ
[
КОД
_
СТУД
]
;
2
:=
УСПЕ
T
ВАЕМОСТЬ
WHERE
КОД
_
ДИСЦИПЛ
=
‘
Д
6’;
Т
ых
операций
сложных
выра
ре
возможно
тождественное
прео
з
ому
ему
виду
р
Д
раются
корт
а
ример
с
точки
зрения
длит
щие
такую
оптимизацию
и
обеспечивающие
в
идеале
неза
росов
от
формы
его
представления
польз
T3
:=
T2
[
КОД
_
СТУД
]
;
T4
:=
T1
MINUS
T2
;
T5
:=
T4
JOIN
Студенты
;
T6
:=
T5
[
ИМЯ
]
Отношение
содержит
искомый
результат
.
T6
аким
образом
,
важным
назначением
реляционной
алгебры
,
проиллюстрированным
приведенными
примерами
,
является
обеспечение
возможности
записи
с
помощью
базовых
реляционн
жений
,
задающих
последовательность
преобразования
исходных
отношений
для
получения
необходимого
результата
.
Как
и
в
обычной
алгебре
,
в
реляционной
алгеб
бразование
выражений
с
исполь ованием
соответствующих
правил
преобразования
.
Например
,
выражение
из
примера
1
((
СТУДЕНТЫ
JOIN
УСПЕВАЕМОСТЬ
)
WHERE
КОД
_
ДИСЦИПЛ
=
‘
Д
2
’) [
ИМЯ
]
(
получить
имена
студентов
,
сдавших
дисциплину
Д
2
)
может
быть
преобразовано
к
другому
эквивалентн
((
УСПЕВАЕМОСТЬ
WHERE
КОД
_
ДИСЦИПЛ
= ‘
Д
2
’)
JOIN
СТУДЕНТЫ
)[
ИМЯ
].
Можно
обратить
внимание
,
что
второе
выражение
возможно
более
ационально
с
точки
зрения
времени
,
затрачиваемого
на
выполнения
запроса
.
ействительно
,
в
нем
вначале
из
отношения
УСПЕВАЕМОСТЬ
отби
ежи
,
удовлетворяющие
заданному
условию
,
благодаря чему
уменьшается
число
кортежей
,
участвующих
в
операции
соединения
с
отношением
СТУДЕНТЫ
.
Этот
пример
говорит
о
том
,
что
реляционная
лгебра
предоставляет
возможность
использования
тождественных
преобразований
алгебраических
выражений
для
оптимизации
выполнения
запросов
,
нап
ельности
их
выполнения
. «
Хорошая
»
СУБД
должна
иметь
в
своем
составе
средства
,
осуществляю
висимость
времени
выполнения
зап
ователем
.
65
7.2.
Реляционное
исчисление
Рассмотренная
в
предыду
еляционная
алгебра
является
в
ся
операций
над
данными
.
Принципиальное
отличие
этих
двух
подх
едующем
.
Алгебра
позволяет
в
явном
виде
записать
посл
(
выборка
,
проекция
,
объединение
и
т
.
д
.),
позв
из
набора
входных
отношений
получить
необ
ругими
словами
,
алгебра
является
средством
,
позв
системе
,
каким
образом
может
быть
получено
резу
.
вляет
собой
формальный
способ
описания
выхо
инах
входных
отношений
,
не
определяя
способ
.
щем
разделе
р
реляционной
модели
не
единственной
формальной
системой
,
позволяющей
задавать
преобразование
набора
входных
отношений
для
получения
необходимого
выходного
отношения
.
Речь
идет
о
реляционном
исчислении
.
Алгебра
и
исчисление
представляют собой
два
альтернативных
подхода
к
построению
формальной
системы
,
реализующей
часть
реляционной
модели
,
касающую
одов
состоит
в
сл
едовательность
операций
оляющих
в
конечном
итоге
Д
ходимый
результат
.
оляющим
сообщить
льтирую
дное
щее
выхо
отношение
Исчисление
же
предста
дного
отношения
в
терм
получения
этого
выходного
отношения
.
Поясним
это
на
примере
.
Пусть
исходные
отношения
имеют
вид
СТУДЕНТЫ
УСПЕВАЕМОСТЬ
КОД
_
СТУД
ИМЯ
ГОРОД
КОД
_
СТУД КОД
_
ДИСЦИПЛ
ОЦЕНКА
С
2
Иванов
Орел
С
2
Д
2 5
С
5
Петрова
Курск
С
4
Д
2
4
С
4
Сидоров
Москва
С
8
Д
2
5
С
7
Кузнецов
Брянск
С
7
Д
6 3
С
8
Зайцева
Липецк
С
7
Д
1 4
С
3
Павлов
Воронеж
С
3
Д
4 5
С
10
Котов
Орел
С
15
Лукин
Воронеж
С
23
Белкин
Воронеж
Рассмотрим
следующий
запрос
: «
Получить
имена
и
города
для
студентов
,
сдав
го
запроса
можно
представить
в
виде
последовательности
_
ДИСЦИПЛ
равно
Д
2
.
2
соединения
(
JOIN
)
полученного
отношения
с
отношением
СТУДЕНТЫ
.
ших
дисциплину
Д
2»
.
Алгебраический
вариант
это
следующих
действий
.
1.
Выбрать
из
отношения
УСПЕВАЕМОСТЬ
кортежи
,
для
которых
значение
атрибута
КОД
.
Произвести
операцию
естественного