Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Представления и работа с ними

 

Представлением (VIEW) называется SQL-запрос на чтение, которому присвоили имя и сохранили в БД. Представление является виртуальной таблицей, то есть обеспечивает доступ к результатам запроса таким образом, как если бы они были простой таблицей. Эту таблицу можно просматривать, использовать в SQL-операторах, а в ряде случаев обновлять, закрепляя изменения в таблицах БД.

Представление создается оператором CREATE VIEW. Например, оператор

CREATE VIEW SPN AS

SELECT Sname, Pname, Q FROM S, P, SP

WHERE S.S# = SP.S AND P.P# = SP.P#

cоздает в базе поставщиков и изделий представление с именем SPN, в котором вместо номеров поставщика и изделия фигурируют их имена.

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

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

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

· Простота запросов. С помощью представлений можно объединить данные из нескольких таблиц и превратить запросы к нескольким таблицам в однотабличный запрос к представлению.

Наряду с перечисленными достоинствами представления обладают двумя существенными недостатками.

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

· Ограничения на обновление. Когда пользователь пытается обновить строки представления, СУБД должна установить их соответствие строкам исходных таблиц. Это часто невозможно для сложных представлений, поэтому они доступны только для чтения.

Запрос, определяющий представление, может содержать предложение GROUP BY. Такие представления называются сгруппированными.

Обновление представлений связано с определенными проблемами. Одно из правил Э. Кодда, определяющих реляционную СУБД, требует, чтобы все теоретически обновляемые представления были доступны для обновления. Что это значит?

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

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

Если обновляемое представление задается посредством запроса с предложением WHERE, то в представлении будут видны только строки, удовлетворяющие условию поиска. Если в это представление вставить по ошибке строку, для которой условие не выполняется, то эта строка попадет в исходную таблицу, но не отобразится в представлении. Существует контроль целостности, позволяющий избежать таких ошибок. В операторе CREATE VIEW задается предложение WITH CHECK OPTION. Сейчас если добавляемая или изменяемая строка не удовлетворяет условию создания представления, то соответствующая операция завершается ошибкой.

Представления удаляются из БД оператором DROP VIEW.

 

<== предыдущая лекция | следующая лекция ==>
Операторы создания баз данных | Обеспечение безопасности баз данных в SQL
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 220; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.