Смекни!
smekni.com

Автоматизація процесу обліку (стр. 3 из 5)

Визначення таблиці “Розробник”:

CREATE TABLE rozrobnuk (

first_name varchar(30) NOT NULL default '',

last_name varchar(30) NOT NULL default '',

surname varchar(30) NOT NULL default '',

id int(11) NOT NULL auto_increment,

addr varchar(30) default NULL,

PRIMARY KEY (id),

UNIQUE KEY (first_name,last_name,surname)

) ;

Визначення таблиці “Дистрибутив”:

CREATE TABLE distr (

name varchar(30) NOT NULL default '',

version varchar(30) NOT NULL default '',

id int(11) NOT NULL auto_increment,

addr varchar(30) NOT NULL default '',

PRIMARY KEY (id),

UNIQUE KEY (name,version)

) ;

Визначення таблиці “ПЗ”:

CREATE TABLE PZ (

name varchar(30) NOT NULL default '',

version varchar(10) NOT NULL default '',

dev_id int(11) default 0,

distr_id int(11) default 0,

date date default NULL,

licence varchar(30) default NULL,

addr varchar(30) NOT NULL default '' UNIQUE,

PRIMARY KEY (name,version),

FOREIGN KEY (dev_id) REFERENCES dev(id)

ON DELETE SET NULL

ON UPDATE CASCADE,

FOREIGN KEY (distr_id) REFERENCES distr(id)

ON DELETE SET NULL

ON UPDATE CASCADE

) ;

Додаємо індекси:

CREATE INDEX pib ON dev(first_name,last_name,surname);

CREATE INDEX pzindex1 ON PZ(name,version);

CREATE INDEX distrindex1 ON distr(name,version);

Усі таблиці, які наведені у схемі фізичної моделі, належать до третьої нормальної форми, оскільки всі поля містять не більше одного значення, жодне з ключових полів не пусте, всі поля, що не входять до первинного ключа, пов’язані повною функціональною залежністю з первинним ключем.

Після створення фізичної моделі даних можна зробити наступні висновки:

· схема зв’язку фізичної та логічної моделі ідентичні;

· в ході роботи була досягнута третя нормальна форма;

· підчас оцінки якості структури бази даних аномалій не виявлено.

2.6 Кодування і тестування програмного забезпечення

База даних “Репозиторій ПЗ” була розроблена у середовищі MySQL + php. Вона реалізована за допомогою таблиць, форм, запитів та звітів. Також для нормального функціонування бази даних було написано програмний код, який представлено у Додатку А.

При тестуванні бази даних “Репозиторій ПЗ ” не було виявлено помилок в роботі. Для запуску бази даних , використовуючи браузер mozilla, заходимо на адресу http://217.77.222.218. При запуску бази даних відкрилася форма “Репозиторій ПЗ”, в якій було натиснуто кнопку “Додати/видалити автора”, потім відкрилася форма “Додати/видалити автора”, в якій було заповнено поля ім”я, по-батькові, та прізвише автора, його email-адресу значеннями (імя1,побатькові1,прізвище1,name1@mail.ru). Після натискання кнопки “Додати автора” внесені дані з’являються в таблиці нижче. Відповідне звернення фіксується в журналі бази даних. Повторюємо дану операцію 4 рази для різних авторів. Далі вибираємо будь-якого автора з таблиці нижче та натискаємо кнопку “Видалити автора”. Вибраний автор зникає з таблиці. Для повернення до форми “Репозиторій ПЗ” натискаємо кнопку “Повернутися на головну сторінку”.

