Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Сгруппированные представления




Недостатки представлений

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

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

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

 

Создание представлений (инструкция CREATE VIEW)

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

 

Синтаксис используемый в SQL Anywhere

CREATE VIEW

... [ owner.]view-name [(column-name,...)]

... AS select-without-order-by

... [ WITH CHECK OPTION ]

 

При необходимости в инструкции CREATE view можно задать имя для каждого столбца создаваемого представления. Если указывается список имен столбцов, то он должен содержать столько элементов, сколько столбцов содержится в запросе Обратите внимание на то, что задаются только имена столбцов, тип данных, длина и другие характеристики берутся из определения столбца в исходной таблице Если список имен столбцов в инструкции create view отсутствует, каждый столбец представления получает имя соответствующего столбца запроса Если в запрос входят вычисляемые столбцы или два столбца с одинаковыми именами, то без такого списка обойтись невозможно

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

 

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

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

После создания сгруппированного представления его можно использовать для упрощения запросов.

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

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

Для сгруппированных представлений справедливы ограничения, накладываемые в SQL на вложенные статистические функции.

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

 

Что значит вставить, удалить или обновить строку представления? Ясно, что для некоторых типов представлений эти операции можно преобразовать в эквивалентные операции по отношению к исходным таблицам представления.

Обновление представлений — непростой вопрос, который является предметом исследований уже не один год.

 




Поделиться с друзьями:


Дата добавления: 2015-06-25; Просмотров: 668; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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