Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теоретические основы реляционных баз данных. Учебное пособие.pdf
Скачиваний:
0
Добавлен:
15.08.2026
Размер:
936 Кб
Скачать

- 66 -

Если в отношении r меняются значения атрибутов {C1, C2, ...,Cp}, причем все приведенные атрибуты принадлежат схеме отношения, операция будет иметь следующий вид:

CH(r; A1 = d1, A2 = d2, ..., An = dn; C1 = e1, C2 = e2, ..., Cp = ep).

При наличии ключа K={B1, B2, ..., Bm} запись можно сократить до

CH(r; B1 = d1, B2 = d2, ..., Bm = dm; C1 = e1, C2 = e2, ..., Cp = ep).

3.2. Реляционные операторы

В предыдущей главе все операции проводились над отдельными кортежами отношений, где каждая из операций состояла как бы из трех составных частей. Первая идентифицировала отношение, над которым проводилось действие (рассматривались добавление, удаление и изменение), вторая указывала на конкретный кортеж отношения и третья показывала, какие конкретно значения должны принимать атрибуты.

Теперь настала пора рассмотреть операции, которые выполняются над целыми отношениями. Все операции над отношениями можно разделить на две основные группы: булевы операции реляционной алгебры и операторы реляционной алгебры.

3.2.1. Булевы операции

Булевы операции являются аналогом операций над множествами, где множествам соответствуют отношения, а элементам множеств — кортежи отношений.

Для всех булевых операций справедливо требование равенства схем, включенных в операцию отношений. Таким образом, мы будем рассматривать в качестве операндов пару отношений r(R) и s(R). Уделять много внимания этим операциям мы не будем, поскольку они достаточно просты для понимания. Поэтому дадим определения сразу для всех отношений, а уже потом рассмотрим примеры.

Результатом операции объединения отношений r(R) s(R) является отношение q(R), в которое входят все кортежи, принадлежащие или отношению r(R), или отношению s(R).

Результатом операции пересечения отношений r(R) s(R) является отношение q(R), в которое входят все кортежи, принадлежащие и отношению r(R), и отношению s(R).

Результатом операции теоретико-множественной разности

отношений r(R) — s(R) является отношение q(R), в которое

- 67 -

входят все кортежи, принадлежащие отношению r(R) и не принадлежащие s(R).

Кроме приведенных операций имеется еще ряд, отличающийся тем, что с ним связаны операции над доменами. Так, если dom(R) — множество всех кортежей над схемой R, то существует операция для определения множества кортежей, которые входят в dom(R), но не входят в r(R).

Дополнением отношения r со схемой R является результат операции q(R) = dom(R) — r(R) и обозначается как r.

К сожалению, определение домена отношения достаточно часто бывает затруднено из-за бесконечности или слишком большого значения доменов одного или нескольких доменов атрибутов, входящих в схему отношения. В этом случае и с доменом схемы работать практически невозможно.

Решается эта проблема введением понятия активного домена атрибута A относительно отношения r — adom(A,r). Активный домен представляет только те значения из домена, которые используются в конкретном отношении r. С понятием активного дополнения связано следующее определение:

Активным дополнением отношения r со схемой R является результат операции q(R) = dom(R) — r(R) и обозначается как

.

Рассмотрим примеры, иллюстрирующие использование приведенных операторов с учетом того, что активные домены атрибутов будут отличаться от их же доменов. Предположим при этом, что оба отношения обладают одинаковой схемой R=ABC, это отношения r(ABC) и s(ABC).

r ( A

B C )

s ( A

B C )

 

a1

b1

c1

 

 

a1

b2

c1

 

 

a1

b2

c1

 

a2

b2

c1

 

a2

b1

c2

 

a2

b2

c2

Тогда результаты выполнения основных операций можно

представить в следующем виде:

 

 

 

 

 

 

rs= (

A

B

C

)

r s= (

A

B

C )

 

a1

b2

c1

 

 

a1

b1

c1

 

 

 

 

 

 

 

a1

b2

c1

r-s = (

A

B

C

)

 

a2

b1

c2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

- 68 -

 

 

 

r-s = (

A

B

C

)

a2

b2

c1

 

a1

b1

c1

 

a2

b2

c2

 

a2

b1

c2

 

 

 

 