Також у формі “Репозиторій ПЗ” було натиснуто кнопку “Додати/видалити дистрибутив”, після цього відкрилася форма “Додати/видалити дистрибутив”, де було заповнено поля Назва, Версія, ftp-адреса. Після натискання кнопки “Додати дистрибутив” дані про внесений до бази даних дистрибутив з’являються в таблиці нижче “Наявні дистрибутиви”. Повторюємо вищевказані операції 3 рази. Введені дистрибутиви з’являються в таблиці “Наявні дистрибутиви”. Вибираємо рядок таблиці та натискаємо кнопку “Видалити дистрибутив”. Вибраний рядок (а отже і дистрибутив) зникає з таблиці.Для повернення до форми “Репозиторій ПЗ” натискаємо кнопку “Повернутися на головну сторінку”. Відкривається форма “Репозиторій ПЗ”.

Натиснувши в формі “ Репозиторій ПЗ ” кнопку “Додати/видалити ПЗ”, відкрилася форма «Додати/видалити ПЗ», в якій було заповнено поля назву, версію, дату створення, ліцензію та ftp-адресу вихідних файлів програми. Також обрано автора та дистрибутив із вже наявних у базі даних. Дані про внесене ПЗ з’являються у таблиці “Наявне ПЗ”. Повторюємо операцію 5 разів. Інформація про все ПЗ введене в базу з’являється в таблиці “Наявне ПЗ”. З таблиці вибираємо 2 рядка, які, відповідно, описують два екземпляра ПЗ. Після натискання кнопки “Видалити ПЗ” вибрані рядки зникають з таблиці “Наявне ПЗ”. Для повернення до форми “Репозиторій ПЗ” натискаємо кнопку “Повернутися на головну сторінку”.

Натиснувши в формі “ Репозиторій ПЗ ” кнопки “Пошук ПЗ за датою”, “Пошук ПЗ за автором”, “Пошук ПЗ за назвою”, “Пошук автора”, “Звіт” було виведено запит за відповідним критерієм. Після введення необхідного критерію з’являвся звіт, у якому було представлено кортежі бази даних, які задовольняють заданий критерій.

Для пошуку програмного забезпечення за приблизною датою створення натискаємо в формі “Репозиторій ПЗ” кнопку “Пошук ПЗ за датою”. З’являється форма “Пошук ПЗ за датою” в якій з випадаючих списків вибираємо початкову та кінцеву дату. Після натискання кнопки “Пошук” в таблиці “Звіт ПЗ” нижче з’являється інформація про програмне забезпечення, яке сворене пізніше початкової та раніше кінцевої дати. Для отримання вихідних файлів ПЗ натискаємо на посилання в колонці ftp-адреса та переходимо за відповідною адресою.Для повернення до форми “Репозиторій ПЗ” натискаємо кнопку “Повернутися на головну сторінку”.

Висновки

Підчас розробки проекту бази даних „Репозиторій ПЗ” були проведені обстеження та детальний аналіз предметної області, були створені функціональна, концептуальна, логічна та фізична моделі бази даних. Також були детально проаналізовані усі елементи, з яких складається даний програмний продукт та залежності між ними. Для розробки даного програмного продукту було використано MySQL та php – відкриті, прозорі, безкоштовні та переносимі рішення.

Створена електронна база даних значно підвищує ефективність праці у процесі обліку програмного забезпечення, оскільки дозволяє швидко реалізувати можливості пошуку ПЗ: за автором, назвою, датою створення; можливість реєстрації дистрибутива, а саме фіксування таких даних, як: назва, версія, ftp-адреса дистрибутива; можливість реєстрації автора, а саме занесення до бази даних такої інформації: ім”я, по-батькові, та прізвише автора, його email-адресу; можливість реєстрації програмного забезпечення, а саме занесення до бази даних такої інформації: назву, версію, дату створення, ліцензію та ftp-адресу вихідних файлів програми, автора та дистрибутив із вже наявних у базі даних.; можливість редагування інформації про вже зареєстроване програмне забезпечення; можливість переглядати статистичні дані про все наявне програмне забезпечення.

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

Отже, розроблене програмне забезпечення повністю задовольняє поставлені до нього вимоги. Може бути використане за призначенням як примітивний репозиторій та як приклад для інших проектів.
Список використаних джерел

