Классика баз данных - статьи

       

Представление не обязательно выводится из


Представление не обязательно выводится из одного отношения. Например, в примере D6 представление определяется как соединение двух таблиц с помощью запроса, аналогичного Q13. Пример D6 также показывает, что к представлению можно сделать запрос, как если бы оно было хранимым отношением. При определении представление на основе соединения, такое как в D6, пользователи должны остерегаться "ловушки соединения", описанной Коддом [1]. В терминах D6, из тех фактов, что служащий X работает в отделе Y, и отдел Y находится в месте Z, не обязательно следует, что служащий X находится в месте Z.

D6. Определить представление PROGS, состоящее из имен и зарплат всех программистов, а также мест расположения их отделов.

DEFINE VIEW PROGS (NAME,SALARY,HOMEBASE) AS SELECT EMP.NAME,EMP.SAL,DEPT.LOC FROM EMP,DEPT WHERE EMP.DNO = DEPT.DNO AND EMP.JOB = "PROGRAMMER"

Используя приведенное выше представление, найти среднюю зарплату программистов в Денвере.

SELECT AVG(SAL) FROM PROGS WHERE HOMEBASE = "DENVER"

Иногда может потребоваться расширить существующую таблицу, добавив в нее новый столбец, например, чтобы можно было создать новое приложение. SEQUEL 2 позволяет добавлять столбцы в правую часть существующих таблиц посредством оператора EXPAND, в котором указываются имя и тип данных нового столбца. Считается, что существующие кортежи имеют в новом столбце null-значения до тех пор, пока они не будут модифицированы. На запросы и представления, которые были написаны в терминах существующей таблицы, расширение не влияет (за исключением тех запросов, которые включают раздел SELECT *).

D7. Добавить в таблицу DEPT новый столбец NEMPS целого типа.

EXPAND TABLE DEPT ADD COLUMN NEMPS(INTEGER)

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

D8. Удалить представление D50.

DROP VIEW D50

Таблица или другой объект могут быть удалены только тем пользователем, который их создал.

Содержание  Назад  Вперед