Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции БД.doc
Скачиваний:
35
Добавлен:
23.09.2019
Размер:
1.93 Mб
Скачать

Выбор; свойства выбора

Пусть теперь A – это некоторый атрибут отношения r(R) и a – элемент множества значений, которые может принимать отображение t на этом атрибуте. Выберем из отношения r те кортежи, для которых отображение t на A принимает значение a, и результат обозначим через A = a(r). Это унарная операция (она применяется к одному отношению), в результате которой у нас появляется новое отношение r (R).

Определение. ВыборомA = a(r) называется отношение r (R) = A = a(r){tr | t(A)=a}.

Пример

Пусть отношение r – расписание рейсов с атрибутами номер (№), пункт отправления (ПО), пункт назначения (ПН), время вылета (ВВ) и время прилета (ВП).

Расписание (№ ПО ПН ВВ ВП)

119

Новгород

Чита

11:30

17:30

94

Чита

Керчь

20:50

3:40

117

Баку

Орёл

21:50

23:50

216

Новгород

Москва

10:00

14:00

217

Москва

Киев

16:00

20:00

ПО = Новгород(расписание) (№ ПО ПН ВВ ВП)

119

Новгород

Чита

11:30

17:30

216

Новгород

Москва

10:00

14:00

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

Пусть r и s – отношения со схемой R; A, B, C,… – конечное число атрибутов в R, пусть adom(A), bdom(B), cdom(C),… . Тогда верны следующие утверждения.

Утверждение 8.1. Операторы выбора коммутативны относительно операции композиции (т.е. результат их применения не зависит от последовательности):

A = a B = b(r) A = a(B = b(r)) = B = b(A = a(r)) B = b A = a(r).

Доказательство

A = a(B = b(r)) = A = a({tr | t(B) = b}) =

= { t{tr | t(B) = b}| t (A) = a }=

= { tr | t(A) = a, t(B) = b} =

= { tr | t(B) = b, t(A) = a} =

= { t{tr | t(A) = a}| t (B) = b }=

= B = b({tr | t(A) = a}) = B = b(A = a(r)).

Введём следующее обозначение: A = a B = b  A = a, B = b . Положим X = (A, B, C,…), а x = (a, b, c,…), тогда оператор выбора можно обозначить X = x. .

Утверждение 8.2. Операция выбора дистрибутивна относительно бинарных булевых операций:

A = a(rs) = A = a(r)  A = a(s), где {, , – }.

Доказательство

A = a(rs) = A = a({t | tr, ts}) =

= {t{t | tr, ts} | t (A) = a} =

= {t | tr, t(A) = a}  {t | ts, t(A) = a} =

= A = a({t | tr})  A = a({t | ts}) = A = a(r)  A = a(s).

Аналогично доказываются равенства A = a(rs)=A = a(r)A = a(s) и A = a(rs) = = A = a(r) A = a(s).

Замечание. Операции выбора и активного дополнения не перестановочны (не коммутируют). Можно показать, что A = a(r)  A = a ( ).