Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Неделя 09 Лекция 1 (13).doc
Скачиваний:
1
Добавлен:
13.11.2019
Размер:
130.05 Кб
Скачать

13.6. Использование фразы with checк/option.

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

В общем случае фраза WITH CHECK OPTION оператора CREATE VIEW используется для предотвращения миграции строк из представления.

Если для обновляемого представления указан параметр WITH CHECK OPTION, будут отвергаться все попытки добавления новых или изменения существующих записей таким образом, чтобы нарушалось условие WHERE оператора SELECT данного представления.

Эта функция может оказаться настолько полезной, что работать с представлениями окажется удобнее, чем с таблицами базы данных. В том случае, когда оператор INSЕRT или UРDATE нарушает условия, указанные в предложении WHERE определяющего запроса, выполнение затребованной операции отменяется. В результате появляется возможность реализовать в базе данных дополнительные ограничения, направленные на сохранение корректности и целостности данных. Следует отметить, что фразу WITH CHECK OPTION можно указывать для обновляемых представлений.

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

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

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

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

  • актуальность данных внутри представлений;

  • повышение защищенности данных;

  • снижение сложности структуры запросов;

  • дополнительные удобства для пользователей;

  • возможности настройки данных, предназначенных для просмотра;

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

Представлениям данных также присущи следующие недостатки:

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

  • структурные ограничения;

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

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

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

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

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

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

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

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

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

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

Ограниченные возможности обновления. Невозможность обновления информации в представлении, построенных на базе нескольких таблиц.

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

Снижение производительности. Использование представлений связано с определенным снижением производительности.

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

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

Выполнение разрешений представлений связано с использованием дополнительных вычислительных ресурсов.