1. Гарсиа-Молина, Гектор, Ульман, Джеффи, Д., Уидом, Джениффер. Системы баз данных. Полний курс.: Пер. с англ. – М.: Издательский дом «Вильямс», 2004. -1088 с.

2. Кирилов В.В. Основи проектирования реляционних баз даних. Учебное пособие. –СПб.:ИТМО, 1994. – 90 с.

Додаток А – Текст програми

index.php

<?php include ("header.inc.html"); echo myheader(); ?>

<?php

function myhref($href) {

$style = " style=&bsol;"border: 1px solid black; cursor:pointer&bsol;"";

$href = " onclick=&bsol;"location.href='$href'&bsol;"";

$rollover = " onmouseover=&bsol;"this.style.background='#c0c0c0'&bsol;" onmouseout=&bsol;"this.style.background='#d3d3d3'&bsol;"";

return $style.$rollover.$href;

}

?>

<table align=center border=0 cellpadding=10 cellspacing=10 class="text" style="border: 1px solid black">

<tr class=h1 bgcolor="#c0c0c0">

<td align="center" colspan=2>=[ Репозиторій ]=</td>

</tr>

<tr class="h2" bgcolor="#c0c0c0">

<td align="center">Пошук</td>

<td align="center">Адміністрування</td>

</tr>

<tr onmouseover="this.style.backgroundcolor=lightgreen";>

<td align="center" <?php echo myhref("./scripts/sDate.php") ?> >ПЗподаті</td>

<td align="center" <?php echo myhref("./scripts/pz.php") ?> >ПЗ</td>

</tr>

<tr>

<td align="center" <?php echo myhref("./scripts/sAuthor.php") ?> >ПЗпоавтору</td>

<td align="center" <?php echo myhref("./scripts/distr.php") ?> >Дістр</td>

</tr>

<tr>

<td align="center" <?php echo myhref("./scripts/sName.php") ?> >ПЗпоназві</td>

<td align="center" <?php echo myhref("./scripts/afftar.php") ?> >Автор</td>

</tr>

<tr>

<td align="center" <?php echo myhref("./scripts/sAName.php") ?> >Авторапоімені</td>

<td>&nbsp;</td>

</tr>

<tr>

<td align="center" <?php echo myhref("./scripts/sAll.php") ?> >Все!</td>

<td align=center class=foo> <div style="cursor:pointer" onclick="location.href='lic.php'">license</a></td>

</tr>

</table>

<?php $printLink=1; include("footer.inc.html"); ?>

header.inc.html

<?php

function myheader( $title="Репозиторій" ) {

$header = "<!DOCTYPE HTML PUBLIC &bsol;"-//W3C//DTD HTML 4.01 Transitional//EN&bsol;">&bsol;n";

$header = $header . "<html>&bsol;n<head>&bsol;n<title>".$title."</title>&bsol;n";

$header = $header . "<link rel=&bsol;"stylesheet&bsol;" type=&bsol;"text/css&bsol;" href=&bsol;"/styles.css&bsol;">&bsol;n";

$header = $header . "</head>&bsol;n&bsol;n<body bgcolor=&bsol;"#d3d3d3&bsol;"&bsol;n>";

return $header;

}

?>

footer.inc.html

<table cellpadding="10" cellspacing="10" border=0 class=foo align="center">

<tr valign="middle">

<td align="center">

<?php

if ( !$printLink == 1 ) echo "<a href=/index.php>=&nbsp;Повернутися на головну сторінку&nbsp;=</a><br><br><br>";

?>

[ June, 03..04, 2007 (c) ]

</td>

</tr>

</table>

</body>

</html>

styles.css

a {

font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;

color: Navy;

font-size: 9pt;

text-decoration: none;

}

a:hover { color: #ff0000; }

.h1 {

font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;

font-size: 16pt;

font-weight: bold;

vertical-align: middle;

}

.h2 {

font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;

font-size: 12pt;

font-weight: bold;

vertical-align: middle;

}

.text {

font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;