Основы проектирования реляционных баз данных



Создание представлений - часть 2


Виртуальные таблицы можно определять с помощью других виртуальных таблиц.

Однако во многих реализациях SQL представления имеют сильные ограничения на выполнение операций обновления данных над ними. Некоторые СУБД не разрешают в определении представления использовать предложение ORDER BY. В некоторых диалектах SQL недопустимо выполнение обновлений на виртуальных таблицах, определенных на нескольких базовых таблицах, а также содержащих предложения GROUP BY, HAVING, опцию DISTINCT и функции агрегирования. Такие представления используются только для чтения. Например, в СУБД SQLBase представление используется только для чтения (read-only view), если в определяющей команде SELECT:

  • предложение FROM задействует имена более одной таблицы или представления;
  • применяется:
    • опция DISTINCT;
    • предложение GROUP BY;
    • предложение HAVING;
    • функция агрегирования.

Иногда запрещается использовать и подзапросы.

В противном случае представление считается обновляемым представлением (updatable view). Для обновляемых представлений предусмотрена опция WITH CHECK OPTION. Когда она указана, любая вставка и обновление через данное представление будет выполняться только, если представление отвечает своему определению (данные в таблице могут быть изменены непосредственно). В противном случае такой проверки не делается. Если представление предназначено только для чтения или применяет подзапрос, то данная опция не должна использоваться.

Команда ALTER TABLE с такими же ограничениями также выполнима на виртуальных таблицах.




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