Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебно-практическое пособие ТЭИС.doc
Скачиваний:
12
Добавлен:
01.03.2025
Размер:
8.64 Mб
Скачать

4.3.2. Операции над отношениями

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

1. Объединение (для совместимых отношений). Результатом объединения двух отношений R1 и R2 является отношение T, включающее все строки, которые есть либо в отношении R1, либо в отношении R2. Обозначение - T=R1R2.

2. Пересечение (для совместимых отношений). Результатом пересечения двух отношений R1 и R2 является отношение T, включающее все строки, которые есть и в отношении R1 и в отношении R2. Обозначение - T=R1R2.

3. Разность (для совместимых отношений). Результатом разности двух отношений R1 и R2 является отношение T, включающее все строки отношения R1, которых нет в отношении R2. Обозначение - T=R1\R2

Пример. В табл.4.6 представлены два отношения R1 и R2 и результаты выполнения операций T1=R1R2, T2=R1R2 и T3=R1\R2

Таблица 4.6

Операции объединения, пересечения и разности отношений

R1

R2

A

B

A

B

x

1

x

1

w

3

x

4

e

2

y

5

x

4

s

2

T1=R1R2

T2=R1R2

T3=R1\R2

A

B

A

B

A

B

x

1

x

1

w

3

w

3

x

4

e

2

e

2

x

4

y

5

s

2

4. Декартово произведение (отношения могут иметь разные схемы). Результатом декартова произведения отношений R1 и R2 является отношение T, которое составляют все строки, полученные в результате конкатенации строк отношений R1 и R2. Конкатенацией строки (a1,a2,...,an) отношения R1 и строки (b1,b2,...,bm) отношения R2 является строка (a1,a2,...,an,b1,b2,...,bm). Степень результирующего отношения T равна сумме степеней отношений R1 и R2, а мощность отношения T равна произведению мощностей отношений R1 и R2. Обозначение - T=R1R2.

Пример. В табл.4.7 представлены отношения СТУДЕНТЫ и ЭКЗАМЕНЫ, а также результат декартова произведения этих отношений - отношение ВЕДОМОСТИ.

Таблица 4.7

Операция декартова произведения отношений

СТУДЕНТЫ

ЭКЗАМЕНЫ

Фамилия

Предмет

Дата

Иванов

Математика

10.01.97

Петров

Физика

15.01.97

Сидоров

ВЕДОМОСТИ=СТУДЕНТЫЭКЗАМЕНЫ

Фамилия

Предмет

Дата

Иванов

Математика

10.01.97

Иванов

Физика

15.01.97

Петров

Математика

10.01.97

Петров

Физика

15.01.97

Сидоров

Математика

10.01.97

Сидоров

Физика

15.01.97

5. Образ. В отношении T(A,B) образом значения a атрибута А является множество значений атрибута В, и каждый элемент b этого множества образует вместе с а некоторую строку (или часть строки) отношения Т. Эта операция обозначается следующим образом:

im B(a) = {b1, b2,...,bk}.

Пример. Пусть имеем исходное отношение СПИСОК_ПРОГРАММИСТОВ (табл.4.8). Необходимо выделить программистов, владеющих языком «Си». Такая задача решается путем нахождения образа im Фамилия («Си») = {«Иванов», «Петров»}

6. Проекция. Это операция, которая переносит в результирующее отношение T столбцы (атрибуты) исходного отношения R, указанные в условии операции. Кортежи-дубликаты (одинаковые строки) в результате должны отсутствовать. Обозначение - T=R[список атрибутов].

Для примера выполним проекцию по атрибутам «Фамилия» и «Работает над проектом» для отношения СПИСОК_ПРОГРАММИСТОВ. В результате получим отношение ИСПОЛНИТЕЛИ_ПРОЕКТОВ, представленное в табл.4.8.

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

8. Соединение. Выполняется над двумя исходными отношениями R1 и R2. Каждая строка первого отношения сопоставляется по очереди со всеми строками второго, и, если для этой пары соблюдается условие соединения (УС), то они сцепляются и образуют очередную строку в результирующем отношении. Обозначение операции - T=R1[УС]R2. Условие соединения имеет вид:

Имя_атрибута1<знак сравнения>Имя_атрибута2,

причем атрибут1 находится в одном исходном отношении, а атрибут2 - в другом.

Таблица 4.8

Отношение «СПИСОК ПРОГРАММИСТОВ» и

результат выполнения проекции

СПИСОК_ПРОГРАММИСТОВ

Фамилия

Язык

Работает_над_проектом

Иванов

Си

p1

Иванов

Паскаль

p1

Петров

Си

p2

Петров

Фортран

p2

Петров

Паскаль

p2

Сидоров

Паскаль

p2

Сидоров

Фортран

p2

ИСПОЛНИТЕЛИ_ПРОЕКТОВ=

СПИСОК_ПРОГРАММИСТОВ[Фамилия, Работает_над_проектом]

Фамилия

Работает_над_проектом

Иванов

p1

Петров

p2

Сидоров

p2

Практически наиболее важный частный случай соединения называется натуральным (естественным) соединением и имеет следующие особенности:

  • знак сравнения в условии соединения - равенство,

  • параметры Имя_атрибута1 и Имя_атрибута2 должны совпадать,

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

Операция натурального соединения обладает свойствами коммутативности и ассоциативности. Свойство коммутативности означает, что операции R[УС]S и S[УС]R порождают одно и то же отношение. Свойство ассоциативности означает, что операции (R[УС]S)[УС]T и R[УС](S[УС]T) дают одинаковый результат.

Пример. Пусть даны два исходных отношения - СПИСОК и ОКЛАДЫ, результат натурального соединения данных отношений по атрибутам «Занимаемая должность» и «Должность» дает отношение СПИСОК1, см. табл.4.9.

Кроме натурального существуют еще два вида соединений:

1.Тетасоединение - это соединение, при котором степень результирующего отношения равна сумме степеней исходных (т.е. оба атрибута соединения входят в список атрибутов результирующего отношения), а условие соединения может быть любым. Если в условии соединения используется равенство, тогда тетасоединение называется эквисоединением.

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

Таблица 4.9

Операция натурального соединения отношений

СПИСОК

ОКЛАДЫ

Фамилия

Таб_номер

Занимаемая_должность

Должность

Оклад

Иванов

35006

Инженер

Директор

80000

Петров

35001

Директор

Бухгалтер

32000

Сидоров

38015

Бухгалтер

Инженер

35000

Федоров

45004

Инженер

СПИСОК1=СПИСОК [Занимаемая_должность=Должность] ОКЛАДЫ

Фамилия

Таб_номер

Занимаемая должность

Оклад

Иванов

35006

Инженер

35000

Петров

35001

Директор

80000

Сидоров

38015

Бухгалтер

32000

Федоров

45004

Инженер

35000