Преимущества
В случае выполнения СУБД на отдельно стоящем персональном компьютере ис- пользование представлений обычно имеет целью лишь упрощение структуры запро- сов к базе данных. Однако в случае многопользовательской сетевой СУБД представ- ления играют ключевую роль в определении структуры базы данных и организации ' защиты информации. Основные преимущества использования представлений в по- добной среде заключаются в следующем.
Независимость от данных
С помощью представлений можно создать согласованную, неизменную картину структуры базы данных, которая будет оставаться стабильной даже в случае изменения формата исходных таблиц (например, добавления или удаления столбцов, изменения связей, разделения таблиц, их реструктуризации или переименований). Если в .таблицу добавляются или из нее удаляются столбцы, не используемые в представлении, то изменять определение этого представления не потребуется. Если структура исходной таблицы переупорядочивается или эта таблица разделяется, то можно будет создать представление, позволяющее пользователям работать с виртуальной таблицей прежнего формата. В случае разделения исходной таблицы, прежний формат может быть виртуально восстановлен с помощью представления, построенного на основе соединения вновь созданных таблиц — конечно, если это будет возможно. Последнее условие можно обеспечить с помощью помещения во все вновь созданные таблицы первичного ключа прежней таблицы. Допустим, в исходном виде таблица Renter имела следующий вид:
Renter (Rno, FName, LName, Address, Tel Но, Pref Туре, Max Rent, Bno)
Допустим также, что возникла необходимость разбить эту исходную таблицу на две новые таблицы Renter Details и Renter Reqts:
Renter Details (Rno, FName, LName, Address, Tel Но, Bno) Renter Reqts (Rno, Pref Туре, Max Rent)
Пользователи и приложения смогут по-прежнему иметь доступ к данным с использованием формата исходной таблицы, если определить представление Renter, построенное на базе соединения таблиц Renter Details и Renter Reqts, выполненного по ключу Rno:
CREATE VIEW renter
AS SELECT rd.rno, fname, 1name, address, tel по, pref type, max rent, bno FROM renter details rd, renter reqts rq WHERE rd.rno = rq.rno;
Актуальность
Изменения в любой из таблиц базы данных, указанных в определяющем запросе, немедленно отображаются на содержимом представления.
Повышение защищенности данных
Каждому пользователю права доступа к данным в базе могут быть предоставлены исключительно через ограниченный набор представлений, включающих только то подмножество данных, с которыми пользователю необходимо работать. Подобный подход позволяет существенно ужесточить контроль за доступом отдельных категорий пользователей к информации в базе данных.
Снижение сложности
Использование представлений позволяет упростить структуру запросов, объединив данные из нескольких таблиц в единственную виртуальную таблицу. В результате многотабличные запросы сводятся к простым запросам к одному представлению.
Дополнительные удобства
Создание представлений может обеспечивать пользователей дополнительными удобствами — например, позволить им работать только с той частью данных, которая им действительно необходима. В результате можно добиться максимального упрощения той модели данных, с которой будет работать каждый конечный пользователь.
Возможность настройки
Представления являются удобным средством настройки того образа базы данных, с которым будет работать каждый из пользователей. В результате одни и те же таблицы могут быть предъявлены различным пользователям в совершенно разном виде.
Обеспечение целостности данных
Если в операторе CREATE VIEW будет указана фраза WITH CHECK OPTION, то СУБД бу- дет осуществлять контроль за тем, чтобы в исходные таблицы базы данных не была введена ни одна из строк, не удовлетворяющих предложению WHERE в определяющем запросе. Этот механизм гарантирует целостность данных в представлении.