У складі Visual Basic Express є вбудовані інструменти для створення баз даних для SQL Server 2005 Express. У панелі Database Explorer можна додавати або змінювати таблиці, представлення даних, функції, процедури, що зберігаються.
Можна спроектувати структуру таблиць в простому і зрозумілому графічному інтерфейсі. У Visual Basic Express є можливість створювати діаграми бази даних, у яких можна показувати й змінювати зв'язки між таблицями. Такі діаграми спрощують документування і подальший супровід програм.
Інструмент Query Designer («Конструктор запитів») забезпечує візуальну розробку запитів до БД. Методом перетягування мишею можна вибрати потрібні стовпці, відфільтрувати або відсортувати потрібні дані. При цьому можна бачити й текст запиту, який формується на основі прийнятих рішень, і результати його виконання.
Легкість сприйняття тексту - це важлива ознака добре написаної програми. Легкість сприйняття залежить як від ясності програмного рішення, так і від форматування тексту. У Visual Basic Express рядки програми форматуються автоматично: установлюються потрібні відступи, заголовні букви в операторах, інтервали й т.п. Visual Basic дозволяє в разі потреби вибирати шрифт і колір для будь-якого з елементів у середовищі розробки.
Досить просто додати мережні можливості для
Windows-програм для роботи з мережею. За допомогою вбудованих класів можна
працювати з DNS, ICMP (ping), приймати і передавати дані по протоколах FTP,
HTTP, sockets, SMTP (e-mail), організовувати видалений доступ або підключатися
до веб-сервісів. Можна навіть додати засоби перевірки наявності мережі й
залежно від цього змінювати поведінку програми. Наприклад, використання
елементу управління WebBrowser дозволяє додати можливості виходу в Інтернет
безпосередньо з програми.
2. Спеціальний розділ
.1 Загальний склад, структура і інформаційна
діаграма схеми даних
Автоматизована система, що проектується, повинна враховувати всі договори, що діють, і зберігати вже завершені договори, у тому числі й всю фінансову інформацію про платежі, які вже поступили. Це вимагає використання засобів управління базами даних для вирішення поставленого завдання.
Система повинна бути розрахованою на багато користувачів і функціонувати в локальній мережі коледжу. Поставлені вимоги припускають застосування технології «Клієнт-Сервер». У рамках цієї технології система розподіляється на клієнтську й серверні частини, причому на серверній частині функціонує головна централізована інформаційна складова системи - база даних, яка обробляє запити клієнта. Що стосується клієнтської частини, то вона призначена для формування запитів, що створюються користувачем, і візуального відображення даних, що надаються сервером по запитах клієнта. Виходячи зі всього цього, потрібно здійснити вибір інструментальних засобів розробки.
Для серверної частини відповідною є доступна і безкоштовна система керування базами даних SQL Server Express фірми Microsoft. Для клієнтської частини вибрана безкоштовна версія Visual Studio Net Express також фірми Microsoft.
Для вирішення поставленого завдання в першу чергу була розроблена модель предметної області і реалізована схема даних в термінах «Атрибут-Сутність-Зв'язок» реляційних відносин:
спроектовані таблиці, що відображають схему моделі, і визначені міжтабличні зв'язки;
проведена нормалізація даних і здійснена декомпозиція табличних атрибутів;
визначені обмеження цілісності для структурної
схеми бази даних,
призначені первинні і вторинні ключові атрибути для реалізації зв'язків
«один-до-багатьох» зв'язаних таблиць;
створені процедури, що реалізують основні алгоритми роботи з даними.
Схема даних згідно моделі, що відображає предметну область, приведена на рисунку 2.1. На ньому зображені таблиці бази даних, що відображають інформаційну структуру прийнятої моделі і показані міжтабличні зв'язки. Таблиця «Students» зберігає сутності студентів, таблиця «Dogovora» зберігає атрибути договорів, таблиця «Platez» зберігає дані платежів, таблиця «Spetz» дані спеціальностей і тарифів, таблиця «Groups» містить нормативно-довідкову інформацію по групах. Реалізація схеми даних складається з 6 зв'язаних між собою таблиць, інформаційні зв'язки яких реалізують відносини типу «один-до-багатьох». Зважаючи на істотну агрегацію даних, при створенні схеми бази даних приділялася увага як безпосередньому визначенню атрибутів сутностей самої схеми, так і перевірці з'єднання таблиць і ключових атрибутів, що беруть участь в цих зв'язках, з метою створення несуперечливої схеми з урахуванням вимог до декомпозиції і нормалізованих даних. Коректність реалізованої структури бази даних і таблиць перевірялася шляхом введення пробних тестових даних, що передбачають практично всі можливі варіанти і поєднання значень на рівні вимог обмежень цілісності до цих даних. Таким чином, уточнювалися раніше прийняті рішення відносно структури і кількості таблиць, а також перевірялися види обмежень і встановлених міжтабличних зв'язків для агрегатованих даних.
Рисунок 2.1 - Структурна схема бази даних
.2 Опис полів таблиць структурної схеми бази
даних
Таблиця Students: зберігає дані атрибутів студентів.
Призначення полів таблиці:- поле первинного ключа;- П.І.Б. студента.
Таблиця Dogovora: зберігає дані атрибутів договорів.
Призначення полів таблиці:- поле первинного ключа;_ID - вторинний ключ, посилається на таблицю Students;_Dogovora - номер договору;
Data_Dogovora - дата укладення договору;- найменування спеціальності;ik - П.І.Б. замовника;- адреса замовника;- контактний телефон;- сума навчання за рік;- ознака поточного стану договору;_Shifr - шифр спеціальності;- коментар до договору;- рік початку навчання;- курс, з якого почато навчання;- номер семестру, з якого почато навчання;- рік припинення дії договору.
Таблиця PlanMoney: зберігає дані атрибутів календарного плану оплати за навчання на весь період дії договору.
Призначення полів таблиці:- унікальне службове поле;_ID - вторинний ключ, посилається на таблицю Students;- навчальний рік;_Summa - вартість навчання в цьому навчальному році; _Summa - вартість навчання в першому півріччі;_Summa - вартість навчання в другому півріччі;- поточний курс навчання;_ID - поле посилання на запис у таблиці Dogovora;- номер групи студента в цьому навчальному році.
Таблиця Platez: зберігає дані атрибутів платежів, що приходять.
Призначення полів таблиці:- поле первинного ключа;_ID - вторинний ключ, посилається на таблицю Students;- дата платежу;- сума платежу;- коментар до платежу;_ID - поле посилання на запис у таблиці Dogovora;- навчальний рік, до якого має відношення платіж.
Таблиця Spetz: зберігає дані атрибутів спеціальностей і тарифів за навчання.
Призначення полів таблиці: _Spetz - унікальне службове поле;- назва спеціальності;_Code - шифр спеціальності;_Year - сума за рік навчання;_Semestr1 - тариф за перше півріччя;_Semestr2 - тариф за друге півріччя.
Таблиця Groups: зберігає дані атрибутів груп і кураторів груп.
Призначення полів таблиці:_Group - унікальне службове поле;_ID - поле посилання на запис у таблиці Spetz;- навчальний рік;_Name - номер групи;- П.І.Б. куратора групи.
Для отримання безпосередньо самих агрегатів даних створювалися запити-вибірки, що представляють агрегат даних. Так, вибіркам підлягали дані, використовувані екранними формами для візуального відображення, а також дані, необхідні в ряді інших технологічних операцій.
На рисунку 2.2 приведена основна вибірка-агрегат
даних, що представляє сутність «Студент».
.3 Процедури бази даних STUD
При розробці серверної частини системи використовувалася мова запитів до даних T-SQL. Реалізація основних алгоритмів виконана у вигляді процедур, що зберігаються, і використовує разом з програмним кодом на мові T-SQL наперед зумовлені вибірки-агрегати даних, для створення яких були використані засоби побудови Management Studio Express.
Для ефективної роботи з даними і досягнення максимальної продуктивності основні технологічні операції реалізовані у вигляді процедур, що зберігаються і працюють на стороні сервера. До них відносяться:_DogovorStudent;_DogovorStudent;_DogovorStudentInterrupt;_DogovorStudent;_Spetz; _Group.
Процедура Insert_DogovorStudent поміщає дані договору в таблицю Dogovora і одночасно формує фінансовий план на всі роки навчання шляхом додавання відповідних записів, що представляють план в зв'язаній дочірній таблиці PlanMoney. Здійснює перевірку на наявність запису про студента в дочірній таблиці Students, і при відсутності такої додає її.
Процедура Update_DogovorStudent оновлює атрибути таблиці Dogovora, може оновлювати й видаляти записи в таблиці PlanMoney, міняє атрибути таблиці Students.
Процедура Update_DogovorStudentInterrupt корегує записи фінансового плану в таблиці PlanMoney у відповідності з даними про припинення договору.
Процедура Delete_DogovorStudent видаляє запис договору з таблиці Dogovora, фінансовий план із зв'язаної дочірньої таблиці записи платежів, що відносяться до договору із зв'язаної таблиці Platez, перевіряє на наявність зв'язаних договорів із записом в таблиці Students і при відсутності таких видаляє відомості про студента з таблиці Students.
Процедура Insert_Spetz вводить нову спеціальність і тарифи на навчання по ній у таблицю довідника спеціальностей і тарифів Spetz.
Процедура Insert_Group вводить нову групу в таблицю довідника груп і кураторів Groups.
Решта процедур маніпулювання і обслуговування
даних формується на стороні «клієнта» і ініціює виконання на стороні сервера.
Рисунок 2.2 - Вибірка-агрегат даних для сутності «Студент»
2.4 Первісні дані автоматизованої системи обліку
студентів коледжу, що навчаються за контрактом
Щоб почати роботу з базою даних і надалі мати повні відомості про всіх студентів, що навчаються за контрактом, необхідно виконати попередній ввід наступних даних:
) заповнити довідник тарифів і спеціальностей;
) заповнити даними довідник груп і кураторів;
) ввести дані поточних і передуючих даному навчальному року договорів.
Для роботи з отриманими в результаті розрахунків даними, а також для статистичного спостереження за контингентом студентів-контрактників необхідно ввести відомості про всіх тих студентів-контрактників, що навчаються в коледжі. Так студенти, договір яких укладений три роки тому, продовжать навчання в новому навчальному році на четвертому курсі, інші, договір з якими був укладений пізніше, продовжуватимуть навчання ще в перебіг декількох років. Для отримання коректних відомостей про стан фінансової дисципліни й оплати потрібна наявність всіх даних про всіх студентів-контрактників, що є в даний час студентами. Слід враховувати, що розцінки за навчання за раніше укладеними договорами відмінні від тарифів, що діють в поточному навчальному році, і різняться для кожного року укладення договору і для кожної спеціальності. Номери груп, у яких навчаються ці студенти, теж повинні бути введені з урахуванням ретроспективи і повинні відповідати наявному переліку груп з урахуванням курсу і року навчання. Пропонується наступна послідовність введення даних: у першу чергу заповнюється довідник найменувань спеціальностей, вводяться тарифи на навчання відповідно навчальному року (року укладення договору) трирічної давності. У подальшому, зважаючи на статичність списку спеціальностей, змінюватися будуть тільки тарифи, не зачіпаючи найменування спеціальностей і їх шифрів, а змінні тарифи повинні відповідати розцінкам за навчання для конкретного року укладення договору.
Довідник номерів груп заповнюється з урахуванням ретроспективи на три роки назад відповідно до року укладення договорів, по яких ще навчаються в коледжі. Після заповнення довідника спеціальностей і тарифів, а також довідника груп і кураторів слід ввести всі договори для студентів цього року навчання. З огляду на те, що борги за навчання розглядаються в межах поточного навчального року, введення платежів за попередні роки навчання не є обов'язковим. Таким чином, необхідно ввести договори для всіх студентів всіх минулих років, в яких було укладено договори, і по яких ще продовжується навчання в коледжі. Надалі для введення наступних договорів нового року навчання необхідно буде корегувати відповідні розцінки в довіднику тарифів.
Необхідно враховувати, що серед договорів,
укладених раніше поточного навчального року, можуть бути і достроково завершені
договори, дія яких закінчується в цьому ж навчальному році. У такій ситуації
передбачено включення самим користувачем опції установки стану дострокового
завершення, що знаходиться на формі договору, яку потрібно встановити після
реєстрації такого договору, оскільки за умовчанням для реєстрованих договорів
встановлюється статус таких, що діють.
3. Експлуатаційний розділ
.1 Інсталяція програми
Інсталяція програми вимагає крім самої програми (клієнтської її частини) та бази даних наявність .NET Framework 2.0 і SQL Server 2005 Express Edition.Basic Express має нову технологію розгортання ClickOnce від Microsoft, що є складовою частиною концепції Smart Client, яка дозволяє створювати Windows Forms-програми, що використовують розширені можливості клієнта по безперешкодному розповсюдженню програм, при використанні якої розповсюдження Windows-програм проводиться також просто, як і установка web-програм. Програму можна автоматично копіювати на Web або ftp-сайт для розповсюдження, у загальну папку, або записати на компакт-диск. Всі ці можливості доступні в майстрові Publish Wizard на закладці Publish у вікні властивостей проекту.
Майстер публікацій Publish Wizard дозволяє вказати, чи буде програма встановлюватися локально у користувачів, або буде доступна для запуску тільки з мережного ресурсу.
З використанням ClickOnce реалізується наступний сценарій установки: користувач запускає «Setup», завантажується «Deployment Manifest» (XML-файл з розширенням .deploy), що містить вказівку на поточну версію програми. Це приводить до завантаження ще одного маніфесту, що описує склад програми. За інформацією із цих двох файлів завантажуються необхідні зборки, а також проводиться створення ярликів у меню «Пуск» і створення в реєстрі ключа для аплета «Установка і видалення програм».
Оскільки в Publish Wizard вибраний варіант available offline, то при натисненні користувачем кнопки Install програма буде встановлена на комп'ютер і з'явиться в меню «Пуск» - > «Всі програми» і в списку «Установка і видалення програм».
Користувачеві, щоб установити програму, досить буде натиснути Install. При цьому повинні бути встановлені і всі необхідні для роботи компоненти - .NET Framework 2.0 і SQL Server 2005 Express Edition.
Для видалення програми необхідно скористатися аплетом Uninstall, при цьому будуть також видалені і всі ярлики програми.
Якщо потрібно щось поміняти або відновити
програму й установити її нову версію, досить запустити ClickOnce Publish Wizard
ще раз. Параметри роботи механізму ClickOnce в програмі також настроюються на
сторінці Publish. Можна вказати адресу для публікації програми, її назву,
додатковий URL і частоту перевірки нових версій. Після цього нова версія
програми буде скопійована на сервер. Коли користувач запустить попередню
встановлену у нього версію, механізм ClickOnce виявить, що є свіжіша версія
програми і запропонує користувачеві завантажити і відновити програму в
корпоративній мережі. Опублікована на сервері програма разом із своїми
маніфестами викачується по мережі і встановлюється на станцію користувача в
каталог "C:\Documents and Settings\%User%\Local Settings\Apps\2.0\".
При установці наступної версії, по тому ж шляху створюється наступний каталог.
На станції зберігаються 2 версії програми - остання й попередня. Через «Contro
Panel» -> «Add/Remove Programs» можна запустити діалог видалення й вибрати
між опціями - «Видалити програму/Відкатитися на попередню версію». У «Contro Panel»
-> «Add/Remove Programs» є тільки одне посилання на встановлену через
ClickOnce програму.