Представления, VIEW
Хорошо спроектированные приложения обычно предоставляют открытый интерфейс, скрывая детали реализации, что позволяет вносить изменения в дизайн без влияния на конечных пользователей.
При разработке вашей базы данных вы можете достичь аналогичного результата, закрывая таблицы и предоставляя доступ к данным только через набор представлений.
В этой статье мы рассмотрим, что такое представления, как они создаются и для чего они могут быть полезными.
Что такое представление
Представление — объект базы данных, являющийся результатом выполнения запроса к базе данных, определённого с помощью оператора SELECT, в момент обращения к представлению.
Представления иногда называют «виртуальными таблицами». Это связано с тем, что представление для пользователя выглядит как таблица, но фактически не хранит данных, а извлекает их из других таблиц в момент обращения.
Если данные в основной таблице меняются, пользователь получает актуальные данные при обращении к представлению, использующему эту таблицу. При этом представления не кэшируют результаты выборки из таблицы в процессе работы.
Пример создания представления
В качестве простого примера предположим, что вы хотите частично скрыть адреса электронной почты в таблице пользователей (Users).
Это может быть полезно, например, если политика вашей компании не позволяет всем использовать конфиденциальную информацию об пользователях. Поэтому вместо того, чтобы разрешить прямой доступ к таблице пользователей (Users), вы определяете представление с именем ViewUsers и требуете, чтобы все использовали его для доступа к данным о пользователях.
Вот пример определения этого представления:
CREATE VIEW ViewUsers AS SELECT id, name, CONCAT(SUBSTR(email, 1, 2), '****', SUBSTR(email, -4)) AS email FROM Users;
Представление в SQL-запросе выглядит и используется как обычная таблица:
SELECT * FROM ViewUsers;
Если вы хотите узнать, какие столбцы доступны в представлении, вы можете использовать оператор DESCRIBE:
DESCRIBE ViewUsers;
Общий синтаксис представления
CREATE [OR REPLACE] VIEW имя_представления [(имена_полей_представления)] AS select_выражение
OR REPLACE — при использовании этого опционального параметра в случае, если представление с таким именем уже существует, старое представление будет удалено, а новое создано. В противном случае, при попытке создать представление с существующим именем, возникнет ошибка.
Зачем нужны представления
Упрощение сложных запросов
Представления используются для упрощения сложных запросов и создания абстракции между пользователем и базой данных. Они могут скрывать сложность структуры данных и предоставлять упрощённый интерфейс для доступа к данным.
Улучшение производительности
Создание представлений, которые инкапсулируют сложные запросы, может помочь оптимизировать выполнение этих запросов. Это может привести к более быстрому выполнению запросов и улучшению общей производительности базы данных.
Обеспечение безопасности
Представления могут использоваться для обеспечения безопасности конфиденциальных данных. Создание представлений, которые ограничивают доступ к определённым столбцам или строкам данных, позволяет администраторам ограничить доступ к чувствительной информации. Это помогает гарантировать, что только авторизованные пользователи имеют доступ к конфиденциальным данным.
Итоги
Представления являются важным инструментом в SQL, который позволяет упростить сложные запросы, стандартизировать доступ к данным, повысить производительность и обеспечить безопасность данных.
Давайте проверим как вы усвоили тему: выберите правильное утверждение на вопрос «Что такое представление в базе данных?»