Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МР - занятие № 2.doc
Скачиваний:
2
Добавлен:
24.08.2019
Размер:
308.22 Кб
Скачать
    1. Базовые переменные отношения и представления

На основе реляционных значений, присвоенных некоторому множеству переменных-отношений, реляционные выражения позволяют получить множество реляционных значений.

Исходные (заданные) переменные-отношения называются базовыми переменными-отношениями, а присвоенные им значения называются базовыми отношениями (или значениями базовых отношений).

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

Реляционные системы, очевидно, должны предоставлять средства для создания, в первую очередь, базовых переменных-отношений. В языке SQL, например, эта функция обеспечивается оператором CREATE TABLE (здесь слово TABLE используется в узком смысле, как базовая переменная-отношение). Эти переменные-отношения обязательно должны быть поименованы:

CREATE TABLE EMP … ;

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

Пример 2.5. Определение представления можно осуществить следующим образом:

CREATE VIEW TOPEMP AS

(EMP WHERE SALARY >= 19K) { EMP#, ENAME, SALARY }

За ключевым словом AS расположено выражение фактически определяющее представление, которое не вычисляется, а запоминается системой. С точки зрения пользователя появилась новая переменная-отношение с именем TOPEMP, имеющая текущее значение, которое показано в незатененных участках. Пользователь должен иметь возможность оперировать этим представлением так же, как если бы оно бы было базовой переменной-отношением.

TOPEMP

EMP#

ENAME

DEPT#

SALARY

С1

Иванов

Отд1

21K

С2

Петров

Отд1

18K

С3

Никитин

Отд2

20K

С4

Буденко

Отд2

19K

Рис. 2.4. Переменная-отношение TOPEMP (затененные участки) как представление базовой переменной-отношения EMP

Однако для представления не существует отдельной копии данных. Представление – это, в некотором смысле, окно, через которое можно видеть часть значения базовой переменной-отношения EMP. Следовательно, все изменения в базовой переменной-отношении будут автоматически и немедленно видны в подобном окне. Аналогично, изменения, внесенные через представление TOPEMP, будут видны и в базовой переменной-отношении EMP.

Пример 2.6. Ниже представлен пример запроса, использующего представление TOPEMP:

( TOPEMP WHERE SALARY < 21K) { EMP#, SALARY }

Результат приведен на рис. 2.5. С концептуальной точки зрения операции с представлениями фактически реализуются посредством замены ссылки на имя представления выражением, которое определяет представление (хранящееся в каталоге). Тогда выражение преобразуется следующим образом:

( (EMP WHERE SALARY > = 19K) { EMP#, ENAME, SALARY}

WHERE SALARY < 21K) { EMP#, SALARY }

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

( EMP WHERE SALARY > = 19K AND SALARY < 21K) { EMP#, SALARY }

EMP#

ENAME

SALARY

С3

Никитин

20K

С4

Буденко

19K

Рис. 2.5. Результат выполнения запроса над представлением TOPEMP

Иными словами, первоначальная операция над представлением конвертируется в эквивалентную операцию над соответствующей базовой переменной-отношением (при этом она оптимизируется).

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

Аналогом внешнего уровня в архитектуре ANSI/SPARC в реляционных системах является множество из нескольких переменных-отношений, каждая из которых является представлением в реляционном смысле. «Внешняя схема» состоит из определений таких представлений.