ВУЗ:
Составители:
Рубрика:
7
Е.Ф. Кодд рассматривает в рамках РА девять операций (см. рис. 1).
Следует отметить, что этот набор избыточен, то есть некоторые операции
могут быть определены через оставшиеся. Однако ввиду важности для прак-
тики операций соединения и деления они выделяются как самостоятельные.
Объединение
Пересечение
Разность
Произведение
взяты из теории множеств
и совпадают с соответствующими
теоретико-множественными опе-
рациями
Операция Выбор
Создание Проекций
Соединение
Деление
относятся только
к реляционной алгебре
Присвоение
стандартная операция компьютер-
ного языка, дающая имя величине
Присвоение
Операция присвоения является стандартной и основной для любого
процедурного языка. В нашем случае с ее помощью производится присвое-
ние имени новому отношению, созданному из существующих отношений.
Для обозначения присвоения будем использовать стандартный символ “ := ”.
Теоретико-множественные операции РА
Операции РА объединение, пересечение и разность оперируют двумя
РО. Важным отличием этих операций от теоретико-множественных аналогов
является необходимость совпадения структуры (схем) отношений-операндов,
т.е. они должны иметь в точности одни и те же атрибуты.
Вообще, две схемы называются эквивалентными, а отношения объе-
динительно-совместимыми, если они имеют одинаковую степень и воз-
можно такое упорядочение имен атрибутов в схемах, что на одинаковых мес-
тах будут находиться сравнимые атрибуты, то есть атрибуты, принимающие
значения из одного домена.
Для иллюстрации этих операций предположим, что вместо отношения
СТУДЕНТ существует два отношения – КОНСУЛЬТИРУЕМЫЙ =
<ID_Stud (*),СФам,САдрес> и КОНСУЛЬТАНТ = <ID_Stud (*),СФам, САд-
рес >.
КОНСУЛЬТИРУЕМЫЙ КОНСУЛЬТАНТ
ID_Stud СФам САд
рес
Кон-
сультант
ID_Stud СФам САд
рес
Консуль-
тант
001 Иванов И.И. А1 004 002 Иванов И.И. А2 004
002 Иванов И.И. А2 004 004 Андреева А.А. А4Null
003 Петрова П.П. А3 002
8
Очевидно, что это избыточные данные. Они могли быть созданы, на-
пример, после применения серии операций РА.
Объединение
Операция Объединение (U) позволяет комбинировать данные из двух
отношений. В результирующее отношение картеж включается, если он вхо-
дит хотя бы в одно из отношений-операндов.
Запрос. Получить список всех студентов.
Решение. СТУДЕНТ:= КОНСУЛЬТИРУЕМЫЙ U КОНСУЛЬТАНТ
Результат. Совпадает с РО СТУДЕНТ из первоначальной БД.
Замечание. Любой картеж, появляющийся в обоих отношениях, входит
в результирующее отношение только один раз, что обеспечивает замкнутость
операции над множеством отношений. Например, строка с ID_Stud = 002
войдет в СТУДЕНТ один раз.
Пересечение
В результирующее отношение картеж включается, если он входит в оба
отношения-операнда.
Запрос. Определить, кто из студентов консультируется, сам являясь
консультантом.
Решение. КОНСУЛЬТИРУЕМЫЙ_КОНСУЛЬТАНТ :=
КОНСУЛЬТИРУЕМЫЙ
^ КОНСУЛЬТАНТ
Результат.
КОНСУЛЬТИРУЕМЫЙ_КОНСУЛЬТАНТ
ID_Stud СФам САдрес Консультант
002 Иванов И.И. А2 004
Разность
В результирующее отношение картеж включается, если он входит в
первое отношение-операнд, но отсутствует в другом.
Запрос. Определить, кто из студентов консультируется, сам НЕ являясь
консультантом.
Решение. КОНСУЛЬТИРУЕМЫЙ_НЕ_КОНСУЛЬТАНТ :=
КОНСУЛЬТИРУЕМЫЙ – КОНСУЛЬТАНТ
Результат.
КОНСУЛЬТИРУЕМЫЙ_НЕ_КОНСУЛЬТАНТ
ID_Stud СФам САдрес Консультант
001 Иванов И.И. А1 004
003 Петрова П.П. А3 002
Следует подчеркнуть, что операция не коммутативна, A – B <> B – A.
Запрос. Определить, кто из студентов консультирует, но сам НЕ кон-
сультируется.
Решение. КОНСУЛЬТАНТ_НЕ_КОНСУЛЬТИРУЕМЫЙ :=
КОНСУЛЬТАНТ - КОНСУЛЬТИРУЕМЫЙ
Страницы
- « первая
- ‹ предыдущая
- …
- 2
- 3
- 4
- 5
- 6
- …
- следующая ›
- последняя »