Джеффри Мак-Манус - Обработка баз данных на Visual Basic®.NET
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 на основе этого одного объекта, но по отношению к прежней корректно структурированной (нормализованной) базе данных.
Аналогично можно создать представление на основе вычислений или манипуляций с данными таблицы. Предположим, что нужно извлечь имена сотрудников в виде одного поля с именем и фамилией в формате имя, фамилия. Для этого можно создать следующее представление:
CREATE VIEW EmployeeNames_view AS
SELECT lname + ', ' + fname AS Name FROM employee
Использование представлений в приложениях
Представление — это конструкция, которая позволяет управлять процессом извлечения информации из базы данных SQL Server. Это управление может осуществляться несколькими способами. В представлении можно ограничить количество строк или столбцов, что позволяет управлять данными, возвращаемыми пользователю. Для этого необходимо создать критерий отбора, который известен только разработчику базы данных, или предоставить пользователям доступ к данным на основе разрешений системы безопасности. Каждый объект базы данных — таблица, представление, хранимая процедура — может быть ассоциирован с пользователем или группой системы безопасности. В базах данных, которые используют преимущества представлений и хранимых процедур, прямой доступ к таблицам обычно ограничивается администратором базы данных. Клиентские приложения при этом ограничены только доступом к связанным представлениям или хранимым процедурам, которые, в свою очередь, отвечают за извлечение данных из основных таблиц.
Создание скрытого поля — еще один способ ограничения доступа. При этом данные такого поля не возвращаются пользователю, а отфильтровываются с помощью представления. Клиентскому приложению даже не будет известно, что существуют еще какие-либо данные, поскольку оно будет ограничено лишь данными представления.
Практически все профессиональные серверы баз данных SQL ограничивают непосредственный доступ к базе данных. Помимо ограничения доступа к строкам и полям, сокрытие таблиц баз данных с помощью представлений позволяет изменять их незаметно для клиентских приложений.
Кроме этого, с помощью компонентов среднего уровня можно отделить изменения структуры базы данных от изменений бизнес-правил. Эти компоненты аналогичны представлениям и хранимым процедурам тем, что скрывают изменения структуры базы данных от клиентского приложения. Помимо этого, существует еще одно преимущество использования таких компонентов по сравнению с представлениями и хранимыми процедурам SQL Server: они упрощают процесс программирования, возвращают данные в виде объектов, а не строк и столбцов, а также не привязаны к конкретной СУБД или языку программирования. Более подробно компоненты среднего уровня рассматриваются в главе 12, "Web-службы и технологии промежуточного уровня".
Создание представления с помощью программы SQL Query Analyzer
Для создания представлений можно использовать программу SQL Query Analyzer. Процесс создания представления в ней аналогичен подобному процессу в программе SQL Server Enterprise Manager, но обладает большей гибкостью, несмотря на использование более скромных графических инструментов. Для создания представления tblEmployee без конфиденциального поля Salary в программе SQL Query Analyzer выполните приведенные ниже действия.
1. Введите в окно программы SQL Query Analyzer следующий код (он организован таким образом, чтобы представление создавалось независимо от того, существует оно уже или нет):
USE novelty GO
DROP VIEW Employee_view GO
CREATE VIEW Employee_view AS
SELECT ID, FirstName, LastName, DepartmentID
FROM tblEmployee GO SELECT * FROM Employee_view
2. Для выполнения этой последовательности команд нажмите клавишу <F5> или щелкните на кнопке Execute Query. Представление будет создано и запущено, а результаты будут показаны во вкладке Grids (или Results).
3. Проверьте работоспособность представления с помощью программы SQL Server Enterprise Manager, в которой нужно выбрать вкладку Views для базы данных Novelty.
НА ЗАМЕТКУРанее в этой главе рассматривалось, как создать представление графическими средствами в программе SQL Server Enterprise Manager, щелкая на нем правой кнопкой мыши и выбирая команду Design View (Создать представление) из контекстного меню. Текст команды SQL для создания представления можно редактировать, дважды щелкнув на представлении и изменяя этот текст в диалоговом окне.
В рассматриваемом примере, кроме создания представления с помощью программы SQL Server Enterprise Manager, демонстрируется удобство использования пакетов команд SQL. Приведенный выше пакет команд SQL не только создает новое представление, но и связывает его с нужной базой данных и извлекает данные для него. Полученный результат подтверждает, что представление работает именно так, как и предполагалось.
Пакеты можно создавать для упрощения процесса создания объектов базы данных с помощью программы SQL Server Enterprise Manager, потому что в большинстве случаев при создании объектов базы данных приходится выполнять сразу несколько операций. Типичным примером пакета команд SQL является удаление старой таблицы, создание новой таблицы и наполнение ее данными. Кроме этой и других задач, пакет команд SQL может использоваться для проверки наличия учетной записи и создания учетной записи с используемым по умолчанию паролем.
Создание и запуск хранимых процедур
С помощью представления можно контролировать данные, возвращаемые SQL Server, однако существует еще более мощное средство — хранимые процедуры (stored procedures). Хранимые процедуры подобны представлениям, но могут выполнять более сложные операции над данными. Например, с помощью хранимых процедур можно выполнять следующие операции:
• вычисления;
• установка или возврат параметров;
• реализация логики приложения, для чего требуется выполнить несколько этапов или запросов с помощью языка программирования, предназначенного для использования с базой данных;
• возврат данных в форме, которая наилучшим образом подходит для приложения-клиента.
Заметьте: не все эти операции можно выполнить с помощью представлений.
Хранимую процедуру можно представить себе как особый вид процедуры, так как она хранится в самой базе данных, а не является частью приложения, которое выполняется на клиентском компьютере или прикладном сервере (именно поэтому она так и называется). В предыдущем списке операций указано, что хранимая процедура может содержать не только простой однострочный запрос, но и сложный многострочный запрос, который способен выполнить несколько действий, прежде чем возвратить результат.
Хранимые процедуры создаются на специальном языке программирования, который применяется в используемой базе данных. Этот язык содержит практически все распространенные программные конструкции, хотя его синтаксис не всегда очевиден. В SQL Server для создания хранимых процедур используется язык Transact SQL.
НА ЗАМЕТКУКомпания Microsoft заявила, что будущие версии SQL Server позволят создавать хранимые процедуры на любом языке, который совместим с платформой .NET (например, Visual Basic .NET), а не только на языке Transact SQL. Это позволит разработчикам легко переходить от одного аспекта программирования к другому, не изучая синтаксиса нового языка программирования.
Откройте для себя мир чтения на siteknig.com - месте, где каждая книга оживает прямо в браузере. Здесь вас уже ждёт произведение Джеффри Мак-Манус - Обработка баз данных на Visual Basic®.NET, относящееся к жанру Программирование. Никаких регистраций, никаких преград - только вы и история, доступная в полном формате. Наш литературный портал создан для тех, кто любит комфорт: хотите читать с телефона - пожалуйста; предпочитаете ноутбук - идеально! Все книги открываются моментально и представлены полностью, без сокращений и скрытых страниц. Каталог жанров поможет вам быстро найти что-то по настроению: увлекательный роман, динамичное фэнтези, глубокую классику или лёгкое чтение перед сном. Мы ежедневно расширяем библиотеку, добавляя новые произведения, чтобы вам всегда было что открыть "на потом". Сегодня на siteknig.com доступно более 200000 книг - и каждая готова стать вашей новой любимой. Просто выбирайте, открывайте и наслаждайтесь чтением там, где вам удобно.

