Выбрать главу

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

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

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

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

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

Создание представлений с помощью программы SQL Server Enterprise Manager

Представления, как и большинство других объектов базы данных, можно создавать с помощью программ SQL Server Enterprise Manager или SQL Query Analyzer. Программа SQL Server Enterprise Manager обладает мощными и выразительными графическими инструментами, а программа SQL Query Analyzer- интерактивными инструментами для создания и выполнения команд SQL, а также тестирования созданных представлений.

Для создания представления с помощью программы SQL Server Enterprise Manager выполните приведенные ниже действия.

1. В диалоговом окне Server Manager щелкните правой кнопкой мыши на папке Views в той базе данных, в которой необходимо создать представление. В этом примере используется база данных pubs.

2. Из контекстного меню выберите команду New View (Создать представление), и на экране появится окно конструктора представлений программы, как показано на рис. 3.16.

РИС. 3.16. Создание нового представления в окне программы SQL Server Enterprise Manager

НА ЗАМЕТКУ

При первом открытии диалогового окна Design View в его заголовке будут слова New View, а не Design View.

СОВЕТ

Эти графические инструменты создания представлений можно использовать для создания запросов. Для этого щелкните правой кнопкой мыши на таблице базы данных и выберите из контекстного меню команду Open Table→Query (Открыть таблицу→Запрос). Созданный запрос нельзя сохранить, потому что отдельный запрос не является объектом базы данных SQL Server. Однако конструктор базы данных полезен для создания и тестирования хранимых процедур и извлечения отдельного набора данных.

3. Для открытия диалогового окна Add Table (Добавить таблицу) щелкните на кнопке Add Table с изображением плюса и таблицы или щелкните правой кнопкой мыши на пустом поле со схемой представления и выберите в контекстном меню команду Add Table.

4. Выберите таблицу jobs и щелкните на кнопке Add (или дважды щелкните на таблице jobs) для включения таблицы jobs в представление.

5. Выберите таблицу employee и щелкните на кнопке Add (или дважды щелкните на таблице employee) для включения таблицы employee в представление.

6. Щелкните на кнопке Close, чтобы закрыть диалоговое окно Add Table.

7. Выберите поля в каждой таблице, т.е. поле job_desc в таблице jobs и поля fname и lname в таблице employee.

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

РИС. 3.17. Результаты создания и выполнения нового представления в окне конструктора представлений программы SQL Enterprise Manager

9. Сохраните новое представление, щелкнув на кнопке Save или щелкнув правой кнопкой мыши на пустом поле со схемой представления, а затем выбрав из контекстного меню команду Save.

НА ЗАМЕТКУ

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

10. В диалоговом окне Save As (Сохранить как) введите имя представления и щелкните на кнопке OK. Здесь можно указать любое имя, но в данном примере используется EmployeeJobs_view.

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