Общая интерпретация реляционных операций

 

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

 

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

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

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

· При выполнении декартова произведения (TIMES) двух отношений, перечение заголовков которых пусто, производится отношение, кортежи которого произодятся путем объединения кортежей первого и второго операндов.

· Результатом ограничения (WHERE) отношения по некоторому условию является отношение, включающее кортежи отношения-операнда, удовлетворяющее этому условию.

· При выполнении проекции (PROJECT) отношения на заданное подмножество множества его атрибутов производится отношение, кортежи которого являются соответствующими подмножествами кортежей отношения-операнда.

· При соединении (JOIN) двух отношений по некоторому условию образуется результирующее отношение, кортежи производятся путем объединения кортежей первого и второго отношений и удовлетворяют этому условию.

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

· Операция переименования (RENAME) производит отношение, тело которого совпадает с телом операнда, но имена атрибутов изменены.

· Операция присваивания (:=) позволяет сохранить результат вычисления реляционного выражения в существующем отношении БД.

 

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

 

RENAME ³ RESTRICT = PROJECT ³ TIMES = JOIN = INTERSECT = DIVIDE BY ³ UNION = MINUS

 

В другой форме приоритеты операций показаны на рис. 3.1. Вычисление выражения производится слева направо с учетом приоритетов операций и скобок.

 

Операция Приоритет
RENAME
RESTRICT
PROJECT
TIMES
JOIN
INTERSECT
DIVIDE BY
UNION
MINUS

 

Рис. 3.1. Таблица приоритетов операций традиционной реляционной алгебры