Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие.doc
Скачиваний:
57
Добавлен:
14.05.2015
Размер:
1.51 Mб
Скачать

ТемаVii. Создание и работа с представлениями

1. Основные сведения о представлениях

Представление (View) – это статическое определение ди­намической таблицы, созданной из одного или более наборов строк в соответствии с заданным критерием выборки. Представ­ления - это не копия данных таблиц или других представлений. Их называют еще виртуальными таблицами, поскольку такая таб­лица не существует как независимый объект в базе данных. В представлении хранится только описание действий, которые не­обходимо выполнить для получения требуемой информации. Не­обходимое сочетание строк и столбцов в представлении задаётся с помощью обычной инструкции SELECT. Достоинства пред­ставлений:

  • они позволяют разным пользователям увидеть необ­ходимые им аспекты БД;

  • позволяют ограничить доступ к данным, разрешая пользователям видеть только некоторые из строк и столбцов таблиц;

  • упрощают доступ к БД, показывая каждому пользо­вателю структуру хранимых данных в наиболее подходящем для него виде.

Для каждого вида можно определить не более 1024 столб­цов из одной или нескольких таблиц, а количество строк ограни­чено только размерами этих таблиц. Аналог представлений SQL Server в Access называют запросами, методы работы с ними те же самые. После определения представления на него можно ссы­латься также, как на таблицу. При ссылке на представление вы­полняется заданная в его определении инструкция SELECT.

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

2. Создание представлений. Отображение представле­ний

Представление можно создать с помощью SQL Server En­terprise Manager, в SQL Server Query Analyzer, либо из ко­мандной строки ISQL. Представление хранится как отдельный объект БД.

Синтаксис создания представления средствами Transact - SQL:

CREATE VIEW имя_представления [(столбец1, стол­бец2,…)]

[WITH ENCRYPTION]

AS

инструкция SELECT

FROM имя_таблицы | имя_представления

[предложение WHERE]

[WITH CHECK OPTION], где

столбец1, столбец2,… - псевдонимы для столбцов пред­ставления. Параметр обязательно указывается для вычисляемых полей, или если столбцы исходных таблиц или представлений имеют одинаковые имена. Если этот параметр не указан, столбцы представления получают имена из строки SELECT.

WITH ENCRYPTION - зашифровать текст оператора CREATE VIEW (содержится в таблице Syscomments).

AS - начало определения представления.

инструкция SELECT - инструкция, определяющая пред­ставление. В нее нельзя включать:

- ORDER BY, COMPUTE или COMPUTE BY

- INTO

- любые ссылки на временные таблицы.

WITH CHECK OPTION - при модификации данных они предварительно будут проверены на соответствие условиям на значения(ограничениям) для таблиц, на основе которых создано представление.

Пример: представление для просмотра фамилий авторов, живущих в Калининском районе:

CREATE VIEW Kalin_region

AS

SELECT au_lname, au_fname, title

FROM Authors, TitleAuthor,Titles

WHERE Authors. au_id= TitleAuthors.au_id

AND TitleAuthors.title_id=Title.title_id

AND State=’ Калининский’

Для извлечения информации с помощью этого представ­ления:

SELECT*FROM Kalin_region

Создание представлений с помощью SQL Server Enter­prise Manager:

1) Открыть папку Views;

2) В контекстном меню выбрать команду New SQL Server View, появится диалоговое окно New View, в котором

3) можно ввести инструкцию SELECT в окно SQL

4) или воспользоваться графическим интерфейсом для описания представления в табличном режиме (добавить таблицы, выбрать поля, задать критерии отбора в столбце Criteria)

5) сохранить представление (кнопка Save на панели инст­рументов). Перед сохранением можно убедиться в том, что оно выдает нужную информацию – кнопка Run.

Ограничения при создании представлений:

1) Нельзя определять представление для временной таб­лицы.

2) Для представления нельзя определять триггер, его можно определить только для базовой таблицы.

3) Нельзя использовать ORDER BY, чтобы не было отличий от базовой таблицы; предложение ORDER BY можно использо­вать при выборе строк из представления.

Для использования представления нужно пройти два этапа:

- определить представление и сохранить его в БД;

- из созданного представлением набора информации вы­брать нужную.

4) В представлении, нельзя использовать предложение COMPUTE, которое создает виртуальный столбец для реального столбца таблицы.

5) В представлении нельзя использовать DISTINCT, уни­кальность значений можно определить с помощью ключа или ин­декса;

6) В представлении нельзя использовать INTO, т.к. пред­ставление направляет данные на экран, а не в таблицу.

При создании представлений их определения сохраняются в системной таблице Syscomments. Для отображения этой ин­формации используют системную хранимую процедуру sp_helptext.