|
|
|||||||||||||||||||||||||||||
|
Разработка концептуальных приложений .NET, часть 1: Создание объектов базы данных в DB2 Viper с использованием .NETИсточник: IBM developerWorks Россия Ченхонг Киа (Chenhong Xia), IBM
Оглавление
Перед началом работыДанное учебное руководство предназначено для разработчиков приложений и администраторов баз данных. В нем описано, как выполнить доступ к данным DB2 из среды разработки .NET. Руководство содержит подробные инструкции и снимки экрана по созданию объектов базы данных DB2. Такие объекты базы данных используются в концептуальном приложении, которое описано в следующих учебных руководствах данной серии. Данная серия всключает три учебных руководства (части). В части 1 содержатся спецификации концептуального приложения и требования к его базе данных. Представлен процесс создания объектов реляционной базы данных в DB2 Viper с использованием VS.NET 2005. В части 2 описано, как связать серверную базу данных с приложением Windows и Web-приложением, и как передать данные в пользовательский интерфейс. В части 3 показано, как в DB2 Viper использовать хранилище XML-данных для расширения емкости приложения и обеспечения функций приложения в Web-службе. О данном учебном руководствеЧасть 1 серии учебных руководств. Представлен типичный сценарий создания концептуального приложения с именем Carpooler. Это приложение предназначено для поиска сотрудниками корпорации коллег, с кем можно уехать домой на машине. Для приложения требуются данные для хранения информации о сотрудниках и совместно эксплуатируемых автомобилях. Для этого с помощью VS.NET 2005 создайте объекты базы данных DB2 Viper для приложения. Требования к системе
ОбзорВ учебном руководстве описан типичный пользовательский сценарий по разработке концептуального приложения. Будут показаны задачи приложения и спецификации проекта. В руководстве также приводятся советы по настройке среды разработки.
Пользовательский сценарийПредставьте, что вы работаете в консалтинговой компании, предоставляющей услуги по разработке программного обеспечения. Вы занимались разработкой в среде Microsoft Visual Studio и начали использовать VS.NET 2005. Вы хорошо разбираетесь с SQL server и для своего приложения можете создавать такие объекты базы данных, как таблицы, представления, триггеры и хранимые процедуры. Ваша компания претендует на заключение с клиентом контракта на проект. Этим клиентом является предприятие, на котором для хранения данных используется DB2. Проект заключается в разработке приложения для сотрудников клиента, желающих найти коллег для совместной эксплуатации автомобиля. По требованию клиента приложение Carpooler должно использовать DB2 в качестве серверного хранилища данных, чтобы можно было использовать информацию о сотрудниках из системы отдела кадров. Клиент переходит на последнюю версию DB2, поэтому требуется использовать DB2 Viper. Можно использовать любой тип среды разработки приложений. Так как вы являетесь разработчиком .NET, то будете использовать для создания приложения последнюю версию .NET IDE, Visual Studio 2005. Для создания концептуального приложения и демонстрации своих способностей использовать .NET и DB2 для передачи данных в пользовательский интерфейс предоставляется 8 часов (один рабочий день). На основе успешного представления инфраструктуры приложения клиент может принять решение, что вы способны выполнить интеграцию между приложением и хранилищем данных клиента. Затем клиент предлагает решить другие проблемы. Решение этих проблем описано в частях 2 и 3 данной серии учебных руководств. А сейчас займемся рассмотрением .NET и DB2. Ваша компания работает с предприятиями малого и среднего бизнеса, поэтому разработчики имеют большой опыт работы с SQL server. Никто в компании не работал с DB2. Вы назначены на этот проект благодаря своей адаптивности и навыкам по решению проблем. Вы уверены, что опыт работы с SQL server поможет перейти на DB2. Кроме того, различные реляционные базы данных обслуживают схожие функции, для доступа к ним в среде .NET используются аналогичные механизмы. Нужно просто приспособиться к различиям баз данных.
Спецификации приложенияПриложение Carpool используется для поиска сотрудниками компании-клиента коллег для совместной эксплуатации автомобилей, с котороми можно ездить на работу из своего города. Пользователи приложения должны получить набор владельцев, совместно эксплуатирующих автомобили, из серверной базы данных DB2 после задания своего города и времени отправления. Приложение представлено на следующих рисунках, так как лучше раз посмотреть, чем сто раз прочитать. На первом рисунке представлен результат в виде приложения Windows, на втором - в виде Web-приложение. Рис. 1. Конечный результат в виде приложения Windows
Рис. 2. Конечный результат в виде приложения Web-приложения
Это концептуальное приложение, поэтому требуется создать полнофункциональный объектно-ориентированный проект для библиотек классов и структуры сборок .NET. Необходимо также реализовать каркас для серверной базы данных. Проектирование базы данныхЧтобы сэкономить время, воспользуемся таблицей EMPLOYEE в базе данных DB2 SAMPLE. Для хранения данных, связанных с совместной эксплуатацией автомобилей, например, домашних адресов сотрудников, предпочтительного времени поездок и др. требуется новая таблица. Назовем эту таблицу CARPOOL. В таблице CARPOOL для ссылки на таблицу EMPLOYEE будет использоваться внешний ключ. Целостность ссылочных данных гарантирует, что в совместной эксплуатации автомобилей участвуют только пользователи с легальными идентификаторами. Для доступа к полному набору данных, включая информацию о совместном использовании автомобилей и имя сотрудника, номер телефона и т.д., создадим представление реляционной базы данных. Назовем его CARPOOLER. Проектирование основной базы данных можно представить следующим образом:
Рис. 3. Проектирование базы данных Настройка средыВ данном учебном руководстве необходимо использовать VS.NET 2005 и DB2 Viper (см. раздел "Системные требования"). Установка этих программ не вызывает особой сложности. Рекомендуется сначала установить VS.NET, а затем DB2. Запишите идентификатор пользователя и пароль, введенный при установке DB2, эта информация потребуется позднее при подключении к DB2. Во время установки DB2 убедитесь, что включен протокол TCP/IP. Для проверки протокола TCP/IP после установки DB2 выполните следующее:
Если TCP/IP для DB2 не используется, его можно включить с помощью следующих команд:
После установки DB2 выдается запрос на установку базы данных DB2 SAMPLE. Выберите установку примерной базы данных и парамеры по умолчанию. Для проверки успешной настройки системы запустите VS.NET 2005. В меню VS.NET's File выберите New -> Project.... В диалоговом окне New Project в левой панели должны находиться IBM Projects. Подключение к DB2После проектирования структуры базы данных и настройки среды разработки перейдем к подключению к DB2.
Создание таблицыВ таблице EMPLOYEE содержится информация о сотрудниках. Представим себе, что это система отдела кадров клиента. Требуется создать таблицу CARPOOL, содержащую дополнительные данные, необходимые для приложения, например, домашние адреса и время отправления.
Примечание: При сохранении в Designer инструментальное средство запускает DDL для создания таблицы. Не забудьте перед сохранением дважды нажать на рабочем проекте для его сохранения, так как после запуска DDL дальнейшие модифицикации будут ограничены (см. ниже): Рис. 9. Сохранение в Designer После запуска DLL можно проверить сообщение обратной связи из DB2 в панели Output в Designer. Если таблица создана успешно, ее можно будет найти в Server Explorer в папке Tables. Создание представленияТеперь для хранения информации о совместном использовании автомобилей имеется таблица CARPOOL. Как указано выше, можно повторно использовать существующую таблицу EMPLOYEE для хранения данных о сотрудниках. В таблице EMPLOEE содержатся конфиденциальные данные, например, SALARY, BIRTHDATE и т.д. Нужно создать представление для ограничения доступа приложения Carpooler только к соответствующей информации. Как правило, для ограничений безопасности используются представления. Представление также требуется для объединения таблиц EMPLOYEE и CARPOOL для предоставления приложению всей необходимой информации.
Выводится сообщение об ошибке: Рис. 12. Ошибка вставки данных с помощью представления Причина заключается в том, что представление связывает две таблицы, и DB2 не распознает таблицу для соответствующей вставки. Другими словами можно смешивать черное (Таблица 1) и белое (Таблица 2), чтобы получить серое (Представление); но если только предоставить серое, DB2 не может разложить его на черное и белое. Для вставки с помощью представления используйте триггер. Создание триггераДля решения проблемы вставки с помощью представления CARPOOLER, связывающего две таблицы, создадим триггер. Вместо того, чтобы DB2 выполнял попытку вставки и выводил сообщение об ошибке, срабатывает триггер, вставка выполняется только в таблицу CARPOOL. При этом не требуется полномочий для вставки и обновления таблицы EMPLOYEE, так как она управляется непосредственно отделом кадров (предположительно говоря, DB2 установлен на компьютере от имени администратора базы данных, поэтому можно вставлять любые данные в таблицу EMPLOYEE).
Создание хранимой процедурыСоздано представление CARPOOLER, с помощью которого добавлено нескольких строк тестовых данных в базовую таблицу CARPOOL. Эти объекты базы данных позволяют приложению вводить информацию о сотрудниках, совместно использующих автомобили, и хранить ее в DB2. Теперь подумаем о том, как представить информацию о сотрудниках, совместно использующих автомобили, в пользовательском интерфейсе приложения, когда такую информацию ищут другие пользователи. Для извлечения данных из DB2 имеется множество способов. Один из простых способов заключается в использовании хранимой процедуры. Хранимая процедура позволяет централизовать бизнес-логику в базе данных, в будущем хранимую процедуру можно повторно использовать для других приложений. Хранимая процедура будет создана для извлечения информации о сотрудниках, совместно использующих автомобили, живущих в определенном городе и отправляющихся в или после определенного времени. Дополнительно в хранимой процедуре можно использовать другую бизнес-логику, например, поиск сотрудников, отправляющихся в или до определенного времени. Можно даже выполнить поиск по периоду времени.
ЗаключениеВ заключение можно сказать, что для потребностей приложения успешно созданы объекты базы данных DB2. Эти объекты базы данных включают таблицу для хранения информации о совместном использовании автомобилей, представление, объединяющее таблицу Carpool и существующую в DB2 таблицу EMPLOYEE, триггер в представлении для вставки данных и хранимую процедуру для поиска сотрудников, совместно использующих автомобили, с помощью задания в представлении города и времени. Теперь можно связать эти объекты базы данных с приложением Windows и Web-приложением. Это будет показано в следующем учебном руководстве данной серии. Ссылки по теме
|
|