Розробка концептуальних програм. NET, частина 1: Створення об’єктів бази даних в DB2 Viper з використанням. NET, Інтеграція додатків і даних, Бази даних, статті

Зміст



Перед початком роботи


Даний навчальний посібник призначений для розробників додатків і адміністраторів баз даних. У ньому описано, як виконати доступ до даних 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 виконайте наступне:



  1. У меню Windows “Пуск” виберіть Programs -> IBM DB2 -> DB2 (default) [Або ім’я екземпляра DB2] -> Command Line Tools -> Command Window;
  2. У вікні командного рядка DB2 повинен відображатися запит C:Program FilesIBMSQLLIBBIN> (Якщо використовувався шлях установки за замовчуванням). Введіть команду db2set. Результат повинен бути наступним “DB2COMM = tcpip”. Якщо потрібно дізнатися використовуваний порт TCP / IP, то слід ввести команду db2 get dbm cfg і переглянути рядок “TCP / IP Service name”. За замовчуванням DB2 використовує порт 50000.

Якщо TCP / IP для DB2 не використовується, його можна включити за допомогою наступних команд:


  1. db2set db2comm=tcpip
  2. db2 update dbm cfg using svcename 50000
  3. db2stop
  4. db2start

Після установки DB2 видається запит на установку бази даних DB2 SAMPLE. Виберіть установку приблизною бази даних і парамери за замовчуванням.


Для перевірки успішного настроювання системи запустіть VS.NET 2005. У меню VS.NET “s File виберіть New -> Project…. У діалоговому вікні New Project в лівій панелі повинні знаходитися IBM Projects.


Підключення до DB2


Після проектування структури бази даних і налаштування середовища розробки перейдемо до підключення до DB2.



  1. У VS.NET Server Explorer натисніть правою кнопкою миші Data Connections -> Add Connection…;
  2. У діалоговому вікні Add Connection натисніть кнопку Change…;
  3. У діалоговому вікні Change Data Source в списку джерел даних, виберіть <other>. У полі Data provider: виберіть IBM DB2 Data Provider for .NET Framework 2.0, Потім натисніть кнопку OK;
  4. У діалоговому вікні Add Connection введіть такі дані (використовуйте ім’я користувача та пароль, введені при установці DB2).

    Рис. 4. Додавання підключення до бази даних


    Ім’я сервера localhost. Передбачається, що DB2 встановлено на той же комп’ютер, на який встановлено пакет VS.NET. Також передбачається, що для DB2 за замовчуванням використовується TCP / IP порт 50000. Якщо налаштування середовища розробки інші, їх необхідно виправити;


  5. Натисніть Test Connection, Повинно бути підтвердження про успішне підключення. В іншому разі, ще раз уважно перевірте всі параметри;
  6. В Server Explorer має з’явитися доданий підключення до DB2. Розгорніть вузли деревовидної структури та ознайомтесь зі структурою об’єктів бази даних DB2 SAMPLE. Натисніть правою кнопкою миші об’єкт і вивчіть можливі операції;

    Рис. 5. Структура бази даних DB2


  7. Ознайомтеся з таблицею EMPLOYEE table. Використовуйте команди контекстного меню Open Definition і Show Data. Ця таблиця буде використовуватися в додатку.

Створення таблиці


У таблиці EMPLOYEE міститься інформація про співробітників. Уявімо собі, що це система відділу кадрів клієнта. Потрібно створити таблицю CARPOOL, Що містить додаткові дані, необхідні для програми, наприклад, домашні адреси і час відправлення.



  1. У Server Explorer в підключенні DB2 натисніть правою кнопкою миші папку Tables. Є два варіанти створення таблиці: Add New Table with Designer і Add New Table with Wizard. Перший варіант призначений для користувачів, знайомих з призначеним для користувача інтерфейсом Designer в VS.NET 2005. Другий для початківців, яким потрібно більше підказок. Ви працюєте з VS.NET 2005, тому будемо використовувати Designer;
  2. Введіть у Designer такі дані, за винятком імені схеми. Вкажіть схеми з варіанту замість використання “UDB” (UDB може бути користувальницьким ідентифікатором в Windows; використовуйте свій ідентифікатор). Зверніть увагу, що Designer містить розділи, які можна згорнути або розгорнути. У правій стороні розділу Columns є набір кнопок. Встановіть на них курсор миші і прочитайте підказку для кожної кнопки. Кнопку Import (Остання в наборі) використовуйте для імпорту стовпця EMPNO з таблиці EMPLOYEE, це буде ключовою стовпець для з’єднання таблиць EMPLOYEE і CARPOOL. Зробіть EMPNO первинним ключем в розділі Column Properties, Задавши властивості Primary Key значення True (Мається кілька інших способів створення первинного ключа, якщо цікаво, спробуйте знайти їх самостійно);

    Рис. 6. Створення таблиці CARPOOL


  3. Зробіть стовпець EMPNO зовнішнім ключем і вкажіть на EMPNO в таблиці EMPLOYEE. Переконайтеся, що Designer активний, натисніть кнопку Keys в панелі інструментів під рядком меню або в локальній панелі інструментів у верхній частині Designer (Keys – другий кнопка в панелі інструментів). Після натискання кнопки Keys виконується переміщення в панель Keys. Первинний ключ повинен відображатися в розділі List of Keys. Натисніть кнопку + для додавання зовнішнього ключа. Введіть параметри як зазначено нижче:

    Рис. 7. Створення зовнішнього ключа


  4. Якщо при використанні Designer виникають проблеми, для створення таблиці можна використовувати майстер;
  5. Створіть індекс для стовпчика CITY, так як більшість співробітників виконують пошук спільної експлуатації автомобілів по місту. Натисніть кнопку Indexes в панелі інструментів під рядком меню або в локальній панелі інструментів у верхній частині Designer (Indexes – третя кнопка в панелі інструментів);

    Рис. 8. Створення індексу для стовпця CITY


  6. Додатково можна створити інші стовпці, наприклад, з інформацією про тип автомобіля, і додати індекс до стовпцю STARTTIME або до комбінації стовпців CITY і STARTTIME. Для простоти припустимо ці кроки;
  7. Потім збережіть результат (Ctrl + S).

