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

Реляционная алгебра. Полнота ограниченного множества операторов

Обозначим U – множество атрибутов (универсум), D – множество доменов, dom – полная функция из U в D, R = {R1, R2,…, Rp} – множество схем, RiU, d = {r1(R1), r2(R2),…, rp(Rp)} – множество наборов отношений,  – множество бинарных отношений над доменами из D.

Определение. Реляционная алгебра над U, D, dom, R, d, – семиместный кортеж B=( U, D, dom, R, d, , O), где O – множество операторов объединения, пересечения, разности, активного дополнения, проекции, естественного соединения, деления, переименования, которые используют атрибуты из U, и оператор выбора, использующий операторы из .

Теорема. Для выражения E над реляционной алгеброй существует выражение E’ над ней же, которое определяет ту же функцию и использует лишь операторы (1) постоянных отношений с единственным атрибутом и единственным кортежем, (2) выбора с одним сравнением, (3) естественного соединения, (4) проекции, (5) объединения, (6) разности, (7) переименования.

Следствие. Для реляционной алгебры с операцией дополнения в формулировке предыдущей теоремы изменится пункт (6): Для выражения E над реляционной алгеброй с операцией дополнения существует … (6) дополнения, (7) переименования.

Операторы расщепления и фактора

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

Определение. Пусть (t) – предикат на кортежах над R, тогда расщеплением r по называется пара отношений (s, s), каждое со схемой R, такие, что s = {tr | (t)} и s = { tr |(t)}. Обозначается эта пара SPLIT (r).

Пример

Рассмотрим отношение право, определённое в начале этой лекции. Пусть предикат (t) = {t(тип самолёта) = ТУ-134}  {t(тип самолёта) = ТУ-154}. Тогда SPLIT (право) = (s, s), где

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

Иванов

ИЛ-86

Сидоров

ИЛ-86

Сидоров

ЯК-40

К

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

Иванов

ТУ-134

Иванов

ТУ-154

Петров

ТУ-134

Петров

ТУ-154

Сидоров

ТУ-134

Сидоров

ТУ-154

Голубев

ТУ-154

онец примера

Определение. Пусть дано отношение r(R) и B1, B2,…, BkR, а LR. FACTOR(r; B1, B2,…, Bk; L) = (s, s), где s = s((RB1B2Bk)L), s = s (B1B2BkL), причём по L возможно осуществить соединение s и s.

Действие последнего оператора рассмотрим на примере.

Пример

Р

список (отдыхающий курит храпит)

Иванов

да

да

Петров

да

нет

Сидоров

нет

нет

Борисов

да

да

Васин

нет

нет

Алексеев

нет

нет

Григорьев

нет

да

ассмотрим список отдыхающих в некотором доме отдыха.

Н

список1(метка курит храпит)

1

да

да

2

да

нет

3

нет

да

4

нет

нет

список2(отдыхающий метка)

Иванов

1

Петров

2

Сидоров

4

Борисов

1

Васин

4

Алексеев

4

Григорьев

3

ам хочется разместить отдыхающих по номерам так, чтобы курильщики жили с курильщиками, храпящие с храпящими. Но для этого нам, может быть, удобнее пользоваться не исходным списком, а более компактными. Разделим исходное отношение на два. Первое представляет собой все комбинации свойств отдыхающих, обозначенные целыми числами (метками). Во втором вместо столбцов со свойствами появился столбец с метками. Это достигается применением оператора FACTOR(список; курит, храпит; метка) = (список1, список2).

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