Ответ
Представление (VIEW) — это виртуальная таблица, результат сохраненного SQL-запроса. Данные физически не хранятся в VIEW; она каждый раз вычисляется при обращении.
Основные цели использования:
- Безопасность: Скрыть сложность схемы или ограничить доступ пользователей только к определенным столбцам/строкам.
- Абстракция: Упростить сложные запросы с джойнами и агрегациями.
- Согласованность: Обеспечить единую бизнес-логику для доступа к данным.
Пример создания и использования:
-- Создание представления
CREATE VIEW high_earners AS
SELECT e.id, e.name, d.name AS department_name
FROM employees e
JOIN departments d ON e.department_id = d.id
WHERE e.salary > 100000;
-- Запрос к представлению как к обычной таблице
SELECT * FROM high_earners WHERE department_name = 'Engineering';
Преимущества:
- Упрощает сложные запросы.
- Обеспечивает уровень безопасности.
- Логическая независимость от структуры базовых таблиц.
Недостатки и ограничения:
- Производительность: Сложные VIEW без индексов могут работать медленно. В некоторых СУБД есть материализованные представления (Materialized Views) для кэширования результата.
- Обновляемость: Не все VIEW допускают операции
INSERT,UPDATE,DELETE(например, если в запросе естьDISTINCT,GROUP BY, агрегатные функции). - Зависимость от схемы: При изменении базовых таблиц VIEW может стать невалидной.