Примітка: При збереженні в Designer інструментальне засіб запускає DDL для створення таблиці. Не забудьте перед збереженням двічі натиснути на робочому проекті для його збереження, тому що після запуску DDL подальші модіфіцікаціі будуть обмежені (див. нижче):

Рис. 9. Збереження в Designer


Після запуску DLL можна перевірити повідомлення зворотного зв’язку з DB2 в панелі Output в Designer. Якщо таблиця створена успішно, її можна буде знайти в Server Explorer в папці Tables.


Створення подання


Тепер для зберігання інформації про спільне використання автомобілів є таблиця CARPOOL. Як зазначено вище, можна повторно використовувати існуючу таблицю EMPLOYEE для зберігання даних про співробітників. У таблиці EMPLOEE містяться конфіденційні дані, наприклад, SALARY, BIRTHDATE і т.д. Потрібно створити виставу для обмеження доступу програми Carpooler тільки до відповідної інформації. Як правило, для обмежень безпеки використовуються уявлення. Подання також потрібна для об’єднання таблиць EMPLOYEE і CARPOOL для надання додатком всієї необхідної інформації.



  1. У Server Explorer в підключенні DB2 натисніть правою кнопкою миші папку Views. Є два варіанти створення вистави: Add New View with Designer і Add New View with Wizard. Використовуйте Designer.;
  2. У Designer введіть такі дані:

    Рис. 10. Створення подання


  3. Можна ввести запит для подання або скористатися кнопкою Query Builder. Якщо використовується Query Builder, створіть запит наступним чином. Використовуйте середню частину знімка екрана, наведеного нижче, для створення зв’язків між стовпцями таблиць EMPLOYEE і CARPOOL;

    Рис. 11. Створення запиту для подання


  4. Збережіть подання. Подання до DB2 створено успішно;
  5. В панелі інструментів Designer натисніть кнопку Privileges. Надайте своєму ідентифікатору користувача привілеї Insert і Update. Це дозволить вставляти та оновлювати подання на основі своїх облікових даних;
  6. У Server Explorer знайдіть нове створене уявлення CARPOOLER. Натисніть правою кнопкою миші і виберіть Show Data. У Designer відображається порожній результат, тому що в таблиці CARPOOL немає даних, подання CARPOOLER є об’єднанням таблиць CARPOOL і EMPLOYEE. Слід ввести деякі тестові дані, використовуючи своє рідне місто і час відправлення. Переконайтеся, що введено правильне значення EMPNO (це значення вже має існувати в таблиці EMPLOYEE, тому що зовнішній ключ таблиці CARPOOL відповідає стовпцем EMPNO). Спробуйте ввести один рядок даних у поданні CARPOOLER і збережіть результат. Що відбувається?

Виводиться повідомлення про помилку:

Рис. 12. Помилка вставки даних за допомогою подання


Причина полягає в тому, що подання пов’язує дві таблиці, і DB2 не розпізнає таблицю для відповідної вставки. Іншими словами можна змішувати чорне (Таблиця 1) і біле (Таблиця 2), щоб отримати сіре (Представлення), але якщо тільки надати сіре, DB2 не може розкласти його на чорне і біле. Для вставки за допомогою представлення використовуйте тригер.


Створення тригера


