ВУЗ:
Составители:
Рубрика:
9
Результат.
КОНСУЛЬТАНТ_НЕ_КОНСУЛЬТИРУЕМЫЙ
ID_St
ud
СФам САдрес Консультант
004 Андреева А.А. А4Null
Произведение
Эта операция РА создает декартово произведение двух РО. Чтобы по-
яснить действие этой операции, рассмотрим абстрактный пример.
Запрос. Даны два РО: A = <X,Y> и B = <W,Z>.
AB
XY W Z
10 20 100 200
11 22 101 201
102 202
Следует найти Произведение этих отношений.
Решение. C := A*B.
Результат.
C
XY W Z
10 20 100 200
10 20 101 201
10 20 102 201
11 22 100 200
11 22 101 201
11 22 102 201
Декартово произведение получается в результате:
1. связывания (или соединения) атрибутов двух отношений;
2. присоединения к каждому картежу отношения A каждого картежа
отношения B.
Если бы нам пришло в голову выполнить бесполезную операцию
СТУДЕНТ * УСПЕВАЕМОСТЬ, то ответ содержал бы 8 столбцов и 36 строк
и был бы весьма бессмысленным. Кроме того, два столбца вообще называ-
лись бы одинаково – ID_Stud. Последняя проблема преодолевается путем до-
бавления к имени столбца имени таблицы – СТУДЕНТ.ID_Stud и
УСПЕВАЕМОСТЬ.ID_Stud. Вообще, на первый взгляд, никакие разумные
запросы не требуют такой странной операции. Однако произведение исполь-
зуется как составная часть операции соединения и, следовательно, важна хо-
тя бы в концептуальном плане. Более того, она реализована в языках запро-
сов, и здесь еще не раз о ней будет упоминаться.
10
Операции, присущие только РА
Выборка
Выборка – операция РА, производящая отбор картежей из РО на осно-
вании некоторого условия.
Иногда выборку называют горизонтальной проекцией. Операция имеет
следующий синтаксис:
B := SELECT (ИМЯ_ТАБЛИЦЫ: <БУЛЕВО ВЫРАЖЕНИЕ>).
При формировании условия на горизонтальную проекцию <БУЛЕВО
ВЫРАЖЕНИЕ> строится из термов сравнения с помощью связок “И”,
“ИЛИ”, “НЕ” и, возможно, скобок. Терм сравнения допустим в двух видах:
А ОС а; А ОС В, где А и В – имена некоторых тета-сравнимых (относящихся
к одному домену) атрибутов, а – константа, ОС – одна из операций сравне-
ния (=, <> (!=), .>=, <=, !>, !<).
Запрос. Какой номер имеет студент Иванов И.И.?
Решение.
СТУДЕНТ_ИВАНОВ:=SELECT(СТУДЕНТ:СФам=’Иванов И.И.’)
Результат.
СТУДЕНТ_ИВАНОВ
ID_Stud СФам САдрес Консультант
001 Иванов И.И. А1 004
002 Иванов И.И. А2 004
Запрос. Кто получил больше тройки по курсу К2 в первом семестре?
Решение. УСПЕХИ_К2 := SELECT(УСПЕВАЕМОСТЬ: (ID_Subj=’К2’)
AND (Семестр = 1) AND (Оценка>3)).
Результат.
УСПЕХИ_К2
ID_Stud ID_Subj Семестр Оценка
001 К21 4
004 К21 5
Создание Проекций
Операцию выборки можно представить как операцию исключения
“ненужных” картежей. Часто для ответа на запрос необходимы не все атри-
буты исследуемого отношения, а только некоторые из них. Например, в по-
следнем запросе нас могло интересовать лишь значение поля ID_Stud. Опе-
рация исключения “ненужных” атрибутов называется вертикальной проек-
цией, а результирующее отношение – проекцией.
Синтаксис операции:
ИМЯ_ТАБЛИЦЫ [ИмяСтолбца_1, ИмяСтолбца_2, ...].
Здесь ИМЯ_ТАБЛИЦЫ – имя исходной таблицы, а ИмяСтолбца_i,
столбцы, которые войдут в проекцию.
Запрос. Какие оценки получали студенты?
Страницы
- « первая
- ‹ предыдущая
- …
- 3
- 4
- 5
- 6
- 7
- …
- следующая ›
- последняя »