Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / Горбунов / УП_ОПТ2 / Р5_РОпер.doc
Скачиваний:
33
Добавлен:
16.04.2013
Размер:
1.17 Mб
Скачать
      1. Унарная операция проекция.

Не помогает счастье нерадивым ” СОФОКЛ, 496-406гг. до н.э.

Если две проекции выполняются последовательно, то вторая из них поглощает первую: если Х применяется к результату Y(r(R)), то результат будет таким же как применение Y к результату Х(r(R)) и таким же как (YХ)(r(R)). Если X  Y  R, то X(r(R))=X(Y(r(R))). Между операциями проекции и булевыми операциями над реляционными отношениями существуют связи, условия которых несложно вывести.

Операция проекции имеет фундаментальный характер. Обратим внимание, что в схема отношения однозначно определяет их значения в кортеже экземпляра. Мы рассматриваем каждый из них как независимый элемент как схемы, так и в каждом кортеже в экземплярах отношений с этой схемой. В программировании используются составные типы данных типа записи или структуры. Если этот тип данных определён, то его использование как типа атрибута есть некоторое подмножество базовых типов данных (БТД). Следовательно, мы можем построить иерархические схемы реляционных отношений, листья которых есть атрибуты БТД, а остальные будут составного типа данных. Операция проекции по атрибуту составного типа данных (а это подмножество атрибутов БДТ) имеют смысл активного домена.

      1. Унарная операция селекция.

Слушай и молчи...” СОФОКЛ, 496-406гг. до н.э.

Смысл операции селекции (иногда её называют операцией выбора) – оставить в экземпляре схемы только те кортежи, которые удовлетворяют некоторому условию Х. Это условие есть предикат (т.е. принимает только два значения “ложь” и “истина”), заданный на значвениях данного кортежа.

Операции селекции коммутируют относительно их композиции и страведливо тождество:

Х1(Х2(а(А))) = Х2(Х1(а(А))) = Х1Х2(а(А)).

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

Х(а1(А)  а2(А)) = Х(а1(А))  Х(а2(А)),

где  - булева операция, например , , - и т.д.

Проекция коммутирует с селекцией, когда множество атрибутов для селекции Х1 есть подмножество атрибутов проекции Х2

Р(Х1)(Х2(а(А))) = Х2(Р(Х1)(а(А))).

      1. Бинарная операция соединение.

Время открывает все сокрытое и скрывает все ясное” СОФОКЛ, 496-406гг. до н.э.

Соединение, вероятно, самая важная реляционная операция. Она имеет столько свойств, что им посвящаются самостоятельные исследования. На нашем примере операция соединения связывает два экземпляра реляционных отношений p(ABC) и q(BCD) по их общим атрибутам BC. Для понимания операции отметим, что можно выполнить операции проекции операндов по общему подмножеству атирибутов, т.е.

pp(BC) = BC(p(ABC)) и qq(BC) = BC(q(BCD)).

Найдем общие кортежи этих проекций с помощью булевой операции пересечения

pq(BC) = pp(BC))  qq(BC).

По определению полученный результат есть множество кортежей, для каждого из которых можно построить последовательность экземпляров из одного кортежа

pq1(BC), pq2(BC), ..., pqk(BC) ..., pqK(BC).

Последовательно используем данные «однокортежные» экземпляры со схемой ВС для получения связанных с ними экземпляров со схемой ABCD, т.е посторим последовательность экземпляров

s1(ABCD), s2(ABCD), ..., sk(ABCD), ..., sK(ABCD).

Для этого достаточно по значению атрибутов к-ого кортежа (т.е. значения pqk(BC)) выполнить селекцию экземпляров реляционных отношений - операндов соединения. Будут выбираться только те кортежи, которые совпали по значениям атрибутов В и С с эталонным. В результате образуются экземпляры реляционных отношений pk(АBC) и qk(BCD). Их декартово произведение и образует реляционное отношение sk(ABCD).

Конечный результат операции соединения есть объенинение последней последовательности, т.е.

s(ABCD) = s1(ABCD)  s2(ABCD)  sk(ABCD) ...  sK(ABCD).

Соседние файлы в папке УП_ОПТ2