Для вирішення проблеми вставки за допомогою представлення CARPOOLER, що зв’язує дві таблиці, створимо тригер. Замість того, щоб DB2 виконував спробу вставки і виводив повідомлення про помилку, спрацьовує тригер, вставка виконується тільки в таблицю CARPOOL. При цьому не потрібно повноважень для вставки та безпека таблиці EMPLOYEE, так як вона управляється безпосередньо відділом кадрів (імовірно кажучи, DB2 встановлено на комп’ютері від імені адміністратора бази даних, тому можна вставляти будь-які дані в таблицю EMPLOYEE).



  1. Якщо подання CARPOOLER ще не відкрито в Designer, натисніть його правою кнопкою миші в Server Explorer, щоб відкрити його опис. В панелі інструментів Designer натисніть кнопку Triggers;
  2. У Trigger Designer введіть такі дані. У правій панелі в розділі Reference переконайтеся, що ім’я посилання New Row. Це ім’я буде використовуватися для тригера в якості змінної в SQL. У нашому випадку назвемо змінну NewRow. У розділі Trigger Properties переконайтеся, що Event to Trigger задано значення Insert, А Time to Trigger – значення Instead Of. Така настройка означає, що при вставці буде спрацьовувати тригер. У розділі Trigger Text нижче показано, що тригер передає значення з подання CARPOOLER в таблицю CARPOOL;

    Рис. 13. Створення тригера


  3. Перевірте тригер, вставивши рядок у поданні CARPOOLER. Переконайтеся, що використовується правильний формат дати, наприклад, формат типу даних TIME повинен бути наступним 09:00:00. Введіть кілька рядків даних для майбутнього тестування програми. При поява повідомлення про несподівану помилку при вставці даних, спробуйте закрити Designer і знову його відкрити.

Створення збереженої процедури


Створено уявлення CARPOOLER, за допомогою якого додано кілька рядків тестових даних у базову таблицю CARPOOL. Ці об’єкти бази даних дозволяють додатком вводити інформацію про співробітників, спільно використовують автомобілі, і зберігати її в DB2. Тепер подумаємо про те, як представити інформацію про співробітників, які разом використовують автомобілі, в інтерфейсі програми, коли таку інформацію шукають інші користувачі. Для отримання даних з DB2 є безліч способів. Один із простих способів полягає у використанні збереженої процедури. Процедура дозволяє централізувати бізнес-логіку в базі даних, в майбутньому збережену процедуру можна повторно використовувати для інших додатків.


Процедура буде створена для добування інформації про співробітників, які разом використовують автомобілі, які живуть в певному місті і вирушають в або після певного часу. Додатково в збереженій процедурі можна використовувати іншу бізнес-логіку, наприклад, пошук співробітників, що відправляються в або до певного часу. Можна навіть виконати пошук по періоду часу.



  1. У Server Explorer в підключенні DB2 натисніть правою кнопкою миші папку Procedures. Виберіть Add New SQL Procedure with Designer;
  2. У Procedure Designer введіть наступний опис процедури та вхідні параметри;

    Рис. 14. Опис процедури


  3. У розділі SQL Body видаліть наступне SQL-пропозиція за замовчунням: Select ROUTINENAME, ROUTINESCHEMA from SYSIBM.SYSROUTINES; Натисніть праву кнопку миші і виберіть Query Builder… або Insert SQL для створення власного запиту SQL. Переконайтеся, що процедура, що зберігається і запит виглядають наступним чином:

    Рис. 15. Процедура SQL У наведеному вище прикладі функція upper() перетворює змінну VARCHAR (String) у верхній регістр. Це використовується для порівняння рядків незалежно від регістру;

  4. Протестуйте процедуру. У Server Explorer натисніть процедуру правою кнопкою миші і виберіть Run. У діалоговому вікні Run Options введіть параметри MYCITY і MYTIME, подібні наступним (але використовуючи власні тестові дані). Натисніть кнопку Run для тестування збереженої процедури. Переконайтеся, що значення параметрів знаходяться в допустимому діапазоні відповідно до введених раніше тестовими даними. Це потрібно для того, щоб в результуючому наборі вашої збереженої процедури містилися дані;

    Рис. 16. Параметри запуску процедури


  5. Перевірка результату. В панелі Designer в розділі Result Data повинен знаходитися результат, повернений збереженої процедурою. Цей результат повинен бути схожий на наступний (тестові дані можуть відрізнятися).

    Рис. 17. Результат виконання процедури


Висновок


На закінчення можна сказати, що для потреб програми успішно створені об’єкти бази даних DB2. Ці об’єкти бази даних включають таблицю для зберігання інформації про спільне використання автомобілів, уявлення, що об’єднує таблицю Carpool та існуючу в DB2 таблицю EMPLOYEE, тригер в поданні для вставки даних і збережену процедуру для пошуку співробітників, які разом використовують автомобілі, за допомогою завдання в поданні міста і часу. Тепер можна зв’язати ці об’єкти бази даних з Windows і Web-додатком. Це буде показано в наступному навчальному посібнику даної серії.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*