Скачиваний:
60
Добавлен:
01.04.2014
Размер:
627.71 Кб
Скачать

4.4. Виды отношений

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

1. Прежде всего, именованное отношение — это переменная отношения, определен­ная в СУБД посредством операторов create base relation, create view и create snapshot (в используемом нами синтаксисе). Об операторе create view рассказыва­лось в главе 3, а об операторе create snapshot речь пойдет далее в этой главе.

2. Базовым отношением называется именованное отношение, которое не является про­изводным (т.е. базовое отношение является автономным). На практике базовые — это те отношения, которые считаются достаточно важными (среди рассматриваемых в базе данных), и проектировщик базы данных счел нужным дать им название и сде­лать их непосредственной частью базы данных, в отличие от менее важных времен­ных отношений (таких как, например, результат запроса).

3. Производным отношением называется отношение, определенное (посредством ре­ляционного выражения) через другие именованные отношения и, в конечном сче­те, через базовые отношения.

Предостережение. Помните, что некоторые авторы под "производным" подразу­мевают "выражаемое" (смотрите следующий пункт).

4. Выражаемым отношением называется отношение, которое можно получить из на­бора именованных отношений посредством некоторого реляционного выражения. Конечно, каждое именованное отношение является выражаемым отношением, но не наоборот. Базовые отношения, представления, снимки (об этом ниже), промежуточ­ные и окончательные результаты отчетов — все это выражаемые отношения. Иначе говоря, множество всех выражаемых отношений — это в точности множество всех базовых отношений и всех производных отношений.

5. Представлением называется именованное производное отношение. (Представле­ния, как и базовые отношения, являются переменными отношений.) Представле­ния виртуальны — они представлены в системе исключительно через определе­ние в терминах других именованных отношений.

6. Снимки (snapshot) — это именованные производные отношения, такие же, как представления (и подобно представлениям они являются переменными отношений). Однако в отличие от представлений снимки реальны, а не виртуаль­ны, т.е. представлены не только с помощью определения в терминах других име­нованных отношений, но и также (по крайней мере, концептуально) своими от­дельными данными. Вот пример:

CREATE SNAPSHOT SC AS

( ( S JOIN SP ) WHERE P# = 'P2' ) [ S#, CITY ]

REFRESH EVERY DAY ;

Создание снимка похоже на выполнение запроса, за исключением того, что результат такого запроса сохраняется в базе данных под определенным именем (SC в нашем примере) как отношение, доступное только для чтения, и периодически (в нашем при­мере — каждый день) снимок "обновляется", т.е. его текущее значение сбрасывается, запрос выполняется снова и его результат становится новым значением снимка. При­менение снимков будет обсуждаться в следующих частях книги.

7. Результатом запроса называется неименованное производное отношение, служа­щее результатом некоторого определенного запроса. База данных не обеспечивает постоянного существования для результатов запросов (чтобы сохранить результат запроса, его можно присвоить некоторому именованному отношению).

8. Промежуточным результатом называется неименованное производное отношение, являющееся результатом некоторого реляционного выражения, вложенного в дру­гое, большее выражение. Например, рассмотрим такое выражение:

( ( S JOIN SP ) WHERE Р# = 'Р2' ) [ S#, CITY ]

Отношение, являющееся результатом выражения s join sp, будет промежуточным результатом; назовем его tempi. Тогда отношение, являющееся результатом выраже­ния tempi where p# = 'р2', также будет промежуточным результатом; назовем его ТЕМР2. А отношение, являющееся результатом выражения ТЕМР2 [s#, city], будет окончательным результатом. База данных не обеспечивает постоянного существования для промежуточных результатов, как и для окончательных результатов (в действитель­ности, как уже упоминалось в главе 3, они могут не существовать в виде полной мате­риализованной таблицы как таковой).

9. И, наконец, хранимым отношением называется отношение, которое поддерживает­ся в физической памяти "непосредственным" образом (конечно, при подходящем определении "непосредственности"; более подробное обсуждение этого вопроса выходит за рамки данной главы).

В заключение добавим, что хранимое отношение не всегда совпадает с базовым отношением. Набор хранимых отношений должен быть таким, чтобы все базовые от­ношения, а значит, и все выражаемые отношения можно было произвести из него; но при этом не требуется, чтобы все хранимые отношения были базовыми отношениями, и не требуется, чтобы все базовые отношения были хранимыми. Более подробное об­суждение этого вопроса было приведено в главе 3.

Соседние файлы в папке Дейтл Введ в БД