Каковы преимущества использования представления в базе данных?

Возможный дубликат:
Почему используется представление базы данных?

Так как я всегда могу использовать инструкцию Select из исходных таблиц вместо создания представления и используя выбор из него, интересно, какие выгоды от использования представления в базе данных?

Ответ 1

Это упрощает вызовы и обеспечивает слой косвенности.

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

Кроме того, если вы используете представление вместо таблицы таким образом, в будущем, если вам нужно перенести столбец, вы можете легко сделать это и только внести изменения в представление.

Ответ 2

Помимо очевидных преимуществ, о которых упомянул Одед, вы иногда можете резко повысить скорость, используя материализованные представления. Из Википедии:

В системе управления базой данных, следующей за реляционной моделью, представление представляет собой виртуальную таблицу, представляющую результат запроса к базе данных. Всякий раз, когда запрашивается или обновляется обычная таблица представлений, СУБД преобразует их в запросы или обновления по базовым базовым таблицам. Материализованное представление использует другой подход, в котором результат запроса кэшируется как конкретная таблица, время от времени может обновляться из исходных базовых таблиц.

Ответ 3

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

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

Другие преимущества (перефразируя Chris Date)

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

Возможность "СУХОЙ" для приложений. Представление может обеспечить простой публичный интерфейс для сложного оператора SELECT, поэтому приложения могут просто SELECT column-list FROM my-easy-view.

Различные пользователи могут видеть одни и те же данные по-разному.