Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД(4 курс).doc
Скачиваний:
20
Добавлен:
21.04.2019
Размер:
716.29 Кб
Скачать

47,3.5 Расширение для сравнения на доменах. Расширение оператора выбора. Оператор о - соединения.

Определение. Если знак сравнения , а A и B – атрибуты, то говорят, что A -сравним с B, если – бинарное отношение в dom(A)  dom(B).

Определение. Атрибут A -сравним, если он -сравним сам с собой.

Расширим оператор выбора, используя понятие -сравнимости. Пусть r – отношение со схемой R, атрибут AR, adom(A) – константа, , A -сравним. Тогда расширенный оператор выбора Aa(r) = {tr | t(A)  a}. Аналогично этот оператор определяется для случая сравнения между атрибутами, с учетом того, что BR, dom(B)=dom(A): AB = {tr | t(A)t(B)}.

Пример

О

время (рейс время вылета время прибытия)

84

15:00

17:30

+

109

11:40

12:00

*

117

22:00

00:30

*

+

213

07:00

08:00

*

214

14:00

16:00

+

тношение время определяет время вылета рейса из аэропорта отправления и время его прибытия в аэропорт назначения. Применим оператор выбора для нахождения рейсов, у которых время прибытия не превышает 12 часов, и рейсов, у которых время вылета меньше времени прибытия, по крайней мере, на 2 часа (обозначим соответствующую операцию как <<). Кортежи первой выборки (s), пометим символом «*», второй (q) – «+».

s = время прибытия 12.00 (время)

q = время вылета << время прибытия (время)

Конец примера

Эквисоединение – это расширенное соединение для сравнения разных столбцов на равенство. Можно не ограничиваться равенством, а воспользоваться любой операцией .

Определение. Пусть r(R) и s(S) – отношения, для которых RS = , и пусть AR и BS -сравнимы для . Тогда -соединением называется отношение q(RS) = {t | trr, tss, t(R) = tr, t(S) = ts, tr(A)ts(B)}, которое обозначается q(RS) = r [AB] s.

П

время_ab (рейс вылет прилёт)

60

9:40

11:45

91

12:50

14:47

112

16:05

18:15

306

20:30

22:25

420

21:15

23:11

время_bc (рейс вылет прилёт)

11

8:30

9:52

60

12:25

13:43

156

16:20

17:40

158

19:10

20:35

ример

В приведенных отношениях заданы времена вылета и прилета самолетов, совершающих рейсы соответственно из пункта a в пункт b и из пункта b в пункт c. Требуется узнать, какие рейсы могут проходить транзитом из города a в c через b.

транзит_ac = время_ab [прилёт < вылет] N, прилёт, вылетN, прилёт, вылет(время_bc) =

= транзит_ac

(N

вылет

прилёт

N

вылет

прилёт)

60

9.40

11.45

60

12.25

13.43

60

9.40

11.45

156

16.20

17.40

60

9.40

11.45

158

19.10

20.35

91

12.50

14.47

156

16.20

17.40

91

12.50

14.47

158

19.10

20.35

112

16.05

18.15

158

19.10

20.35

Конец примера

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]