Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
50
Добавлен:
10.02.2015
Размер:
171.78 Кб
Скачать

Преимущества и недостатки представлений

Практика ограничения доступа некоторых пользователей к данным посредством создания специализированных представлений, безусловно, имеет значительные преимущества перед предоставлением им прямого доступа к таблицам базы данных. Однако использование представлений в среде SQL не лишено недостатков. В этом разделе мы кратко обсудим как достоинства, так и недостатки, присущие представлениям языка SQL. Эти преимущества и недостатки перечислены в таблице.

Преимущество

Недостаток

Независимость от данных

Ограниченные возможности обновления

Актуальность

Структурные ограничения

Повышение защищенности данных

Снижение производительности

Снижение сложности

Дополнительные удобства

Возможность настройки

Обеспечение целостности данных

Преимущества

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

Независимость от данных

С помощью представлений можно создать согласованную, неизменную картину структуры базы данных, которая будет оставаться стабильной даже в случае изменения формата исходных таблиц (например, добавления или удаления столбцов, изменения связей, разделения таблиц, их реструктуризации или переименования). Если в таблицу добавляются или из нее удаляются столбцы, не используемые в представлении, то изменять определение этого представления не потребуется. Если структура исходной таблицы переупорядочивается или эта таблица разделяется, то можно будет создать представление, позволяющее пользователям работать с виртуальной таблицей прежнего формата. В случае разделения исходной таблицы прежний формат может быть виртуально восстановлен с помощью представления, построенного на основе соединения вновь созданных таблиц, — конечно, если это будет возможно. Последнее условие можно обеспечить с помощью помещения во все вновь созданные таблицы первичного ключа прежней таблицы. Допустим, в исходном виде таблица Client имела следующий вид:

Client (clientNo, fName, IName, address, telNo, prefType, maxRent)

Допустим также, что возникла необходимость разбить эту исходную таблицу на две новые таблицы, ClientDetails и ClientReqts:

ClientDetails (clientNo, fName, IName, telNo)

ClientReqts (clientNo, prefType, maxRent)

Пользователи и приложения смогут по-прежнему иметь доступ к данным с использованием формата исходной таблицы, если определить представление Client, построенное на базе естественного соединения таблиц ClientDetails и ClientReqts, с помощью соединительного столбца clientNo:

CREATE VIEW Client

AS SELECT cd.clientNo, fName, IName, telNo, prefType, maxRent

FROM ClientDetails cd, ClientReqts cr

WHERE cd.clientNo = cr.clientNo;

Актуальность

Изменения в любой из таблиц базы данных, указанных в определяющем запросе, немедленно отображаются на содержимом представления.

Повышение защищенности данных

Каждому пользователю права доступа к данным в базе могут быть предоставлены исключительно через ограниченный набор представлений, включающих только то подмножество данных, с которыми пользователю необходимо работать. Подобный подход позволяет существенно ужесточить контроль за доступом отдельных категорий пользователей к информации в базе данных и контролировать такой доступ.

Снижение сложности

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

Дополнительные удобства

Создание представлений может обеспечивать пользователей дополнительными удобствами — например, позволить им работать только с той частью данных, которая им действительно необходима. В результате можно добиться максимального упрощения той модель; данных, с которой будет работать каждый конечный пользователь.

Возможность настройки

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

Обеспечение целостности данных

Если в операторе CREATE VIEW будет указана конструкция WITH CHECK OPTION, то СУБД будет осуществлять контроль за тем, чтобы в исходные таблицы базы данных не была введена ни одна из строк, не удовлетворяющих конструкции WHERE в определяющем запросе. Этот механизм гарантирует целостность данных в представлении.

Недостатки

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

Ограниченные возможности обновления

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

Структурные ограничения

Структура представления устанавливается в момент его создания. Если определяющий запрос представлен в форме SELECT * FROM..., то символ * ссылается на все столбцы, существующие в исходной таблице на момент создания представления. Если впоследствии в исходную таблицу базы данных будут добавлены новые столбцы, то они не появятся в данном представлении до тех пор, пока это представление не будет удалено и вновь создано.

Снижение производительности

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

Соседние файлы в папке Bazy_dannykh_1_kurs_2_semestr_2011-2012