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

Лекция 10 Операции реляционной алгебры (продолжение)

В этой лекции рассмотрим более сложные реляционные операторы. Некоторые из них являются обобщением ранее определенных операторов, другие эквивалентны их композиции.

Деление

Определение. Пусть r(R) и s(S) – отношения, SR. Положим R = R - S. Тогда r, разделенное на s – это отношение r(R)={t | tss trr: tr(R)=t & tr(S)=ts}.

Отношение r– частное от деления r на s, что обозначается r= rs. Иначе rs – это максимальное подмножество r множества R (r), такое, что r  s r. Соединение здесь – декартово произведение.

Пример

Д

право (пилот тип самолета)

Иванов

ТУ-134

Иванов

ТУ-154

Иванов

ИЛ-86

Петров

ТУ-134

Петров

ТУ-154

Сидоров

ТУ-134

Сидоров

ТУ-154

Сидоров

ИЛ-86

Сидоров

ЯК-40

Голубев

ТУ-154

ано отношение, отражающее право пилотирования определенных типов воздушных судов:

П

s (тип самолета)

ТУ-134

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

Д

правоq = q′(пилот)

Иванов

Петров

правоs = s′(пилот)

Иванов

Петров

Сидоров

ля получения информации о пилотах,

q (тип самолета)

ТУ-134

ТУ-154

ИЛ-86

имеющих право пилотирования самолетов из множества q или множества s может быть использована операция деления.

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

Постоянные отношения. Переименование атрибутов

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

Определение. Пусть A1,…,Anразличные атрибуты, а ci является константой из dom(Ai) для 1 i n, тогдас1 : А1,…,сn : An - постоянный кортежс1,…,сnнад схемой А1А2Аn.

Постоянное отношение над схемой А1А2Аn представляется как множество кортежей. Пусть cij – константа из dom(Ai ) для 1in и 1 j k, тогда

{ c11: A1, c12: A2 c1n: An,

c21: A1, c22: A2 c2n: An,

ck1: A1, ck2: A2 ckn: An}

представляет отношение, которое обычно записывалось бы так:

( A1

A2



An )

c11

c12



c1n

c21

c22



c2n









ck1

ck2



ckn

В случае, когда отношение состоит из одного кортежа, фигурные скобки иногда опускаются. Для кортежа с единственным атрибутом опускаются угловые скобки.

Утверждение. Постоянное отношение с любым числом кортежей k и любым числом атрибутов n может быть построено из постоянных отношений с одним кортежем и одним атрибутом с помощью операторов соединения и объединения.

Пример

О

использование(рейс дата номер самолета)

12

06.12.04

134-82

12

07.12.04

134-82

13

06.12.04

134-82

26

06.12.04

86-16

26

07.12.04

86-18

27

06.12.04

86-16

27

07.12.04

86-2

60

06.12.04

134-82

60

07.12.04

154-6

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

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

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

Определение. Пусть r – отношение со схемой R, AR, ВR – A, dom(A)=dom(B). Пусть R = (R – A)B. Тогда r с A, переименованным в В (обозначаетсяАВ(r)) есть отношение r(R ) = {t | tr, t (RA) = t(R – A) & t (B) = t (A)}.

Пример (продолжение)

О

s = {рейс, рейс2}(использование  {рейс рейс2}(использование)) =

= s (рейс рейс2)

12

13

13

12

60

12

12

60

13

60

60

13

12

12

13

13

60

60

26

27

27

26

26

26

27

27

тношение с искомыми парами рейсов:

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

Пусть r – отношение со схемой R,

A1,…, AkR;

B1,…, Bk R – (A1Ak); (1)

i: dom(Bi) = dom(Ai).

Обозначим одновременное переименование атрибутов A1,…, Ak в B1,…, Bk как A1,…, Ak B1,…, Bk(r). Благодаря условию (1) оно всегда может быть записано в виде последовательности переименований. Если это условие не выполняется, без введения дополнительных атрибутов такую замену выполнить нельзя. Очевидный пример – обмен A, B B, A .