Для простоты рассмотрения примеров дополнения и активного дополнения предположим, что домены атрибутов A и C совпадают с их активными доменами соответственно. Следует при этом заметить, что активные домены конкретных атрибутов для различных отношений, в отличие от приведенного примера, могут быть разными, но сами домены обязательно должны быть равны.

Таким образом, мы имеем adom(A,r) = adom(A,s) = dom(A) = { a1, a2} и adom(C,r) = adom(C,s) = dom(C) = {c1, c2}. С атрибутом B дело обстоит несколько иначе, поскольку его домен не совпадает с активными доменами на отношениях s и r: dom(B)= {b1, b2, b3}, adom(B,r)= {b1, b2}, adom(B,s)= { b2}. Тогда домен схемы R и дополнение отношения r примут вид:

dom(R) = (

A

B

C )

dom(R)-r (

A

B

C )

 

a1

b1

c1

 

 

a1

b1

c2

 

 

a1

b1

c2

 

a1

b2

c2

 

a1

b2

c1

 

a1

b3

c1

 

a1

b2

c2

 

a1

b3

c2

 

a1

b3

c1

 

a2

b1

c1

 

a1

b3

c2

 

a2

b2

c1

 

a2

b1

c1

 

a2

b2

c2

 

a2

b1

c2

 

a2

b3

c1

 

a2

b2

c1

 

a2

b3

c2

 

a2

b2

c2

 

 

 

 

 

 

a2

b3

c1

 

 

 

 

 

 

a2

b3

c2

 

 

 

 

 

При рассмотрении активного домена и активного дополнения следует отметить, что в отношении r атрибут B никогда не принимает значения b3, что приводит к значительному уменьшению количества кортежей в результирующем отношении, что достаточно хорошо иллюстрирует приведенные выше рассуждения о влиянии размера домена на результат операции дополнения.

adom(R,r) = (

A

B

C )

adom(R,r)-r (

A

B

C )

 

a1

b1

c1

 

 

a1

b1

c2

 

 

a1

b1

c2

 

a1

b2

c2

 

a1

b2

c1

 

a2

b1

c1

 

a1

b2

c2

 

a2

b2

c1

 

a2

b1

c1

 

a2

b2

c2

 

a2

b1

c2

 

 

 

 

 

 

a2

b2

c1

 

 

 

 

 

 

a2

b2

c2

 

 

 

 

 

- 69 -

3.2.2. Оператор выбора

Рассмотрим теперь реляционные операторы и в первую очередь оператор, позволяющий получить выборку кортежей из имеющегося отношения.

Пусть имеется отношение r со схемой R, атрибут A R и a — значение из dom(A), тогда результатом выполнения оператора

выбора, который обозначается как A=a(r), будет отношение

со схемой R, в которое войдут все кортежи из r, для которых t(A) = a.

Так, для приведенного в качестве примера отношения студенты результатом выполнения оператора выбора ИМЯ=“Сергей“(студенты)

студенты(

ФАМИЛИЯ

ИМЯ

ГРУППА

БАЛЛ

ПОЛ )

 

 

 

 

 

 

 

 

Балашов

Андрей

342

5.00

М

 

Катеринченко

Андрей

342

4.59

М

 

Колычева

Лия

349

4.38

Ж

 

Малин

Сергей

345

4.87

М

 

Никулкин

Сергей

342

4.79

М

 

Фахрудинова

Тамара

342

4.12

Ж

 

Чертков

Максим

344

4.31

М

будет следующее отношение:

студенты` =

(ФАМИЛИЯ

ИМЯ

ГРУППА

БАЛЛ

ПОЛ )

 

 

 

 

 

 

 

 

Малин

Сергей

345

4.87

М

 

Никулкин

Сергей

342

4.79

М

Операторы выбора обладают рядом свойств, которые нам следует знать.

Они коммутируют относительно их композиции, то есть всегда имеет место тождество A=a( B=b(r))= B=b ( A=a(r)).

Так, в нашем примере результат выполнения двух последовательностей операторов будет одинаковым:

ИМЯ = “Сергей“( ГРУППА = 342(студенты) =

 

 

 

= ГРУППА = 342( ИМЯ = “Сергей“(студенты)

 

 

 

студенты``=

(ФАМИЛИЯ

ИМЯ

ГРУППА

БАЛЛ

ПОЛ )

 

Никулкин

Сергей

342

4.79

М

 

Другое свойство — дистрибутивность оператора выбора относительно бинарных булевых операций объединения, пересечения и теоретико-множественной разности, которые обозначим как :

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