Гнучка система інформаційної підтримки підвищення кваліфікації персоналу ДП № 9

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Украинский
    ,
    Формат файла:
    MS Word
    1,09 Мб
  • Опубликовано:
    2012-09-19
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Гнучка система інформаційної підтримки підвищення кваліфікації персоналу ДП № 9

Міністерство освіти і науки України

Криворізький інститут

Кременчуцького університету економіки, інформаційних технологій і управління

Кафедра технічної кібернетики





ДИПЛОМНА РОБОТА

зі спеціальності

.091402 "Гнучкі комп’ютеризовані системи та робототехніка"

ПОЯСНЮВАЛЬНА ЗАПИСКА

"Гнучка система інформаційної підтримки підвищення кваліфікації персоналу ДП № 9"











Кривий Ріг 2010

Зміст

 

Вступ

1. Постановка завдання

1.1 Найменування та галузь використання

1.2 Підстава для створення

1.3 Характеристика розробленого програмного забезпечення

1.4 Мета й призначення

1.5 Загальні вимоги до розробки

1.6 Джерела розробки

2. Основи технології клієнт-сервер

2.1 Основні поняття

2.2 Клієнт та сервер

2.3 Обов'язки та взаємодія

2.4 Трирівнева архітектура

2.5 Веб-сервер

2.6 APACHE

2.7 Можливості

3. Теоретичне дослідження PHP І MYSQL та основ роботи з ними

3.1 Вступ у PHP та MySQL

3.2 Можливості PHP

3.3 Можливості MySQL

3.4 Приклади використання PHP та MySQL

4. Розробка гнучкої клієнт-серверної системи завдяки поєднанню відкритих web технологій

4.1 Модуль PHP

4.1.1 Особливості

4.1.2 Докладний опис мови

4.2 База даних

4.2.1 Термін

4.2.2 Структуровані та неструктуровані БД

4.2.3 Характеристика БД

4.3 Системи керування базами даних

4.4 Мова SQL

4.4.1 Термін

4.4.2 Історія

4.4.3 Питання сумісності

4.4.4 Процедурні розширення

4.5 MySQL

4.5.1 Термін

4.5.2 Ліцензування

4.5.3 Історія

4.5.4 Критика

4.6.html

4.6.1 Термін

4.6.2 Історія розвитку HTML

4.6.3 Версії

4.6.4 Документ HTML

4.6.5 Семантичний HTML

4.6.6 Проект специфікації HTML 5

4.6.7 XHTML

4.7 JavaScript

4.7.1 Термін

4.7.2 Про мову

4.7.3 Використання в HTML

4.7.4 Зневадження

4.7.5 Статистика використання

5. Опис функціональних можливостей та програмної реалізації проектованої системи

5.1 Функціональне призначення та технологічні особливості розробки

5.2 Логіко-функціональна схема роботи системи

5.3 Розробка алгоритмів та програмна реалізація основних процедур системи

5.4 Опис інтерфейсу користувача

6. Економічне обґрунтування доцільності розробки програмного продукту

7. Охорона праці

7.1 Аналіз шкідливих і небезпечних виробничих факторів при роботі на комп'ютері

7.2 Заходи щодо нормалізації небезпечних і шкідливих факторів

7.3 Пожежна безпека

Висновки

Список літератури

Додатки

Вступ

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

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

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

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

Реалізація даної задачі проводиться з застосуванням мови програмування PHP та використанням системи керування базами даних MySQL. Клієнтська частина буде виконана за допомогою мови HTML, з використанням CSS та Java-Script для покращення зовнішнього вигляду, та створення динамічних сторінок на стороні клієнта.

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

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

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

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

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

мова програмування база серверна

1. Постановка завдання


1.1 Найменування та галузь використання


Найменування розробки: гнучкої системи інформаційної підтримки підвищення кваліфікації персоналу ДП№9. Розроблена система пройшла апробацію на ВАТ "АрселорМіттал Кривий Ріг".

 

1.2 Підстава для створення


Підставою для розробки є наказ № 73С-01 від 29 жовтня 2009 р. по Криворізькому інституту КУЕІТУ.

Початок робіт: 01.11.09. Закінчення робіт: 25.05.10.

 

1.3 Характеристика розробленого програмного забезпечення


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

Розроблена система пройшла апробацію в ДП№9 підприємства ВАТ "АрселорМіттал Кривий Ріг". Вона дозволяє вирішувати багато поточних задач пов'язаних з оцінюванням якості знань персоналу, які, дедалі більше, стає неможливим виконувати тільки вручну.

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

1.4 Мета й призначення


Метою дипломної роботи є розробка гнучкої системи інформаційної підтримки підвищення кваліфікації персоналу ДП№9.

Що фактично означає створення повноцінної системи тестування працівників з можливістю автоматичного оцінювання, та реєстрації результатів тестування.

Також система тестування має надавати адміністратору системи можливість швидкого та зручного реєстрування нових користувачів, та створення тестової бази.

 

1.5 Загальні вимоги до розробки


Вимоги до програмного забезпечення:

Будь-який комп'ютер, з можливістю роботи в локальній мережі;

Будь-який провідник (browser) з підтримкою технології Java-script та CSS.

Для нормального функціонування серверної частини системи достатньо будь-якого комп'ютеру на якому зможе працювати сервер Apache з підключеними модулями: PHP та MySQL.

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

 

1.6 Джерела розробки


Джерелами розробки дипломної роботи є:

·        загальний опис технології процесу;

·        довідкова література;

·        наукова література;

·        технічна література;

·        програмна документація.

2. Основи технології клієнт-сервер


2.1 Основні поняття


Архітектура клієнт-сервер є одним із архітектурних шаблонів програмного забезпечення та є домінуючою концепцією у створенні розподілених мережних застосувань і передбачає взаємодію та обмін даними між ними. Вона передбачає такі основні компоненти:

·              набір серверів, які надають інформацію або інші послуги програмам, які звертаються до них;

·              набір клієнтів, які використовують сервіси, що надаються серверами;

·              мережа, яка забезпечує взаємодію між клієнтами та серверами.

Сервери є незалежними один від одного. Клієнти також функціонують паралельно і незалежно один від одного. Немає жорсткої прив'язки клієнтів до серверів. Більш ніж типовою є ситуація, коли один сервер одночасно обробляє запити від різних клієнтів; з іншого боку, клієнт може звертатися то до одного сервера, то до іншого. Клієнти мають знати про доступні сервери, але можуть не мати жодного уявлення про існування інших клієнтів.

 

2.2 Клієнт та сервер


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

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

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

 

2.3 Обов'язки та взаємодія


Модель клієнт-серверної взаємодії визначається перш за все розподілом обов'язків між клієнтом та сервером. Логічно можна виокремити три рівні операцій:

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

·              прикладний рівень, який реалізує основну логіку застосування і на якому здійснюється необхідна обробка інформації;

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

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

·              модель тонкого клієнта, в рамках якої вся логіка застосування та управління даними зосереджена на сервері. Клієнтська програма забезпечує тільки функції рівня представлення;

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

2.4 Трирівнева архітектура


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

Для роботи з системою користувач використовує стандартне програмне забезпечення - звичайний браузер. Це позбавляє його необхідності завантажувати та інсталювати спеціальні програми (хоча інколи така необхідність все-таки виникає). Але користувачеві слід надати в розпорядженні інтерфейс, який дозволяв би йому взаємодіяти з системою і формувати запити до неї. Форми, що визначають цей інтерфейс, розміщуються на веб-сторінках та завантажуються разом з ними.

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

Найчастіше веб-сервер і серверні модулі проміжного рівня розміщуються на одному комп'ютері, хоч і являють собою окремі і логічно незалежні програмні модулі.

2.5 Веб-сервер


Веб-сервер (англ. Web Server) - це сервер, приймаючий HTTP-запити від клієнтів, зазвичай веб-браузерів, який видає їм HTTP-відповіді, зазвичай разом з HTML-сторінкою, зображенням, файлом, медіа-потоком або іншими даними. Веб-сервер - це основа Всесвітньої павутини.

Веб-сервером називають як програмне забезпечення, що виконує функції веб-сервера, так і комп'ютер, на якому це програмне забезпечення працює.

Клієнти дістаються веб-сервера за URL адресою потрібної їм веб-сторінки або іншого ресурсу.

 

2.6 APACHE


Apache HTTP-сервер - відкритий веб-сервер Інтернет для UNIX-подібних, Microsoft Windows, Novell NetWare та інших операційних систем. На сьогодні є найуживанішим Веб сервером мережі Інтернет.розроблюється та підтримується спільнотою розробників відкритого програмного забезпечення під керівництвом Apache Software Foundation.

 

2.7 Можливості


Web-сервер Apache є самостійним, некомерційним, вільно розповсюджуваним продуктом. Продукт підтримує безліч можливостей, багато з яких реалізовані як скомпільовані модулі, які розширюють основні функціональні можливості. Вони різняться від серверної підтримки мов програмування до схем аутентифікації. Існують інтерфейси для підтримки мов програмування Perl, Python, Tcl і PHP.

Популярні методи стискування на Apache включають зовнішній модуль mod_gzip, створений для зменшення розміру веб-сторінок, переданих по HTTP.

Функції віртуального хостингу дозволяють одній інсталяції Apache обслуговувати різні веб-сайти. Наприклад, одна машина, з однією інсталяцією Apache може одночасно містити www.example.com, www.test.com, test47. test-server. test.com і так далі.

3. Теоретичне дослідження PHP І MYSQL та основ роботи з ними


3.1 Вступ у PHP та MySQL


PHP - це скрипт-мова (scripting language), що вбудовується в HTML, яка інтерпретується та виконується на сервері. Простіше за все показати це на прикладі:

<html>

<head>

<title>Example</title>

</head>

<body>

<? php echo "Hi, I'm a PHP script!";? >

</body>

</html>

Після виконання цього скрипту ми одержимо сторінку, у якій буде написане Hi, І'm a PHP script! Дуже просто та легкго.

Основна відмінність від CGI-скриптів, написаних на інших мовах, типу Perl або C - це те, що в CGI-програмах ви самі пишете HTML-код, а, використовуючи PHP - ви вбудовуєте свою програму в готову HTML-сторінку, використовуючи відкриваючий та закриваючий теги (у прикладі це <? php та? >). Відмінність PHP від JavaScript, полягає в тому, що PHP-скрипт виконується на сервері, а клієнту передається результат роботи, тоді як JavaScript-код цілком передається на клієнтську машину та тільки там виконується.

Аматори Internet Information Server знайдуть, що PHP дуже схожо на Active Server Pages (ASP), а ентузіасти Java скажуть, що PHP схожо на Java Server Pages (JSP). Усі три мови дозволяють розміщати код, що виконується на Web-сервері, усередині HTML сторінок.

3.2 Можливості PHP


У декількох словах - на PHP можна зробити усе, що можна зробити за допомогою СGI-програм. Наприклад: обробляти дані з форм, генерувати динамічні сторінки, одержувати та посилати кукі (cookies). Крім цього в PHP включена підтримка багатьох баз даних (databases), що робить написання Web-аплікацій з використанням БД дуже простим. Ось неповний перелік БД, що підтримуться: Adabas, D, InterBase, Solid, dBase, mSQL Sybase, Empress, MySQL Velocis, FilePro, Oracle, Unix dbm, Informix, PostgreSQL. На додаток до всього PHP розуміє протоколи IMAP, SNMP, NNTP, POP3 та навіть HTTP, а також має можливість працювати із сокетами (sockets) та спілкуватися по інших протоколах.

 

3.3 Можливості MySQL


MySQL підтримує мову запитів SQL у стандарті ANSI 92, та крім цього має безліч розширень до цього стандарту, яких немає в жодній інший СУБД.

Короткий перелік можливостей MySQL.

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

·              Кількість рядків у таблицях може досягати 50 млн.

·              Швидке виконання команд. Можливо MySQL найшвидший сервер з існуючих.

·              Проста та ефективна система безпеки.

MySQL дійсно дуже швидкий сервер, але для досягнення цього розроблювачам довелося пожертвувати деякими вимогами до реляційних СУБД. У MySQL відсутні:

·              Підтримка вкладених запитів, типу SELECT * FROM table1 WHERE id IN (SELECT id FROM table2). Стверджується, що така можливість буде у версії 3.23.

·              Не реалізована підтримка транзакцій. Замість пропонується використовувати LOCK/UNLOCK TABLE.

·              Немає підтримки зовнішніх (foreign) ключів.

·              Немає підтримки тригерів та збережених процедур.

Немає підтримки представлень (VIEW). У версії 3.23 планується можливість створювати представлення. За словами творців саме пункти 2-4 дали можливість досягти високої швидкодії. Їхня реалізація істотно знижує швидкість сервера. Ці можливості не є критичними при створенні Web-аплікацій, що в поєднанні з високою швидкодією та малою ціною дозволило серверу набути велику популярність.

 

3.4 Приклади використання PHP та MySQL


Робота з формами. У цьому прикладі показано як у PHP легко обробляти дані з HTML - форм. Створимо простий HTML файл.

<HTML>

<HEAD>

<TITLE>Запит інформації</TITLE>

<BODY>

<CENTER>

Хочете більше знати про наші товари?

<P>

<TABLE WIDTH = 400><TR><TD align = right>

<FORM ACTION="email. php3" METHOD="POST">

Ваше ім'я: <BR>

<INPUT TYPE="text" NAME="name" SIZE="20" MAXLENGTH="30">

<P>

Ваш email: <BR>

<INPUT TYPE="text" NAME="email" SIZE="20" MAXLENGTH="30">

<P>

Мене цікавлять:

<SELECT NAME="preference">

<OPTION value = "Яблука">Яблука

<OPTION value = "Апельсини">Апельсини

</SELECT>

<P>

<INPUT TYPE="submit"="Відправити запит!">

</FORM>

</TD></TR></TABLE></CENTER>

</BODY>

</HTML>

Назвемо цей файл request.html. У ньому ми вказали, що дані форми будуть оброблятися файлом email. php3. Приведемо його зміст:

<?

/* Цей скрипт одержує перемінні з request.html */"<CENTER>";"Привіт, $name. ";"<BR><BR>";"Спасибі за ваш інтерес<BR><BR>";"Вас цікавлять $preference.

Інформацію про їх ми відішлем вам на email: $email. ";"</CENTER>";

? >

Тепер, якщо користувач викличе request.html та набере у формі ім'я "Вася”, email: vasya@pupkin.com та скаже, що його цікавлять "Яблука”, а після цього натисне "Відправити запит!", те у відповідь викликається email. php3, що виведе на екран приблизно наступне:

Привіт, Вася

Спасибі за ваш інтерес.

Вас цікавлять Яблука.

Інформацію про них ми відішлемо вам на email:@pupkin.com

Тепер ми повинні дотримати обіцянку та вислати email. Для цього в PHP є функція MAIL.

Синтаксис: void mail (string to, string subject, string message, string add_headers); to - email адреса одержувача. subject - тема листа. message - власне текст повідомлення. add_headers - інші параметри заголовка листа (необов'язковий параметр). Допишемо в кінець файлу email. php3 наступний код:

<?($email, "Запит на інформацію", "$namen

Спасибі за ваш інтерес! n

Вас цікавлять $preferencen

Ми їх поширюємо безкоштовно. Звернетеся в

найближчу філію нашої компанії та одержите

шухляду цього продукту. n

");("administration@me.com",

"Був запит на інформацію. ",

"$name цікавили $preferencenадреса: $email. n");

? >

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

Робота з MySQL (збереження даних у базі даних). Для початку створюємо базу даних та таблицю. Входимо в MySQL, та виконуємо команди:

>CREATE DATABASE products;

>CREATE TABLE clients (name VARCHAR (25), email VARCHAR (25), choise VARCHAR (8));

Для спілкування з MySQL з PHP знадобляться наступні функції. int mysql_connect (string hostname, string username, string password); Створити з'єднання з MySQL.

Параметри:- ім'я хоста, на якому знаходиться база даних.- ім'я користувача.- пароль користувача.

Функція повертає параметр типу int, що більше 0, якщо з'єднання пройшло успішно, та дорівнює 0 у противному випадку. int mysql_select_db (string database_name, int link_identifier); Вибрати базу даних для роботи.

Параметри:_name - ім'я бази даних. link_identifier - ID з'єднання, що отримано у функції mysql_connect. (параметр необов'язковий, якщо він не вказується, то використовується ID від останнього виклику mysql_connect)

Функція повертає значення true або false int mysql_query (string query, int link_identifier); Функція виконує запит до бази даних.

Параметри:- рядок, що містить запит link_identifier - див. попередню функцію. Функція повертає ID результату або 0, якщо відбулася помилка. int mysql_close (int link_identifier);

Функція закриває з'єднання з MySQL.

Параметри:_identifier - див. Вище.

Функція повертає значення true або false Тепер наш файл email. php3 буде мати наступний. вигляд:

<?

/* Цей скрипт одержує змінні з request.html */

/* Деякі змінні */

$hostname = "localhost";

$username = "myusername";

$password = "mypassword";

$dbName = "products";

/* Таблиця MySQL, у якій зберігаються дані */

$userstable = "clients";

/* email адміністратора */

$adminaddress = "administration@me.com";

/* створити з'єднання */_CONNECT ($hostname,$username,$password)DIE ("Не можу створити з'єднання ");

@mysql_select_db ("$dbName")die ("Не можу вибрати

базу даних ");"<CENTER>";"Привіт, $name. ";"<BR><BR>";"Спасибі за ваш інтерес<BR><BR>";"Вас цікавлять $preference.

Інформацію ми

відішлем вам на email: $email. ";"</CENTER>";

/* Відправляємо email */($email, "Запит на інформацію", "$namenn

Спасибі за ваш інтерес! n

Вас цікавлять $preferencen

Ми їх поширюємо безкоштовно.

Звернетеся в

найближчу філію нашої компанії

та одержите шухляду цього продукту. n

");("administration@me.com",

"Був запит на інформацію. ",

"$name цікавили $preferencenадреса: $email. n");

/* Вставити інформацію про клієнта в таблицю */

$query = "INSERT INTO $userstable VALUES

('$name','$email', '$preference')";

$result = MYSQL_QUERY ($query);"Інформація про вас занесена в базу даних. ";

/* Закрити з'єднання */_CLOSE ();

? >

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

Робота з MySQL (одержання даних з бази даних). Після занесення даних, нас іноді буде цікавити питання так кого ж з наших клієнтів цікавить товар "Яблука”. Напишемо скрипт apple. php3

<? /* Скрипт показує клієнтів, що яблука люблять

більше чим апельсини */

$hostname = "localhost";

$username = "myusername";

$password = "mypassword";

$dbName = "products";

/* Таблиця MySQL, у якій зберігаються дані */

$userstable = "clients";

/* створити з'єднання */_CONNECT ($hostname,$username,$password)DIE ("Не можу створити з'єднання ");

@mysql_select_db ("$dbName") or die ("Не можу

вибрати базу даних ");

/* Вибрати всіх клієнтів - яблучників */

$query = "SELECT * FROM $userstable WHERE= 'Яблука'";

$result = MYSQL_QUERY ($query);

/* Як багато знайшлося таких */

$number = MYSQL_NUM_ROWS ($result);

/* Надрукувати всіх у красивому виді*/

$i = 0;($number == 0) {"<CENTER><P>Аматорів яблук

немає</CENTER>";

} ELSEIF ($number > 0) {"<CENTER><P>Кількість аматорів яблук: $number<BR><BR>";($i < $number) {

$name = mysql_result ($result,$i,"name");

$email = mysql_result ($result,$i,"email");"Клієнт $name любить Яблука<BR>";"Його Email: $email. ";"<BR><BR>";

$i++;

}"</CENTER>";

}

? >

Таким чином ми власне оглянули базові теоретичні та практичні принципи побудови системи, що працює з використанням технологій клієнт-серверної архітектури та бази даних.

4. Розробка гнучкої клієнт-серверної системи завдяки поєднанню відкритих web технологій


4.1 Модуль PHP


PHP (англ. PHP: Hypertext Preprocessor - PHP: гіпертекстовий препроцесор), попередньо: Personal Home Page Tools - скриптова мова програмування, була створена для генерації HTML-сторінок на стороні веб-сервера. PHP є однією з найпоширеніших мов, що використовуються у сфері веб-розробок (разом із Java,.net, Perl, Python, Ruby). PHP підтримується переважною більшістю хостинг-провайдерів. PHP - проект відкритого програмного забезпечення.інтерпретується веб-сервером в HTML-код, який передається на сторону клієнта.

На відміну від скриптової мови JavaScript, користувач не бачить PHP-коду, бо браузер отримує готовий html-код. Це є перевага з точки зору безпеки, але погіршує інтерактивність сторінок. Але ніщо не забороняє використовувати РНР для генерування і JavaScript-кодів які виконаються вже на стороні клієнта.

4.1.1 Особливості

PHP - мова, яка може бути вбудована безпосередньо в html-код сторінок, які, в свою чергу коректно будуть оброблені PHP - інтерпретатором. Механізм РНР просто починає виконувати код після першої екрануючої послідовності (<?) і продовжує виконання до того моменту, коли він зустріне парну екрануючу послідовність (? >).

Велика різноманітність функцій PHP дають можливість уникнути написання багаторядкових призначених для користувача функцій на C або Pascal.

Наявність інтерфейсів до багатьох баз даних

o     в PHP вбудовані бібліотеки для роботи з MySQL, PostgreSQL, mSQL, Oracle, dbm, Hyperware, Informix, InterBase, Sybase.

o     через стандарт відкритого інтерфейсу зв'язку з базами даних (Open Database Connectivity Standard - ODBC) можна підключатися до всіх баз даних, до яких існує драйвер.

Традиційність

Мова РНР здаватиметься знайомою програмістам, що працюють в різних областях. Багато конструкцій мови запозичені з С, Perl. Код РНР дуже схожий на той, який зустрічається в типових програмах на С або Pascal. Це помітно знижує початкові зусилля при вивченні РНР. PHP - мова, що поєднує переваги Perl і С і спеціально спрямована на роботу в Інтернеті, мова з універсальним і зрозумілим синтаксисом. І хоча PHP є досить молодою мовою, вона здобула таку популярність серед web-програмістів, що на даний момент є мало не найпопулярнішою мовою для створення веб-застосунків (скриптів).

Наявність вихідного коду та безкоштовність

Стратегія Open Source, і розповсюдження початкових текстів програм в масах, безсумнівно справили благотворний вплив на багато проектів, в першу чергу - Linux хоч і успіх проекту Apache сильно підкріпив позиції прихильників Open Source. Сказане відноситься і до історії створення РНР, оскільки підтримка користувачів зі всього світу виявилася дуже важливим чинником в розвитку проекту РНР.

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

Ефективність

Ефективність є дуже важливим чинником при програмуванні для середовищ розрахованих на багато користувачів, до яких належить і web. Важливою перевагою PHP є те, що ця мова належить до інтерпретованих. Це дозволяє обробляти сценарії з достатньо високою швидкістю. За деякими оцінками, більшість PHP-сценаріїв (особливо не дуже великих розмірів) обробляються швидше за аналогічні їм програми, написані на Perl. Проте, щоб не робили розробники PHP, виконувані файли, отримані за допомогою компіляції, працюватимуть значно швидше - в десятки, а іноді і в сотні разів. Але продуктивність PHP цілком достатня для створення цілком серйозних веб-застосунків.

4.1.2 Докладний опис мови

З точки зору системи типізації, PHP є мовою програмування з динамічною типізацією. Немає необхідності явного визначення типу змінних, хоча така можливість існує. В разі звернення до змінної, інтерпретатор PHP трактує її тип відповідно до контексту. За необхідності можливе приведення змінної до певного типу за допомогою відповідних конструкцій мови. Це може знадобитись, якщо зважити, що значення змінної можуть трактуватись по-різному в залежності від її типу. Також можливе визначення типу відповідної змінної на певному етапі виконання сценарію. Імена змінних чутливі до регістру символів.

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

Робота з рядками

Рядки ділять на два класи - рядки, що підлягають аналізу, та ті, що не підлягають. Перший клас досліджується інтерпретатором на наявність посилань на інші змінні, і за умови їхньої наявності робиться підстановка значень у відповідне місце. Крім того, клас дозволяє проводити маніпуляції з керівними символами. Символ рядка може мати лише одне з 256 значень, але є можливість працювати з багатобайтовими символами. Доступ до символів рядка можливий з використанням синтаксису, схожого на доступ до елементів масивів.надає широкий спектр функцій для пошуку та заміни тексту в рядках. Для цього використовують як традиційний підхід, так і спеціальний, що базується на використанні регулярних виразів. При цьому в мові реалізована підтримка двох видів регулярних виразів - Perl-сумісні та POSIX-сумісні, що розрізняються за синтаксисом та особливостями роботи.

Змішані типи даних

До змішаних типів належать масиви, хеші та об'єкти. Масиви в сенсі мови є наборами змінних, що згруповані в єдину змінну. Вимога однотипності наповнення масивів не ставиться. Технічно, масиви - це впорядковані карти, що відображають ключові значення на позиції змінних даних. Вмістом значення, на яке вказує ключ може бути будь-чим, що можна подати у вигляді змінної. Не існує жодних обмежень, крім об'єму пам'яті, що накладаються на кількість ключів масиву.

Особливістю мови є відмова від рівномірного розподілу ключів масивів. Реалізовано і модель багатовимірних масивів, причому без явного обмеження глибини вкладеності. Корисною властивістю PHP є можливість асоціації масивів із функцією зворотного виклику. Ці функції дозволяють проводити дії над одним чи кількома масивами в пакетному режимі.

Також, існують два спеціальні типи даних - ресурс та NULL. Ресурс - спеціальна змінна, що містить посилання на зовнішній ресурс. Ресурси створюються та використовуються в спеціалізованих функціях. Оскільки тип містить спеціальні вказівники на відкриті файли, під'єднання та інше, то будь-які дії над значенням ресурсу не мають сенсу.

Область видимості змінної - середовище, в якій вона визначена. Розрізняють локальні та глобальні змінні. За замовчуванням, всі змінні мають локальний характер дії. Виділяють особливий тип змінних - статичні, що дозволяє повторне звернення до змінної в певному сегменті коду, причому змінна буде зберігати попередньо отримане значення. Існує також поняття суперглобальний змінних, які є місцем збереження даних оточення або даних, отриманих ззовні. Підтримується концепція динамічних змінних та функцій.

Константи в PHP - ідентифікатори простих значень. Можливе визначення константи, причому після її оголошення стає неможливою зміна її значення чи анулювання. Константи можуть мати лише скалярні значення. Підтримується можливість отримання значення константи за динамічним ім'ям. Область видимості констант буде глобальною для сценарію та всіх під'єднаних компонентів. Також в ядрі мови визначено чимало системних констант.

Конструкції мови

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

Функції в сенсі мови є контейнерами коду, причому можливе включення інших функцій та класів. На цьому і базується можливість умовного визначення функції. В цьому випадку висувається вимога попередньої декларації викликаної функції, що не обов'язкове в інших випадках. Можливості перевизначення чи деактивації функції не існує. Результат, який повертає функція може мати будь-який тип.

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

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

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

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

Додаткові можливості

Мова явно підтримує HTTP cookies відповідно до специфікацій Netscape. Це дозволяє проводити встановлення та читання невеликих сегментів даних на стороні клієнта.надає можливість організації роботи з користувачем протягом сеансів (сесій). В сесії можна зберігати різні дані, включаючи об'єкти.

Ліцензія

Ліцензія PHP має назву The PHP License version 3.0, ЧАП по цій ліцензії та її текст можна знайти на офіційному сайті The PHP Group, а також файл із ліцензією містить дистрибутив PHP (звичайно license. txt).

Перші версії

Історія PHP починається з 1995 року, коли Расмус Лердорф (Rasmus Lerdorf) створив простий за стосунок мовою Perl, що аналізував відвідування користувачами його резюме на веб-сайті. Потім, коли цим за стосунком вже користувалися кілька чоловік, а число охочих одержати його постійно збільшувалося, Лердорф назвав своє творіння Personal Home Page Tools версія 1 і виставив для вільного завантаження. З цієї миті почався небувалий зліт популярності PHP.

Як це завжди буває, терміново було потрібно доопрацювання і нові доповнення. Для їхньої реалізації Расмус створює нову версію пакету, тепер уже написану С. Отриманий таким чином інструмент набуває робочої назви/FI (Personal Home Page / Forms Interpreter - Персональна Домашня сторінка / Інтерпретатор Форм), надалі він також буде відомий під назвою2. Ця версія вже більшою мірою схожа на сьогоднішній PHP. Вона мала синтаксис і спосіб іменування змінних в стилі мови Perl, можливість вбудовування PHP операторів в html-код сторінки, автоматичну інтерпретацію форм, інтеграцію з базами даних. При цьому все працювало досить швидко, оскільки PHP прикомпилювалось до веб-серверу Apache. До 1997 року PHP використовувався вже на 50,000 доменах (не більше 1% всіх веб-серверів).

У тому ж 1997 році до проекту PHP підключилися Зеєв Сураський (Zeev Suraski) і Енді Гутманс (Andi Gutmans). Ці студенти Техніону, одного з ізраїльських університетів, намагалися використовувати PHP/FI для одного з комерційних університетських проектів. При цьому їм довелося зіткнутися з багатьма труднощами і обмеженнями цієї технології. Вивчаючи початковий код PHP 2, Зеєв і Енді дійшли висновку про необхідність доопрацювання, а точніше істотної переробки PHP, особливо в плані синтаксису мови. Протягом декількох місяців вони блискуче впоралися з цим завданням.

Закінчивши роботу Зеєв і Енді домовились з Расмусом про співпрацю в галузі розвитку та вдосконалення мови. З цієї миті з'являється PHP Group - група однодумців, що працюють над розвитком технології PHP. Одержаний продукт з’явився на світ у 1998 році під назвою PHP 3.

При цьому головною особливість PHP 3 була можливість розширення ядра, що привернуло до роботи над PHP безліч сторонніх розробників, що створюють спеціалізовані модулі. Їх наявність дала PHP можливість працювати з величезною кількістю баз даних, протоколів, підтримувати велике число API. До кінця 1998 кількість користувачів PHP перевалила за 100000, а PHP був вже встановлений на не менше ніж 10% серверах Інтернету. У той ж час значному поширенню даної мови сприяли публікації в електронній пресі та вихід книжок по вивченню PHP.

Відразу ж після виходу PHP 3, Енді Гутманс і Зеєв Сураський почали переробку ядра PHP. В першу чергу належало вирішити проблему підвищення продуктивності. Новий продукт, названий Zend Engine (від імен творців: Zeev і Andi), успішно справлявся з поставленим завданням і був реалізований в 1999 році. Основними реалізованими ідеями є можливість компіляції сценарію у виконуваний модуль, за рахунок чого продуктивність можна було підняти на порядок.

Визнання та поширення4, що працює на цьому ядрі, вийшов в 2000 році. На додаток до поліпшення продуктивності, PHP 4 мав нові можливості по підтримці сесій, буферизацію виводу, безпечні способи обробки інформації, що вводиться користувачем, і нові мовні конструкції. З виходом 4 версії PHP став використовуватися вже на більш ніж 20% доменів Інтернету.

За час з 2000 по 2004 рік продовжувалися активні роботи по поліпшенню 4 версії, але майже відразу PHP Group приступила до продумування можливостей нової версії. В першу чергу було вирішено підсилити об'єктні можливості мови, що дозволяло використовувати його для реалізації масштабних проектів. Роботи із створення версії 5 велися тривалий час, в них брало участь рекордна кількість фахівців, зокрема Стерлінг Хьюз (Sterling Hughes) і Маркус Бергера (Marcus Boerger).

У липні 2004 року виходить офіційний реліз PHP 5. В першу чергу, як і планувалося, було перероблено весь механізм роботи з об'єктами. І якщо в попередніх версіях об'єктно-орієнтоване програмування на PHP було можливе в мінімальному ступені, а тому і використовувалося на практиці не часто, то PHP 5 володіє прекрасним потенціалом реалізації об'єктного програмування. Окрім цього, PHP збагатився рядом цінних розширень для роботи з XML, різними джерелами даних, генерації графіки і інше.

Серед інших украй корисних доповнень в PHP 5 слід зазначити нову схему обробки виключень. Конструкція try/catch/throw дозволяє весь код обробки помилок локалізувати в одному місці сценарію.

Всі основні бібліотеки для роботи з XML, запозичені в PHP 4, були піддані серйозній переробці. Такі популярні розширення, як SAX, DOM і XSLT, тепер використовують інструмент libxml2, що робить їх ще ефективнішими.

У PHP 5 також включені два нові модулі для роботи з протоколами - SimpleXML і SOAP. SimpleXML дозволяє значно спростити роботу з XML-даними, представляючи вміст XML-документа у вигляді PHP-об'єкту. Розширення SOAP дозволяє будувати на PHP сценарії, що обмінюються інформацією з іншими за стосунками за допомогою XML-повідомлень поверх існуючих веб-протоколів, наприклад HTTP. Модуль для роботи з SOAP для PHP 5 надає розробникам засіб для достатньо швидкого створення ефективних SOAP-клієнтів і SOAP-серверів.

Новий модуль PHP 5 MySQLi (MySQL Improved) призначений для роботи з MySQL-сервером версій 4.1.2 і вище, реалізовуючи не тільки процедурний, але і об'єктно-орієнтований інтерфейс до MySQL. Додаткові можливості цього модуля включають - SSL, контроль транзакцій, підтримка реплікації і ін. Очевидно, що, на цьому історія PHP не закінчується. Слід очікувати наступних версій мови із розширеними можливостями.

 

4.2 База даних


4.2.1 Термін

База даних (БД) - впорядкований набір логічно взаємопов'язаних даних, що використовується спільно, та призначений для задоволення інформаційних потреб користувачів. У технічному розумінні включно й система керування БД.

Головним завданням БД є гарантоване збереження значних обсягів інформації (т. зв. записи даних) та надання доступу до неї користувачеві або ж прикладній програмі. Таким чином БД складається з двох частин - збереженої інформації, та системи управління нею. З метою забезпечення ефективності доступу записи даних організовують як множину фактів (елемент даних).

4.2.2 Структуровані та неструктуровані БД

Структуровані БД використовують структури даних, тобто структурований опис типу фактів за допомогою схеми даних, більш відомої як модель даних. Модель даних описує об'єкти та взаємовідносини між ними. Існує декілька моделей (чи типів) баз даних, основні: плоска, ієрархічна, мережна та реляційна. Приблизно з 2000 року більше половини БД використовують реляційну модель.

До неструктурованих БД відносяться повнотекстові бази даних, які містять неструктуровані тексти статей чи книг у формі, що дозволяє здійснювати швидкий пошук (як наприклад вікіпедія).

4.2.3 Характеристика БД

Часто зустрічається характеристика БД на основі певних параметрів або необхідних вимог, наприклад:

·        значна кількість даних

·        незалежність даних

·        відкритий доступ до даних

·        підтримка транзакцій з гарантією відповідних властивостей

·        гарантована відсутність збоїв

·        одночасна робота з багатьма користувачами

З подальшим розвитком БД змінюються й ці вимоги та додаються нові, тому одностайності щодо повноти цієї характеристики немає.

 

4.3 Системи керування базами даних


Систе́ма керування ба́зами да́них (СКБД) - комп'ютерна програма чи комплекс програм, що забезпечує користувачам можливість створення, збереження, оновлення, пошук інформації та контролю доступу в базах даних.

Основні характеристики СКБД:

·        Контроль за надлишковістю даних

·        Непротирічність даних

·        Цілісність описується за допомогою обмежень

·        Незалежність прикладних програм від даних

·        Спільне використання даних

·        Підвищений рівень безпеки

Можливості СКБД

·        Дозволяється створювати БД (здійснюється за допомогою мови визначення даних DDL (Data Definition Language))

·        Дозволяється додавання, оновлення, видалення та читання інформації з БД (за допомогою мови маніпулювання даними DML, яку часто називають мовою запитів)

·        Можна надавати контрольований доступ до БД за допомогою:

o   Системи забезпечення захисту, яка запобігає несанкціонованому доступу до БД;

o   Системи керування паралельною роботою прикладних програм, яка контролює процеси спільного доступу до БД;

o   Система відновлення - дозволяє відновлювати БД до попереднього непротирічного стану, що був порушений в результаті збою апаратного або програмного забезпечення

Основні компоненти середовища СКБД

·        апаратне забезпечення

·        програмне забезпечення

·        дані

·        процедури - інструкції та правила, які повинні враховуватись при проектуванні та використанні БД

·        користувачі

·        адміністратори даних (керування даними, проектування БД, розробка алгоритмів, процедур) та БД (фізичне проектування, відповідальність за безпеку та цілісність даних)

·        розробники БД

·        прикладні програмісти

·        кінцеві користувачі

Архітектура СКБД

Існує трирівнева система організації СКБД ANSI-SPARC, при якій існує незалежний рівень для ізоляції програми від особливостей представлення даних на нижчому рівні.

Рівні:

.        Зовнішній - представлення БД з точки зору користувача.

2.       Концептуальний - узагальнене представлення БД, описує які дані зберігаються в БД і зв'язки між ними. Підтримує зовнішні представлення, підтримується внутрішнім рівнем.

.        Внутрішній - фізичне представлення БД в комп'ютері.

Логічна незалежність - повна захищеність зовнішніх моделей від змін, що вносяться в концептуальну модель.

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

 

4.4 Мова SQL


4.4.1 Термін

SQL (англ. Structured query language - мова структурованих запитів) - декларативна мова програмування для взаємодії користувача з базами даних, що застосовується для формування запитів, оновлення і керування реляційними БД, створення схеми бази даних і її модифікація, система контролю за доступом до бази даних. Сам по собі SQL не є ні системою керування базами даних, ні окремим програмним продуктом. Не будучи мовою програмування в тому розумінні, як C або Pascal, SQL може формувати інтерактивні запити або, будучи вбудованою в прикладні програми, виступати в якості інструкцій для керування даними. Стандарт SQL, крім того, вміщує функції для визначення зміни, перевірки і захисту даних.- це діалогова мова програмування для здійснення запиту і внесення змін до бази даних, а також управління базами даних. Багато баз даних підтримує SQL з розширеннями до стандартної мови. Ядро SQL формує командна мова, яка дозволяє здійснювати пошук, вставку, обновлення, і вилучення даних, використовуючи систему управління і адміністративні функції. SQL також включає CLI (Call Level Interface) для доступу і управління базами даних дистанційно.

Перша версія SQL була розроблена на початку 1970-х років у IBM. Ця версія носила назву SEQUEL і була призначена для обробки і пошуку даних, що містилися в реляційній базі даних IBM, System R. Мова SQL пізніше була стандартизована Американськими Держстандартами (ANSI) в 1986.

Спочатку SQL розроблялась як мова запитів і управління даними, пізніші модифікації SQL створено продавцями системи управління базами даних, які додали процедурні конструкції, control-of-flow команд і розширення мов. З випуском стандарту SQL: 1999 такі розширення були формально запозичені як частина мови SQL через Persistent Stored Modules (SQL/PSM).

Критики SQL включає відсутність крос-платформенності, невідповідною обробкою відсутніх даних (дивіться Null (SQL)), і іноді неоднозначна граматика і семантика мови.

4.4.2 Історія

На початку 1970-х років в одній з дослідницьких лабораторій компанії IBM була розроблена експериментальна реляційна СУБД System R, для якої потім була створена спеціальна мова SEQUEL, що дозволяла відносно просто управляти даними в цій СУБД.

Абревіатура SEQUEL розшифровувалася як англ. Structured English QUEry Language - "структурована англійська мова запитів". Пізніше з юридичних міркувань мова SEQUEL була перейменована в SQL. Коли в 1986 році перший стандарт мови SQL був прийнятий ANSI (American National Standards Institute), офіційною вимовою стало - ес-кью-ел. Незважаючи на це, навіть англомовні фахівці по колишньому часто називають SQL сіквел, замість ес-кью-ел.

Метою розробки було створення простої непроцедурної мови, якою зміг би скористатися будь-який користувач, що навіть не має навиків програмування. Власне розробкою мови запитів займалися Дональд Чемберлін (Donald D. Chamberlin) і Рей Бойс (Ray Boyce). Пет Селінджер (Pat Selinger) займалася розробкою вартісного оптимізатора (англ. cost-based optimizer), Реймонд Лорі (Raymond Lorie) займався компілятором запитів.

Варто відзначити, що SEQUEL не був єдиною мовою подібного призначення. У Каліфорнійському університеті в Берклі була розроблена некомерційна СУБД Ingres (що була, між іншим, дальнім прародичем популярної зараз некомерційної СУБД PostgreSQL), яка була реляційною СУБД, але використовувала свою власну мову QUEL, яка, проте, не витримала конкуренції по кількості СУБД, що підтримували його, з мовою SQL.

Першими СУБД, що підтримують нову мову SQL, стали в 1979 році Oracle V2 для машин VAX від компанії Relational Software Inc. (що згодом стала компанією Oracle) і System/38 від IBM, заснована на System/R.

Перший офіційний стандарт мови SQL був прийнятий ANSI в 1986 і ISO (Міжнародною організацією зі стандартизації) в 1987 (так званий SQL-86) і дещо уточнений в 1989 році. Подальший розвиток мови постачальниками СУБД зажадав ухвалення в 1992 р. нового розширеного стандарту (ANSI SQL-92 або просто SQL2). Наступним стандартом став SQL: 1999 (SQL3). В даний час діє стандарт, прийнятий в 2003 році (SQL: 2003) з невеликими модифікаціями, внесеними пізніше.

4.4.3 Питання сумісності

Як і з багатьма стандартами, що мають місце в IT-індустрії, з мовою SQL виникла проблема, що у минулому багато виробників ПЗ з використанням SQL вирішили, що функціональність в поточній (на той момент часу) версії стандарту недостатня (що, в принципі, для ранніх версій SQL було певною мірою справедливо) і його бажано розширити. Що і призводить в даний момент до того, що у різних виробників СУБД в ході різні діалекти SQL, в загальному випадку між собою несумісні.

До 1996 року питаннями відповідності комерційних реалізацій SQL стандарту займався в основному інститут NIST, який і встановлював рівень відповідності стандарту. Але пізній підрозділ, що займався СУБД, був розформований, і на даний момент всі зусилля з перевірки СУБД на відповідність стандарту лягають на її виробника.

Вперше поняття "Рівня відповідності" було запропоноване в стандарті SQL-92. А саме, ANSI і NIST визначали чотири рівні відповідності реалізації цьому стандарту:

·        Entry (базовий)

·        Transitional (перехідний) - перевірку на відповідність цьому рівню проводив тільки інститут NIST

·        Intermediate (проміжний)

·        Full (повний)

Легко можна зрозуміти, що кожен подальший рівень відповідності свідомо мав на увазі відповідність попередньому рівню. Далі, згідно цим сходам стандартів будь-яка СУБД, яка відповідала рівню Entry, могла заявляти себе як "SQL-92 відповідна", хоча насправді переносимість і відповідність стандарту обмежувалося набором можливостей, що входять в цей рівень.

Положення змінилося з введенням стандарту SQL: 1999. Відтепер стандарт придбав модульну структуру - основна частина стандарту була винесена в розділ "SQL/Foundation", всі інші були виведені в окремі модулі. Відповідно, залишився тільки один рівень сумісності - Core, що означало підтримку цієї основної частини. Підтримка решти можливостей залишена на розсуд виробників СУБД. Аналогічне положення мало місце і з подальшими версіями стандарту.

4.4.4 Процедурні розширення

Оскільки SQL не є мовою програмування (тобто не надає засобів для автоматизації операцій з даними), введені різними виробниками розширення стосувалися в першу чергу процедурних розширень. Це збережені процедури (англ. stored procedures) і процедурні мови-"надбудови". Практично в кожній СУБД застосовується своя процедурна мова.

 

4.5 MySQL


4.5.1 Термін

MySQL - вільна система керування реляційними базами даних.

Ця система керування базами даних (СКБД) з відкритим кодом була створена як альтернатива комерційним системам. MySQL з самого початку була дуже схожою на mSQL, проте з часом вона все розширювалася і зараз MySQL - одна з найпоширеніших систем керування базами даних. Вона використовується, в першу чергу, для створення динамічних веб-сторінок, оскільки має чудову підтримку з боку різноманітних мов програмування.- компактний багатонитевий сервер баз даних. Характеризується великою швидкістю, стійкістю і простотою використання.був розроблений компанією "ТсХ" для підвищення швидкодії обробки великих баз даних.вважається гарним рішенням для малих і середніх застосунків. Вихідні коди сервера компілюються на багатьох платформах. Найповніше можливості сервера виявляються в UNІХ-системах, де є підтримка багатонитевості, що підвищує продуктивність системи в цілому.

Для некомерційного використання MySQL є безкоштовним. Можливості сервера MySQL:

·        простота у встановленні та використанні;

·        підтримується необмежена кількість користувачів, що одночасно працюють із БД;

·        кількість рядків у таблицях може досягати 50 млн.;

·        висока швидкість виконання команд;

·        наявність простої і ефективної системи безпеки.

4.5.2 Ліцензування

MySQL має подвійне ліцензування. MYSQL може розповсюджуватися відповідно до умов ліцензії GPL. Але за умовами GPL, якщо якась програма використовує бібліотеки MySQL, то вона теж повинна розповсюджуватися за ліцензією GPL. Проте це може розходитися з планами розробників, не бажаючих відкривати джерельних текстів своїх програм. Для таких випадків передбачена комерційна ліцензія компанії MySQL AB, яка також забезпечує якісну сервісну підтримку. В разі використання та розповсюдження програмного забезпечення з іншими вільними ліцензіями, такими як BSD, Apache, MIT та інші, MySQL дозволяє використання бібліотек MySQL за ліцензією GPL.

4.5.3 Історія

Деякі дати з історії розвитку MySQL:

·        перший внутрішній випуск MySQL - 23 травня 1995

·        версія для систем Windows ( (Windows 95 і NT)) - 8 січня 1998

·        версія 3.23: бета від червня 2000, стабільний випуск у січні 2001

·        версія 4.0: бета від серпня 2002, стабільний випуск у березні 2003 (unions, query cache)

·        версія 4.1: бета від червня 2004, стабільний випуск у жовтні 2004 (r-trees, subqueries)

·        версія 5.0: бета від березня 2005, стабільний випуск у жовтні 2005 (cursors, stored procedures, triggers, views, XA transactions)

·        версія 5.1: розробка велась із листопада 2005, стабільний випуск в листопаді 2008

·        версія 5.4: бета в квітні 2009

·        версія 6.0: в розробці

В січні-лютому 2008 Sun Microsystems придбала виробника системи керування базами данних MySQL за $1 млрд.

4.5.4 Критика

MySQL версії 5.1 має 20 відомих серйозних помилок в додаток до 35 дефектів версії 5.0. Критичні помилки іноді не виправляються протягом тривалих періодів часу. Одним із прикладів є критична помилка, що відома з 2003 року.показує низьку ефективність при використанні її як сховище даних, це частково через нездатність використовувати кілька процесорів для обробки одного запиту. До того ж, MySQL часто критикують за те, що ця СУБД має розходження зі стандартом SQL щодо трактування NULL значень і значення за замовчуванням.

 

4.6.html


4.6.1 Термін

HTML (англ. HyperText Markup Language - Мова розмітки гіпертексту) - стандартна мова розмітки документів у Всесвітній павутині. Більшість веб-сторінок створюються за допомогою мови HTML (або XHTML). Документ HTML оброблюється браузером та відтворюється на екрані у звичному для людини вигляді.є похідною мовою від SGML, успадкувавши від неї визначення типу документу та ідеологію структурної розмітки тексту.разом із CSS та cкриптингом - це три основні технології побудови веб-сторінок.впроваджує засоби для:

·        створення структурованого документу шляхом позначення структурного складу тексту: заголовки, абзаци, списки, таблиці, цитати та інше;

·        отримання інформації із Всесвітньої мережі через гіперпосилання;

·        створення інтерактивних форм;

·        включення зображень, звуку, відео, та інших об'єктів до тексту.

4.6.2 Історія розвитку HTML

У 1980 році фізик Тім Бернерс-Лі, який на той час був співробітником CERN, запропонував і прототипував систему ENQUIRE, яка мала полегшити сумісне користування документами для дослідників CERN.

У 1989 році Бернерс-Лі запропонував впровадити на базі Internet гіпертекстову систему документів.

Вже наприкінці 1990 року він розробив HTML і написав браузер та серверне програмне забезпечення для запропонованої системи. У цьому ж році Тім Бернерс-Лі та Роберт Кайо, інженер інформаційних систем CERN, подали спільну заявку на фінансування проекту, проте цей проект не був офіційно прийнятий CERN.

Наприкінці 1991 року Тім Бернерс-Лі опублікував в Інтернеті перший загальнодоступний опис мови розмітки HTML, відомий як документ "HTML теги" (HTML Tags). В ньому були описані 20 елементів первісної, відносно простої схеми розмітки HTML. За винятком тегу гіперпосилання, який був жорстко підпорядкований внутрішньому SGML-формату документації CERN. Тринадцять із тих елементів ще й досі існують у HTML4.

Бернерс-Лі розглядав HTML як похідну мову від SGML, і в середині 1993 року Спеціальна Комісія Інтернет-розробок (IETF) офіційно визначила її такою, опублікувавши першу специфікацію HTML: "Hypertext Markup Language (HTML)" Internet-проект, авторами якої були Тім Бернерс-Лі та Ден Конолі. Ця специфікація вже містила визначення типу документу, яке чітко зазначало граматику HTML.

Проект втратив силу через 6 місяців, проте був відомий за офіційне визнання в ньому, створеного для браузера NCSA Mosaic, тега додавання зображень, не розділяючи філософію IETF щодо заснування стандартів на успішних прототипах. Так само пізніше в 1993 році в конкуруючому Інтернет-проекті Дейва Раджетта "HTML+ (Hypertext Markup Format)", було запропоновано стандартизувати вже запроваджені браузерами сенсаційні на той час можливості, такі як таблиці та перші інтерактивні форми.

На початку 1994 року, після того, як проекти "HTML" і "HTML+" втратили свою силу, IETF створив Робочу групу HTML (HTML Working Group). В 1995 році Робоча група HTML завершила роботу над документом "HTML 2.0" (опублікований як RFC із номером 1866), першою специфікацією, що мала бути використана як базовий стандарт для подальших вдосконалень HTML. Версія 2.0 окреслювала чіткі відмінності між новим виданням специфікації та попередніми проектами.

Подальші розробки під заступництвом IETF зіштовхнулися з конкуруючими інтересами. З 1996 року специфікації HTML затверджувались Консорціумом W3C, враховуючи доповнення до розмітки, що впроваджувалися компаніями-розробниками браузерів. Тим не менш, у 2000 році HTML стала міжнародним стандартом (ISO/IEC 15445: 2000).

Остання специфікація HTML, опублікована W3C наприкінці 1999 року, має назву "HTML 4.01 Recommendation". Усі спірні питання та помилки цієї специфікації були офіційно визнані у списку друкарських помилок, опублікованому в 2001 році.

4.6.3 Версії


Тім Бернерс-Лі представив HTML в дослідницькому центрі CERN в Женеві в 1989 році.

·        HTML (без номера версії, 3 листопада 1992): Найперша версія, орієнтована лише на текст.

·        HTML (без номера версії, 30 квітня 1993): До тексту додаються атрибути, які визначають курсивне або жирне написання літер, та зображення.

·        HTML+ (листопад 1993) Заплановані доповнення, які потрапили до наступних версій, але ніколи не були відокремлені як HTML+.

·        HTML 2.0 (листопад 1995): Визначена стандартом RFC 1866 версія з підтримкою форм. Статус цього стандарту вже "Історичний", також визнані застарілими попередні версії.

·        HTML 3.0: Версія, яка не зазнала поширення, оскільки разом із випуском браузера Netscape Navigator версії 3, цей стандарт вже був застарілим.

·        HTML 3.2 (14 січня 1997): В цій версії були додані численні можливості, такі як таблиці, обтікання текстом зображень, інтеграція аплетів.

·        HTML 4.0 (18 грудня 1997): В цій версії були додані таблиці стилів, скрипти та фрейми. Також, відбулось розділення на Strict (суворе дотримання стандартів), Frameset (з підтримкою фреймів), Transitional (перехідний).24 квітня 1998 було випущено виправлену версію цього стандарту.

·        HTML 4.01 (24 грудня 1999): Заміна версії HTML 4.0, містить численні дрібні виправлення.

·        HTML 5 (Working Draft,

·        5. April 2008): HTML 5 має новий словник побудований на основі HTML 4.01 та XHTML 1.0. Також перероблена і розширена пов'язана з HTML специфікація DOM

·        XHTML 1.0 (26 січня 2000): Висловлення стандарту HTML 4.01 засобами XML.1 серпня 2002 було випущено оновлену редакцію стандарту.

·        XHTML 1.1 (31 травня 2001): Після того, як XHTML буде розділено на модулі, стандарт XHTML 1.1 визначатиме сувору версію, в якій не буде запроваджених HTML 4 можливостей Frameset та Transitional.

·        XHTML 2.0 (в розробці): Ця версія вже не базується на HTML 4.01 і додає деякі нові теги. Буде завершено розділення між представленням та вмістом.

4.6.4 Документ HTML

Для поліпшення взаємодії, SGML вимагає аби кожна похідна мова (HTML у тому числі) визначала свою кодову таблицю для кожного документа, яка складається з репертуара (перелік різноманітних символів) та позиції символа (перелік цифрових посилань на символи з репертуара). Кожен документ HTML - це послідовність символів з репертуара.використовує найбільш повну кодову таблицю UCS (англ. Universal Character Set - Універсальний Набір Символів).

Проте, однієї кодової таблиці недостатньо для того, щоб браузери могли правильно відтворювати документи HTML. Для цього браузерам потрібно "знати" специфічну кодову таблицю документа, яку автор має зазначати завжди в елементі meta із параметром charset. За замовчуванням використовується кодова таблиця ISO-8859-1, відома також як Latin-1.

4.6.5 Семантичний HTML

Семантичний HTML - спосіб написання HTML, що віддає перевагу підкресленню смислу закодованої інформації радше за її подання (зовнішній вигляд). Ще з самого початку свого розвитку HTML мав у складі елементи семантичної розмітки, проте також мав і елементи презентаційної розмітки такі як font, i та center. Також HTML має семантично-нейтральні елементи span та div. З кінця 1990-х, коли Каскадні таблиці стилів почали належно працювати в більшості браузерів, авторам документів було рекомендовано уникати використання презентаційної розмітки HTML з метою розділення представлення і змісту.

У 2001 році, в статті про Семантичну павутину, Тім Бернерс-Лі та інші навели приклади шляхів, за якими, одного дня, "агенти" інтелектуального програмного забезпечення зможуть автоматично прочесати Всесвітню мережу та відшукати, відфільтрувати та встановити співвідношення попередньо непов'язаних фактів на благо користувачів. Такі агенти є незвичайними навіть зараз, але деякі з ідей Web 2.0, мешапів та сервісів порівняння цін стають все ближчими до реалізації. Основна відмінність між цими гібридними веб-додатками та семантичним агентом, який згадується у статті Бернерса-Лі, полягає в тому, що нинішні шляхи збирання та гібридизації інформації, як правило, створені веб-розробниками, які вже точно знають де шукати потрібну інформацію і яка в неї API-семантика.

Важливими типом веб-агента, який прочісує і читає веб-сторінки автоматично, проте без знання того, що він може виявити, є пошуковий робот. Цей програмний агент, залежить від семантичної ясності веб-сторінок, які він знаходить, оскільки в ньому використовуються різні методи і алгоритми зчитування та індексації мільйонів веб-сторінок в день, що забезпечує користувачів Інтернету пошуковими можливостями, без яких Всесвітня павутина була б корисна тільки на малу частину від її сучасних можливостей.

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

Елементи презентаційної розмітки є забороненими в останніх чинних специфікаціях HTML і XHTML, а також і в проекті HTML 5.

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

4.6.6 Проект специфікації HTML 5

HTML 5 - це наступна значна переробка стандарту HTML. Робота над створенням специфікації, відома під назвою "Web Applications 1.0", розпочата WHATWG в червні 2004 року.5 спрямований на скорочення використання заснованих на плагінах, RIA-технологій, таких як Adobe Flash, Microsoft Silverlight і Sun JavaFX, хоча досягнення цієї мети займе багато років.

Специфікація HTML 5 зводиться до надання семантичного рівня мови розмітки і пов'язаних з ними семантичних рівнів API для сценаріїв задля авторизації доступних сторінок в Всесвітній павутині, починаючи від статичних документів і закінчуючи динамічними додатками.html 5 вводить ряд нових елементів і атрибутів, які відображають типову архітектуру сучасних веб-сторінок. Деякі з них є семантичними замінами загально-використовуваних блочних (div) і вбудованих (span) елементів, наприклад елемент nav (навігаційного блок сторінки) і footer. Інші елементи, забезпечують нові функціональні можливості через стандартизований інтерфейс, наприклад елементи audio і video.

Наразі специфікація має статус: "у розробці", та, як очікується, матиме його ще протягом трьох років, хоча розробка частин HTML 5 буде завершена і реалізована в браузерах ще до того, як специфікація отримає остаточний статус Рекомендації W3C.

4.6.7 XHTML

HTML, ймовірно, найбільш успішна мова розмітки документів у всьому світі. Проте, коли світові представили XML, було вирішено створити нову версію HTML, похідну від XML. Адже з XML-заснованим HTML інші XML-мови могли би включати частини XHTML, а XHTML-документи могли б включати частини інших мов розмітки. Також автори веб-документів могли б скористатися перевагами редизайну задля очищення деяких з найбільш неохайних частини HTML, а також додати деякі з нових необхідних функцій, таких як покращені форми. Нижче зазначені деякі переваги використання XHTML замість HTML.

Якщо документ є лише чистим XHTML 1.0 (не включає інші мови розмітки), то різниця між XHTML та HTML майже не помітна. Проте, оскільки стають доступними все більше і більше XML-інструментів (наприклад, XSLT для перетворення документів), переваги використання XHTML стають все більш помітними. Наприклад, XForms дозволяє досить просто керувати редагуванням документів XHTML (або будь-яких інших видів документа XML). Семантичні веб-додатки також зможуть скористатися документами XHTML за своїми потребами. Якщо документ більш ніж просто XHTML 1.0 (наприклад, у документі використовуються мови розмітки MathML, SMIL, або SVG), тоді переваги використання XHTML значно помітніші, адже HTML не підтримує такі комбінації мов розмітки в одному документі.

 

4.7 JavaScript


4.7.1 Термін

JavaScript - назва реалізації стандарта мови програмування ECMAScript компанії Netscape, базується на принципах прототипно-орієнтованого програмування. Найпоширеніше і найвідоміше застосування мови - написання сценаріїв для веб-сторінок, але, також, використовується для впровадження сценаріїв керування об'єктами вбудованими в інші програми.

Не зважаючи на схожість назв, JavaScript та мова програмування Java мають дуже мало спільного. Права на назву JavaScript належать компанії Sun Microsystems.

Розроблена в компанії Netscape. На теперішній час підтримується більшістю браузерів. Текст програми включається безпосередньо в HTML-документ і інтерпретується самим браузером. Застосовується в основному для часткової автоматизації обробки і маніпуляції даними, які використовує сторінка.

Станом на 2006 рік, останній стандарт мови - JavaScript 1.7 Якщо спрощено, то ECMA-262 є стандартизованим варіантом мови JavaScript. Стандартом ECMA-357 визначено E4X, розширення мови для роботи з XML.

4.7.2 Про мову

JavaScript має низку властивостей об'єктно-орієнтованої мови, але завдяки концепції прототипів підтримка об'єктів в нім відрізняється від традиційних мов ООП. Крім того, JavaScript має ряд властивостей, властивих функціональним мовам, - функції як об'єкти першого рівня, об'єкти як списки, каррінг (currying), анонімні функції, замикання (closures) - що додає мові додаткову гнучкість.має C-подібний синтаксис, але в порівнянні з мовою Сі має наступні корінні відмінності:

·        об'єкти, з можливістю інтроспекції і динамічної зміни типу через механізм прототипів

·        функції як об'єкти першого класу

·        обробка винятків

·        автоматичне приведення типів

·        автоматичне прибирання сміття

·        анонімні функції

Семантика мови схожа з семантикою мови Self.

Приклад оголошення і використання класу в JavaScript (клас є одночасно функцією, оскільки функції - це об'єкти першого рівня):

MyClass ()

{. myValue1 = 1;. myValue2 = 2;

}mc = new MyClass ();. myValue1 = mc. myValue2 * 2;

Одна з популярних технологій, що дозволила зробити сторінки динамічнішими і забезпечити нові можливості - це динамічне завантаження і вставка даних в документ, що отримала назву AJAX.

4.7.3 Використання в HTML

При використанні в рамках технології DHTML JavaScript код включається в HTML-код сторінки і виконується інтерпретатором, вбудованим в браузер. Код JavaScript вставляється в теги <script></script> з обов'язковим по специфікації HTML 4.01 атрибутом type="text/javascript", хоча в більшості браузерів мова сценаріїв за умовчанням саме JavaScript.

Скрипт, що виводить модальне вікно з класичним написом "Hello, World!" усередині браузера:

<script type="text/javascript">('Hello, World! ');

</script>

Слідуючи концепції інтеграції JavaScript в існуючі системи, браузери підтримують включення скрипта, наприклад, в значення атрибуту події:

<a href="delete. php" onclick="return confirm ('Ви впевнені? '); ">Видалити</a>

Тут при натисненні на посилання функція confirm ('Ви впевнені? '); викликає модальне вікно з написом "Ви впевнені?", а return false; блокує перехід за посиланням.

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

Є і третя можливість підключення JavaScript - написати скрипт в окремому файлі, а по тому підключити його за допомогою конструкції:

<script type="text/javascript" src="#"588038.files/image001.gif">

Рис.5.1 Загальна схема використання системи

Як видно з рисунку, адміністратор системи вповноважений для будь-яких змін в системі, тож несе неабияку відповідальність. Адже необачні дії можуть призвести до втрати важливої інформації і її повернення не можливе в майбутньому. Отже перш ніж вносити зміни до яких-небудь параметрів системи тестування адміністратор має серйозно замислитись і декілька разів перевірити те що має зробити, аби не нашкодити системі непоправно.

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

Але такі випадки поодинокі, бо в наданих умовах не виникає необхідності кардинально змінювати систему тестування часто, адже робота з перевірки персоналу досить-таки стандартизована і використовується декілька років поспіль без суттєвих змін.

А внесення змін щодо стандартів, нормативів тощо, можливе і без додаткової кваліфікації і може бути виконане відповідальним співробітником досить легко. Адже для цього і розроблено інтерфейс роботи з тестовим матеріалом.

Ознайомлення з інформаційними потоками системи можливе завдяки схемі наведеній на рис.5.2.

Рис.5.2 Схема інформаційних потоків системи тестування

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

Тож потік інформації від розподілених користувачів може сягати неймовірних обсягів, за рахунок використання одного серверу, та клієнтів, що розподілені на території підприємства у різних відділках, де для роботи пристосовані спеціальні тестувальні класи (від п'яти до 10 робочих станцій).

 

5.2 Логіко-функціональна схема роботи системи


Далі наводиться загальний вигляд (рис.5.3) логіко-функціональної схеми роботи системи.

Рис.5.3 Логіко-функціональна схема роботи системи тестування

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

 


5.3 Розробка алгоритмів та програмна реалізація основних процедур системи


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

Алгоритми, що потребують окремого опису будуть надані в наступній послідовності (згідно з планом розробки): процедура авторизації в системі, процедура завершення роботи з системою, базові процедури роботи з користувачами системи, процедури роботи з генерації тестових запитань.

Процедура авторизації:

<? php_start (); # початок роботи в системі($_SESSION ['user_id']) { # якщо користувач зареєстрований, то вінheader ("Location: index. php"); # переходить до своєї сторінки;

}($_POST ['login'] && $_POST ['pass']) {

# за наявності заповнених полів форми з’єднатися з базою даних_connect ("localhost","root","");_query ("SET character_set_client = cp1251");_query ("SET character_set_connection = cp1251");_query ("SET character_set_results = cp1251");_select_db ("tests");

#запит щодо наявності користувача в базі та збереження результату

#на період дії сесії (потрібно для роботи з багато-сторінковим

# інтерфейсом)

@$result = mysql_query ("SELECT id,name from users where login='". $_POST ['login']. "' and pass='". $_POST ['pass']. "'");

@$user_id = mysql_result ($result,0,"id");

@$user_name = mysql_result ($result,0,"name");($user_id) {

$_SESSION ['user_id'] = $user_id;

$_SESSION ['user_name'] = $user_name;("Location: index. php");;

}else{

$msg="Логин или пароль заданы неверно!";

}

}

? >

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

Важливим елементом системи є й обов’язкова процедура завершення роботи:

<? php_start ();_destroy ();("location: index. php");();

? >

Базові процедури роботи з користувачами системи тестування:

# додання користувача у базу($_REQUEST ['do'] == "add_user") {($_REQUEST ['name'] && $_REQUEST ['tabnum']) {_query ("INSERT into users set name='$_REQUEST [name] ', tabnum='$_REQUEST [tabnum] ', date=NOW ()");("Location: users. php");();

}

}

# генерація пари "логін-пароль"($_REQUEST ['gen']) {

$chars="qazxswedcvfrtgbnhyujmkiolp1234567890QAZXSWEDCVFRTGBNHYUJMKIOLP";

$loginmax=6;

$passmax=12;

$size=StrLen ($chars) - 1;

$setlogin = null;

$setpass = null;($loginmax--) $setlogin. =$chars [rand (0,$size)];($passmax--) $setpass. =$chars [rand (0,$size)];_query ("UPDATE users set login='$setlogin', pass='$setpass', testid='$_REQUEST [testid] ' where id='$_REQUEST [gen] '");("Location: users. php");();

}

Процедури генерації тестових завдань:($_REQUEST ['do'] == 'add_test') {($_REQUEST ['testname']) {_query ("INSERT INTO tests SET testname='". $_REQUEST ['testname']. "', cnt='". $_REQUEST ['cnt']. "', done='". $_REQUEST ['done']. "'");

$test_id = mysql_insert_id ();($test_id) {

#тест добавлен("location: generator. php");();

}else{

#тест не добавлен

}

}else{

}

}elseif ($_REQUEST ['do'] == 'add_quest') {($_REQUEST ['testid'] && $_REQUEST ['quest']) {_query ("INSERT INTO questions SET testid='". $_REQUEST ['testid']. "', quest='". $_REQUEST ['quest']. "'");

$qwid = mysql_insert_id ();($qwid) {

#вопрос добавлен

$_SESSION ['view_last_test'] = $_REQUEST ['testid'];("location: generator. php");();

}else{

#вопрос не добавлен

}

}else{

#не задан тест айди или имя вопроса

}

}elseif ($_REQUEST ['do'] == 'add_ans') {($_REQUEST ['qwid'] && $_REQUEST ['ans']) {_query ("INSERT INTO answers SET qwid='". $_REQUEST ['qwid']. "', `right`=0, ans='". $_REQUEST ['ans']. "'");

$ansid = mysql_insert_id ();

#ответ добавлен

$_SESSION ['view_last_quest'] = $_REQUEST ['qwid'];

$_SESSION ['view_last_test'] = $_REQUEST ['last_test'];("location: generator. php");();

}else{

#не задан вопрос айди или имя ответа

}

}

Більш докладно усі процедури наведені в додатку.

 

5.4 Опис інтерфейсу користувача


Вся система побудована на базі використання провідника як засобу графчного відображення, тобто побудова інтерфейсу відбувалась за допомогою таких засобів як мова HTML та мова Java-Script.

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

Рис.5.4 Вигляд вікна входу в систему

Після вдалого входу у систему, можливі два варіанти її поведінки: робота адміністратора системи, та робота звичайного користувача. На рис.5.5 заовнішній вигляд сторінки адміністратора.

Там зображено, як виглядає процедура створення тестових завдань.

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

Рис.5.5 Вигляд системи створення тестів

В правому верхньому кутку видно перемикач у режим роботи з користувачами системи, як що його натиснути, то система переведе нас у режим адміністрування списків персоналу.

На рис.5.6 якраз видно, що відбувається по тому. Перемикач набуває значення "створення тестів", а на сторінці адміністратора відображається список тих користувачів, що наявні у системі, також є можливість додати їх стільки скільки необхідно.

У кожного користувача є параметри для здачі тесту, або пара "логін-пароль" та назва тесту що зараз у стані проходження. Також видно коли і як здано попередні тестування.

Рис.5.6 Вигляд списку користувачів з параметрами та статистикою

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

На рис.5.7 можна побачити, як саме виглядає інтерфейс користувача, коли відбувається процедура тестування. Також слід зауважити, що сторінка не перенасичена зайвими елементами, лише ті що дають змогу пройти тестування навіть тим працівникам, що не досить впевнено почуваються сам-на-сам з комп'ютером.

Рис.5.7 Вигляд вікна проходження тестування

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

Що дуже важливо - то це можливість при цьому бачити правильні відповіді на запитання тесту. Це дає змогу зрозуміти свої помилки, та в разі необхідності повторної здачі бути більш підготовленим.

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

На рис.5.8 якраз видно, що система виокремила правильні відповіді, та ті відповіді що були надані при проходжені тесту. У разі достатнього результату, при співпаданні правильної та наданої відповідей, система сповіщає про правильно зданий тест.

Рис.5.8 Вигляд сторінки зарахованого тестування

6. Економічне обґрунтування доцільності розробки програмного продукту


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

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

Розроблена система була реалізована за допомогою мови програмування PHP та бази даних MySQL. Для функціонування системи потрібний комп’ютер з встановленою операційною системою, що має Інтернет-браузер (Internet Explorer; Mozila Firefox; Opera; Safari; тощо).

Визначення витрат на створення програмного продукту.

Оскільки середа розробки є безкоштовною, витрати на створення програмного продукту складаються з витрат по оплаті праці розробника програми і витрат по оплаті машинного часу при відладці програми:

Зспп=Ззпспп +Змвспп,

де

Зспп - витрати на створення програмного продукту;

Ззпспп - витрати на оплату праці розробника програм

Змвспп - витрати на оплату машинного часу;

Витрати на оплату праці розробника програми (Ззпспп) визначаються шляхом множення трудомісткості створення програмного продукту на середню годинну оплату програміста (з урахуванням коефіцієнта відрахувань на соціальні потреби):

Ззпспп=tTчас.

Розрахунок трудомісткості створення програмного продукту.

Трудомісткість розробки програмного продукту можна визначити таким чином:

= to+ tа+ tб+ tп+ tд+ tот,

де- витрати праці на підготовку опису завдання;а - витрати праці на розробку алгоритму рішення задачі;б - витрати праці на розробку блок-схеми алгоритму рішення задачі;п - витрати праці на складання програми по готовій блок-схемі;д - витрати праці на підготовку документації завдання;от - витрати праці на відладку програми на ЕОМ при комплексній відладці завдання.

Складові витрат можна виразити через умовне число операторів Q. У нашому випадку число операторів у відлагодженій програмі приймаємо Q=2500.

Розрахунок витрат праці на підготовку опису завдань.

Оцінити витрати праці на підготовку опису завдання не можливо, оскільки це пов'язано з творчим характером роботи, натомість оцінимо витрати праці на вивчення опису завдання з урахуванням уточнення опису і кваліфікації програміста:

= QB/ (75…85K),

де- коефіцієнт збільшення витрат праці унаслідок недостатнього опису завдання, уточнень і деякої недоробки, B=1,2…5;- коефіцієнт кваліфікації розробника, для тих, що працюють до 2 років K=0,8;

Коефіцієнт В приймаємо рівним 2.

Таким чином отримаємо

= 25002/ (780,8) = 80,13 (люд-год).

Розрахунок витрат праці на розробку алгоритму.

Витрати праці на розробку алгоритму рішення задачі:

а = Q/ (60…75K)а = 2500/ (700,8) =44,64 (люд-год).

Розрахунок витрат праці на розробку блок-схеми.

Витрати праці на розробку блок-схеми алгоритму рішення задачі обчислимо таким чином:

б= Q/ (60…75K)б = 2500/ (710,8) =44,01 (люд-год).

Розрахунок витрат праці на складання програми.

Витрати праці на складання програми по готовій блок-схемі обчислимо таким чином:

п= Q/ (60…75K)п = 2500/ (720,8) =43,40 (люд-год).

Розрахунок витрат праці на відладку програми.

Витрати праці на відладку програми на ЕОМ при комплексній відладці завдання:

от=1.5tAот,

де tAот - витрати праці на відладку програми на ЕОМ при автономній відладці одного завдання;

от= Q/ (40…50K)от = 2500/ (480,8) =65,10 (люд-год)

Звідси tот=1,591,15=97,65 (люд-год).

Розрахунок витрат праці на підготовку документації.

Витрати праці на підготовку документації по завданню визначаються:

д= tдр+ tдо,

дедр - витрати праці на підготовку матеріалів в рукопису;до - витрати на редагування, друк і оформлення документації;

др= Q/ (150…200K)др = 2500/ (1800,8) = 17,36 (люд-год)до=0,75tдр, tдо =0,7517,36=13,02 (люд-год)

Звідси

д=17,36+13,02=30,38 (люд-год).

Отже, загальну трудомісткість програмного продукту можна розрахувати:

= 80,13+44,64+44,01+43,40+30,38+97,65 =340,21 (люд-год).

Розрахунок середньої зарплати програміста.

Середня зарплата програміста в сучасних ринкових умовах може варіюватися в широкому діапазоні. Для розрахунку візьмемо середню годинну оплату праці, яка складає Тчас. =10 грн/година, що означає 1760 грн/мес при 8-ми годинному робочому дні і 5-ти денному робочому тижню. Для розробки та впровадження програмного продукту програмістові необхідно 2 робочих місяця.

Витрати на оплату праці програміста складаються із зарплати програміста і нарахувань на соціальні потреби. Нарахування на соціальні потреби включають:

33,2% - пенсійний фонд;

,4% - соціальне страхування;

.6% - відрахування до державного фонду зайнятості на випадок безробіття;

% - на соціальне страхування від нещасного випадку на виробництві і професійних захворювань, які спричинили втрату працездатності.

Разом нарахування на соціальні потреби складають 37,2%.

Тобто 1760 грн 37,2%=654,72 грн

Звідси витрати на оплату праці програміста складають:

Ззпспп= (1760+654,72) *2= 4829,44 грн.

Витрати на оплату машинного часу.

Витрати на оплату машинного часу при відладці програми визначаються шляхом множення фактичного часу відладки програми на ціну машино-години орендного часу:

Змвспп =СчасtЕОМ,

де

Счас - ціна машино-години орендного часу, грн/год;ЕОМ - фактичний час відладки програми на ЕОМ;

Розрахунок фактичного часу відладки.

Фактичний час відладки обчислимо за формулою:

еом = tп + tдо + tот; tеом =43,40+13,02+97,65 = 154,07 години

Розрахунок ціни машино-години.

Ціну машино-години знайдемо по формулі:

Сгод = Зеом/Теом,

де

Зеом - повні витрати на експлуатацію ЕОМ на протязі року;

Теом - дійсний річний фонд часу ЕОМ, год/рік.

Розрахунок річного фонду часу роботи ПЕОМ.

Загальна кількість днів в році - 365. Число святкових і вихідних днів - 114 (10 святкових і 522 - вихідні). Час простою в профілактичних роботах визначається як щотижнева профілактика по 3 години. Разом річний фонд робочого часу ПЕОМ складає:

Теом = 8 (365-114) - 523=1852 год.

Розрахунок повних витрат на експлуатацію ЕОМ.

Повні витрати на експлуатацію можна визначити по формулі:

Зеом = (Ззп+ Зам+ Зэл+ Здм+ Зпр+ Зін),

де,

Ззп - річні витрати на заробітну плату обслуговуючого персоналу, грн/рік;

Зам - річні витрати на амортизацію, грн/рік;

Зэл - річні витрати на електроенергію, споживану ЕОМ, грн/рік;

Здм - річні витрати на допоміжні матеріали, грн/рік;

Зпр - витрати на поточний ремонт комп'ютера, грн/рік;

Зін - річні витрати на інші і накладні витрати, грн/рік.

Амортизаційні відрахування.

Річні амортизаційні відрахування визначаються по формулі:

Зам=СбалНам,

де Сбал - балансова вартість комп’ютера, грн/шт.;

Нам - норма амортизації, %;

Нам =25%.

Балансова вартість ПЕОМ включає відпускну ціну, витрати на транспортування, монтаж устаткування і його відладку:

Сбал = Срин +Зуст;

де

Срин - ринкова вартість комп’ютеру, грн/шт.,

Зуст - витрати на доставку і установку комп'ютера, грн/шт;

Комп'ютер, на якому велася робота, був придбаний за ціною

Срин =5000 грн, витрати на установку і наладку склали приблизно 10% від вартості комп'ютера.

Зуст = 10%Срин

Зуст =0.15000=500 грн.

Звідси, Сбал = 5000 +500 =5500 грн. /шт.;

а Зам=55000,25= 1375 грн/год.

Розрахунок витрат на електроенергію.

Вартість електроенергії, споживаної за рік, визначається по формулі:

Зел = Реом Теом Сел А,

де

Реом - сумарна потужність ЕОМ,

Теом - дійсний річний фонд часу ЕОМ, год/рік;

Сел - вартість 1кВтгод електроенергії;

А - коефіцієнт інтенсивного використання потужності машини.

Тоді розрахункове значення витрат на електроенергію:

Зел = 0.22 18520.24360.30 = 29,78 грн.

Розрахунок витрат на поточний ремонт.

Витрати на поточний і профілактичний ремонт приймаються рівними 5% від вартості ЕОМ:

Зтр = 0.05Сбал

Зтр = 0.055500 = 275 грн.

Розрахунок витрат на допоміжні матеріали.

Витрати на матеріали, необхідні для забезпечення нормальної роботи ПЕОМ, складають близько 1 % від вартості ЕОМ:

Звм =0,015500 =55 грн.

Інші витрати по експлуатації ПЕОМ.

Інші непрямі витрати, пов'язані з експлуатацією ПЕОМ, складаються з вартості послуг сторонніх організацій і складають 5% від вартості ЕОМ:

Зпр = 0,055500 =275 грн.

Річні витрати на заробітну плату обслуговуючого персоналу.

Витрати на заробітну плату обслуговуючого персоналу складаються з основної заробітної плати, додаткової і відрахувань на заробітну плату:

Ззп = Зоснзп +Здопзп +Зотчзп.

Основна заробітна плата визначається, виходячи із загальної чисельності тих, що працюють в штаті:

Зоснзп =12 ∑Зіокл,

де

Зіокл - тарифна ставка і-го працівника в місяць, грн;

- кількість місяців.

У штат обслуговуючого персоналу повинні входити інженер-електронщик з місячним окладом 1500 грн. і електрослюсар з окладом 1200 грн. Тоді, враховуючи, що даний персонал обслуговує 20 машин, маємо витрати на основну заробітну плату обслуговуючого персоналу, які складуть:

Зоснзп = 12 (1500+1200) /20=1620 грн.

Додаткова заробітна плата складає 60 % від основної заробітної плати:

Здопзп = 0.6 1620 = 972 грн.

Відрахування на соціальні потреби складають 37,2% від суми додатковою і основною заробітних плат:

Зотчзп = 0,372 (1620 + 972) = 959,04 грн.

Тоді річні витрати на заробітну плату обслуговуючого персоналу складуть:

Ззп = 1620 +972 +959,04 = 3551,04 грн.

Повні витрати на експлуатацію ЕОМ в перебігу року складуть:

Зеом = 3551,04 + 1375+ 29,78 + 55 + 275+ 275= 5560,82 грн.

Тоді ціна машино-години часу, що орендується, складе

Сгод = 5560,82 /1852 = 3 грн.

А витрати на оплату машинного часу складуть:

Змвспп =Сгодtеом

Змвспп = 3 154,07 = 462,21 грн.

Розрахунок загальних витрат.

Зспп=Ззпспп +Змвспп

Зспп = 4829,44 +462,21= 5291,65 грн.

Тобто собівартість програмного продукту 5291,65 грн.

А зараз визначимо ціну програмного продукту:

Ц = Зспп + Р,

Где Ц - ціна програмного продукту;

Р - 15% від витрат на створення програмного продукту.

Ц = 5291,65+ 793,75 = 6085,40 грн.

Ціна програмного продукту дорівнює 6085,40 грн.

На ринку сучасного програмного забезпечення не існує аналогів нашої розробки, оскільки вона максимально орієнтована на потреби замовника. Але якщо порівняти її вартість з розробками, які виконують подібні функції та мають вартість орієнтовно $2000, розроблена система обійдеться значно дешевше, ніж аналоги.

Економія від використання розробленої системи представлятиме:

,2 - курс долара Національного банку України

ЕК = $2000 * 8,2 - 6085,40= 10314,6 грн.

 


7. Охорона праці


Охорона праці - система законодавчих актів, постанов, організаційних, санітарних, технічних мір, що забезпечують безпечні для здоров'я умови праці на робочому місці. Науково-технічний прогрес вніс зміни в умови виробничої діяльності працівників розумової праці. Їхня праця стала більше інтенсивною, напруженою, потребуюча витрат розумової, емоційної й фізичної енергії. Це має пряме відношення й до фахівців, пов'язаним із проектуванням, розробкою, експлуатацією, супроводом і модернізацією автоматизованих систем керування різного призначення.

Законодавство по охороні праці базується на статтях 43,45,46,49,50,53,56,64 Конституції України, у яких гарантуються права громадян на роботу, відпочинок, охорону здоров'я, медичну допомогу й страхування. Більш повно це розкрито в законі України "Про охорону праці", де зазначено, що державна політика охорони праці базується на пріоритеті життя й здоров'я людей їхньої трудової діяльності. Відповідальність за створення нормальних і безпечних умов праці несе роботодавець у незалежності від форми власності підприємства або установи.

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

Основні вимоги гігієни й санітарії відбиті в законі України "Про забезпечення санітарного й епідемічного благополуччя населення". Параметри мікроклімату на робочих місцях регламентовані ДЕРЖСТАНДАРТ 12.1.005-88 і ДСН 3.3.6.042-99, а норми штучної й природної освітленості визначені будівельними нормами (СНиП ІІ-4-79/85). Категорія робіт з величини загальних енерговитрат установлена ДСН 3.3.6.042-99.

Окремі вимоги охорони праці викладені в Кодексі законів про працю (КЗиП). Пожежна безпека визначена законом України "Про пожежну безпеку" і "Правилами про пожежну безпеку в Україні". Крім того є ряд ДСТ, правил, положень, норм, інструкцій і інших нормативних документів, що регламентують питання охорони праці.

Поліпшення охорони праці розглядається як одна з основних задач подальшого соціологічного розвитку нашої країни.

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

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

На робочому місці користувача повинні бути створені умови для високопродуктивної праці. У цей час все більше застосування знаходять автоматизовані робочі місця ІТП, які оснащуються персональною ЕОМ і графічним дисплеєм, клавіатурою й принтером.

 

7.1 Аналіз шкідливих і небезпечних виробничих факторів при роботі на комп'ютері


Небезпечні й шкідливі виробничі фактори по природі виникнення діляться на наступні групи:

фізичні;

хімічні;

психофізіологічні;

біологічні.

У приміщенні на програміста можуть негативно діяти наступні фізичні фактори:

підвищена й знижена температура повітря;

підвищена й знижена вологість повітря;

недостатня освітленість робочого місця;

перевищуючі припустимі норми шум;

підвищений рівень іонізуючого випромінювання;

підвищений рівень електромагнітних полів;

підвищений рівень статичної електрики;

небезпека поразки електричним струмом;

бляклість екрана дисплея.

До хімічно небезпечних факторів, що постійно діють на програміста ставляться наступні:

виникнення, у результаті іонізації повітря при роботі комп'ютера, активних часток.

Біологічні шкідливі виробничі фактори в даному приміщенні відсутні.

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

нервово-емоційні перевантаження;

розумова напруга;

перенапруга зорового аналізатора.

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

Значним фізичним фактором є мікроклімат робочої зони, особливо температура й вологість повітря. Людина постійно перебуває в процесі теплової взаємодії з навколишнім середовищем. Дослідження показують, що висока температура в сполученні з високою вологістю повітря дуже впливає на працездатність користувача. Збільшується час реакції оператора ЕОМ, порушується координація рухів, різко збільшується число помилкових дій. Висока температура на робочому місці оператора негативно впливає на психологічні функції: знижується увага, зменшується обсяг оперативної пам'яті, знижується здатність до асоціацій.

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

Температура, відносна вологість і швидкість руху повітря впливають на теплообмін і необхідно враховувати їхній комплексний вплив. Порушення теплообміну викликає теплову гіпертермію, або перегрів. Температура тіла у важких випадках досягає вище 40-41 С, наступає сильне потовиділення, значно частішає пульс, подих, з'являється шум у вухах.

На робочому місці в приміщенні ОЦ не підтримується оптимальна температура. У зимовий час температура повітря 18-19 С, а в літню пору часто перевищує 25 С. Рідко проводиться належне прибирання. Тому підвищено рівень запиленості. Приміщення нерегулярно провітрюється.

Оптимальні норми температури, відносній вологості й швидкості руху повітря в робочій зоні виробничого приміщення відповідно до ДЕРЖСТАНДАРТ 12.1.005-88 наведені в таблиці 7.1.

Таблиця 7.1

Оптимальні норми температури, відносній вологості й швидкості руху повітря.

Період року

Категорія праці

Температура, С

Відносна вологість повітря, %

Швидкість руху повітря, не більше м/с

Холодний і перехідний

легка

20-23

60-40

0,2

Теплий

легка

22-25

60-40

0,2


Наше приміщення є І категорії (виконуються легкі фізичні роботи), тому повинні дотримуватися наступні вимоги:

оптимальна температура повітря - 22°С (припустима - 20-25°С), оптимальна відносна вологість - 40 - 60% (припустима - не більше 75%), швидкість руху повітря не більше 0.2м/с.

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

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

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

Загальна чутливість зорової системи збільшується зі збільшенням рівня освітленості в приміщенні, але лише доти, поки збільшення освітленості не приводить до значного зменшення контрасту.

Для визначення прийнятного рівня освітленості в приміщенні необхідно:

·        визначити необхідний для операторів рівень освітленості лицьових панелей дисплеїв зовнішніми джерелами світла;

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

Рекомендовані співвідношення яскравості у полі зору наступні:

·        між екраном і документом 1: 5 - 1: 10;

·        між екраном і поверхнею робочого стола 1: 5;

·        між екраном і клавіатурою, а також між клавіатурою й документом - не більше 1: 3;

·        між екраном і навколишніми поверхнями 1: 3 - 1: 10.

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

Робоче місце перебуває поруч із вікном, тому екран монітора розташовується під прямим кутом до нього (виключаються відблиски на екрані).

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

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

У таблиці 7.2 наведені норми проектування природного й штучного освітлення для третього розряду зорової роботи з СНіП ІІ-4-79.

Таблиця 7.2

Норми природного й штучного висвітлення.

Характеристика зорової роботи

Максимальний обсяг розрізнення

Штучне Освітлення, лк

Природне освітлення, КЕО %



Комбіноване

загальне

верхнє

бокове

дуже високої точності

0,15-0,3

1000

300

7

2,5


Незадовільне освітлення стомлює не тільки зір, але й викликає стомлення всього організму в цілому. Неправильне висвітлення часто є причиною травматизму (погано освітлені небезпечні зони, що зліплять лампи й відблиски від них). Різкі тіні погіршують або викликають повну втрату орієнтації працюючих, а також викликають втрату чутливості очних нервів, що приводить до різкого погіршення зору.

Крім освітленості, великий вплив на діяльність оператора робить колір фарбування приміщення й спектральних характеристик використовуваного світла. Рекомендується, щоб потовк відбивав 80-90%, стіни - 50-60%, підлога - 15-30% падаючого на них світла. Тому приміщення оператора пофарбоване в синій колір, що ставиться до квітів "холодного" тону (синій, зелений, фіолетовий), що створює враження спокою й викликає в людини відчуття прохолоді.

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

·        знижується гострота зору, слуху;

·        підвищується кров'яний тиск;

·        знижується увага.

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

Характеристикою постійного шуму на робочих місцях є рівні звукового тиску в Дб в октавних смугах зі середньо геометричними частотами 31.5, 63, 125, 250, 500, 1000, 2000, 4000, 8000 Гц. Припустимим рівнем звукового тиску в октавних смугах частот, рівні звуку й еквівалентні рівні звуку на робочому місці варто приймати дані з таблиці 7.3.

Таблиця 7.3

Припустимі рівні звукового тиску.

Робоче місце

Рівні звукового тиску в дБ, в октавних смугах із середньо геометричними частотами в Гц

Рівні звуку в еквівалентних рівнях звуку в дБА


63

125

250

500

1000

2000

4000

8000


операторів, програмістів

71

61

54

49

45

42

41

38

50


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

·        роду й величини напруги й струму;

·        частоти електричного струму;

·        шляхи проходження струму через тіло людини;

·        тривалості впливу на організм людини;

·        умов зовнішнього середовища.

Норми на припустимі струми й напруги дотику в електроустановках повинні встановлюватися відповідно до гранично припустимих рівнів впливу на людину струмів і напруг дотику й затверджуватися у встановленому порядку за ДСТ 12.1.038-82 відповідно до таблиці 7.4.

Таблиця 7.4

Гранично припустимі рівні впливу струмів і напруг.

Рід струму

Напруга U, В

Струм I, мА


не більше

Змінний струм, 50 Гц

2

0,3


Напруга дотику й струми наведені при тривалості впливу не більше 10 хв. у добу й установлені, виходячи з реакції відчуття.

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

·        термічне;

·        електролітичне;

·        біологічне.

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

Друге викликає розкладання крові й плазми, значні порушення їхніх фізико-хімічних складів і тканин у цілому.

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

Кожне із цих дій струму може привести до електротравми. Електротравми діляться на два види: місцеві та електроудари.

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

Спектр випромінювання комп'ютерного монітора містить у собі рентгенівські, ультрафіолетову й інфрачервону області, а також широкий діапазон електромагнітних хвиль інших частот. У ряді експериментів було виявлено, що електромагнітні поля із частотою 60 Гц (що виникають навколо ліній електропередач, відео дисплеїв і навіть внутрішньої електропроводки) можуть ініціювати біологічні зрушення (аж до порушення синтезу ДНК) у клітках тварин. На відміну від рентгенівських променів електромагнітні хвилі мають незвичайну властивість: небезпека їхнього впливу зовсім не обов'язково зменшується при зниженні інтенсивності опромінення, певні електромагнітні поля діють на клітки лише при малих інтенсивністях випромінювання або на конкретних частотах - в "вікнах прозорості". Джерело високої напруги комп'ютера - рядковий трансформатор - міститься в задній або бічній частині термінала, рівень випромінювання з боку задньої панелі дисплея вище, причому стінки корпуса не екранують випромінювання. Тому користувач повинен перебувати не ближче чим на 1.2 м від задніх або бічних поверхонь сусідніх терміналів.

За результатами виміру електромагнітних випромінювань установлено, що максимальна напруженість електромагнітного поля на кожусі відео термінала становить 3.6 В/м, однак у місці знаходження оператора її величина відповідає фоновому рівню (0.2-0.5 В/м); градієнт електростатичного поля на відстані 0.5м менш 300 В/см є в межах припустимого.

На відстані 5 див від екрана інтенсивність електромагнітного випромінювання становить 28-64 В/м залежно від типу приладу. Ці значення знижуються до 0.3-2.4 В/м на відстані 30 см від екрана (мінімальна відстань очей оператора до площини екрана).

Електризація - це комплекс фізичних і хімічних процесів, що приводять до поділу в просторі зарядів протилежних знаків або до нагромадження зарядів одного знака. ЕОМ може бути джерелом статичної електрики. Електризується поверхня дисплея, при дотику до якого може виникнути електрична іскра. Шкідливий вплив статичної електричної електрики позначається не тільки при безпосередньому контакті із зарядом, але й за рахунок дії електричного поля, що виникає навколо зарядженої поверхні.

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

При статичній електризації напруга щодо землі досягає десятків, а іноді й сотень тисяч вольт. Значення струмів при цих явищах становлять, як правило, частки мікроампера (0.0001-1мА). Людина починає відчувати струм величиною 0.6-1.5мА. За ДСТ 12.1.038-82 напруга електричного струму не повинне перевищувати 42В у приміщеннях без підвищеної небезпеки, якими є приміщення ОЦ.

 

7.2 Заходи щодо нормалізації небезпечних і шкідливих факторів


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

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

Психофізіологічні фактори діляться на наступні групи:

·        фізичні перевантаження (статичні й динамічні);

·        нервово-психічні перевантаження (розумова перенапруга, монотонність праці, перенапруга аналізаторів, емоційні перевантаження).

При розумовій роботі змінюються обмінні процеси, не вище 10-15%. При розумовій роботі потрібно значна нервово-емоційна напруга, при цьому можливі значні зміни кров'яного тиску, пульсу, підвищення рівня цукру в крові. Такий характер змін показовий для працівників різних пультів керування.

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

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

Хронічна перевтома визначається наступними ознаками:

·        відчуття перевтоми до початку роботи;

·        підвищеною дратівливістю;

·        зниженням інтересу до роботи;

·        зниженням апетиту;

·        втратою ваги;

·        порушенням сну;

·        кошмарними снами.

При хронічній стомлюваності можливі:

·        нудота;

·        тремор витягнутих рук;

·        знижений артеріальний тиск.

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

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

Розміщення світильників визначається наступними розмірами:

Н=3 м. - висота приміщення=0,25 м. - відстань світильників від перекриттяп=H - hc =3 - 0,25=2,75 м. - висота світильників над підлогою=висота розрахункової поверхні=0,7 м (для приміщень, пов'язаних з роботою ПЕОМ)=hп - hp =2,75 - 0,7=2,05 - розрахункова висота.

Світильника типу ЛДР (2х40 Вт). Довжина 1,24 м, ширина 0,27 м, висота 0,10 м.- відстань між сусідніми світильниками (рядами люмінесцентних світильників), Lа (по довжині приміщення) =1,76 м, Lв (по ширині приміщення) =3 м.- відстань від крайніх світильників або рядів світильників до стіни, l=0,3 - 0,5L.а=0,5La, lв=0,3Lв=0,88 м., lв=0,73 м.

Світильники з люмінесцентними лампами в приміщеннях для роботи рекомендують установлювати рядами.

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

Ф=Е *r *S *z / N *h,

де Е - задана мінімальна освітленість=300 лк., тому що розряд зорових робіт=3, r - коефіцієнт запасу=1,3 (для приміщень, пов'язаних з роботою ПЕОМ), S - освітлювана площа=30 м2. z - характеризує нерівномірне освітлення, z=Еср / Еmіn - залежить від відношення l=L/h, la=La/h=0,6, lв=Lв/h=1,5. Т.к. l перевищують допустимі значення, то z=1,1 (для люмінесцентних ламп).- число світильників, намічуване до розрахунку. Спочатку намічується число рядів n, що підставляється замість N. Тоді Ф - потік ламп одного ряду.

=Ф/Ф1,

де Ф1 - потік ламп у кожному світильнику.- коефіцієнт використання. Для його знаходження вибирають індекс приміщення і і приблизно оцінюються коефіцієнти відбиття поверхонь приміщення rпот. (стелі) =70%, rст. (стіни) =50%, rр. (підлоги) =30%.

Ф=300 *1,3 *25 *1,1/2 *0,3=21450 лм.

 

7.3 Пожежна безпека


Відповідно до ОНТП 24-86 будинок, де встановлені комп'ютери за вибухопожежною та пожежною небезпекою відноситься до категорії В, за правилами улаштування електроустановок (ПУЕ) - клас П1, оскільки тут присутні горючі (книги, документи, меблі, оргтехніка й т.д.) і тяжкосгоряючі речовини (сейфи, різне встаткування й т.д.), які при взаємодії з вогнем можуть горіти без вибуху.

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

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

Причинами виникнення пожежі можуть бути:

несправності електропроводки, розеток і вимикачів які можуть привести до короткого замикання або пробою ізоляції;

використання ушкоджених (несправних) електроприладів;

використання в приміщенні електронагрівальних приладів з відкритими нагрівальними елементами;

виникнення пожежі внаслідок влучення блискавки в будинок;

загоряння будинку внаслідок зовнішніх впливів;

неакуратний обіг з вогнем і недотримання заходів пожежної безпеки.

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

Для профілактики пожежі надзвичайно важлива правильна оцінка пожежонебезпеки будинку, визначення небезпечних факторів і обґрунтування способів і засобів пожежопопередження й захисту.

Одне з умов забезпечення пожежної безпеки - ліквідація можливих джерел запалення. У приміщені джерелами запалення можуть бути:

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

несправні електроприлади. Необхідні міри для виключення пожежі містять у собі своєчасний ремонт електроприладів, якісне виправлення поломок, не використання несправних електроприладів;

обігрівання приміщення електронагрівальними приладами з відкритими нагрівальними елементами. Відкриті нагрівальні поверхні можуть спричинити пожежу, тому що в приміщенні перебувають паперові документи й довідкова література у вигляді книг, посібників, а папір - легкозаймистий предмет. З метою профілактики пожежі пропоную не використати відкриті обігрівальні прилади в приміщенні;

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

влучення в будинок блискавки. У літній період під час грози можливе влучення блискавки внаслідок чого можливий пожежа. Щоб уникнути цього я рекомендую встановити на даху будинку блискавковідвід;

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

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

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

У випадку загоряннях електропристроїв можуть перебувати під напругою, то використати воду й піну для гасіння пожежі неприпустимо, оскільки це може привести до електричних травм. Іншою причиною, по якій небажане використання води, є те, що на деякі елементи ЕОМ неприпустиме влучення вологи. Тому для гасіння пожеж у розглянутому приміщенні можна використати або порошкові склади, або установки вуглекислотного гасіння. Але оскільки останні призначені тільки для гасіння невеликих вогнищ загоряння, то область їхнього застосування обмежена. Тому для гасіння пожеж у цьому випадку застосовуються порошкові склади, тому що вони мають наступні властивості: діелектрики, практично не токсичні, не роблять корозійного впливу на метали, не руйнують діелектричні лаки.

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

Автоматична установка й установка з механічним включенням відрізняється тільки засобами відкриття запірного крана. В автоматичних установках використаються різні датчики виявлення пожежі (по диму, тепловому й світловому випромінюванню), а в механічних спеціальні тросові системи з легкоплавкими замками. У цей час освоєні модульні порошкові установки ОПА-50, ОПА-100, УАПП.

У розглянутому приміщенні застосуємо сповіщувачі типу ИП 104, які спрацьовують при перевищенні температури в приміщенні +60 0С. І сповіщувачі типу ИП 212, які спрацьовують при скупченні диму в приміщенні.

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

Висновки


У процесі виконання дипломної роботи було розроблено клієнт-серверну систему інформаційної підтримки підвищення кваліфікації персоналу ДП№9. Розроблена система дозволяє:

·        покращити ефективність роботи;

·        підвищити оперативність обробки інформації;

·        зменшити обсяг паперових носіїв;

·        підвищити оперативність та точність роботи.

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

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

Для візуалізації використовувалась мова HTML та доповнення до неї CSS, що дало можливість надати розробці більш сучасного вигляду і функціоналу. А для більшої інтерактивності клієнтської частини було використано мову програмування Java-Script.

Список літератури


1.       Бадд Э., Молл К., Коллизон С. Мастерская CSS: профессиональное применение Web-стандартов - М.: Вильямс, 2007 г.

2.       Вагнер Р., Вайк А. JavaScript. Энциклопедия пользователя - ДиаСофт, 2001 г.

.        Веллингтон Б., Томпсон С. Разработка web-приложений с помощью php и MySQL - Вильямс", 2005 г.

.        Гудман Дж. JavaScript и DHTML. Сборник рецептов - Питер 2004 г.

.        Дари Х., Бринзаре К. AJAX и PHP. Разработка динамических приложений - Символ, 2006 г.

.        Дунаев В. Самоучитель JavaScript.2-е издание - ДиаСофт, 2001 г.

7.       Коггзолл Дж. PHP 5. Полное руководство - Диалектика <http://www.dialektika.com>, 2006 г.

.        Котеров Д.В., Костарев А.Ф., PHP 5 В Подлиннике - БХВ-Петербург, 2006 г.

.        Кузнецов А.В., Симдянов К.С., Голышев П.А. PHP5. Практика создания web-сайтов - БХВ-Петербург, 2005 р.

.        Кухарчик А.Р. PHP: обучение на примерах - Новое знание, 2004г.

.        Мадрел Тео. Разработка пользовательского интерфейса/ Пер. с англ. - М.: ДМК, 2001.

.        Мэрдок К. JavaScript. Наглядный курс создания динамических Web-страниц - СПб: Питер, 2001 г.

.        Ратшиллер Т., Геркен Т. PHP4: разработка Web-приложений. - СПб: Питер, 2001 г.

.        Світличний О.О., Плотницький С.В. Основи геоінформатики. Технології "клієнт-сервер" і Internet-технології в ГІС. Розподілені бази даних - М.: АСТ-ПРЕСС Кнрга, 2001 р.

.        Соколов С. А.html и CSS в примерах, типовых решениях и задачах. Профессиональная работа. - М.: Вильямс <http://ru.wikipedia.org/wiki/%D0%92%D0%B8%D0%BB%D1%8C%D1%8F%D0%BC%D1%81_(%D0%B8%D0%B7%D0%B4%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D1%82%D0%B2%D0%BE)>, 2007 г.

.        Спейнауэр С., Куэрсиа В. Справочник Web-мастера. - К: BHV, 1997 г.

.        Титтел Э., Бурмейстер М.html 4 для "чайников" - 5-е изд. - М.: Диалектика <http://ru.wikipedia.org/wiki/%D0%94%D0%B8%D0%B0%D0%BB%D0%B5%D0%BA%D1%82%D0%B8%D0%BA%D0%B0_(%D0%B8%D0%B7%D0%B4%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D1%82%D0%B2%D0%BE)>, 2006 г.

.        Томсон Л., Веллинг Л. Разработка Web-приложений на PHP и MySQL. - К.: ДиаСофт, 2001 г.

.        Уикли.Р. Освой самостоятельно CSS.10 минут на урок - М.: Вильямс, 2006 г.

.        Харрис Э. PHP/MySQL для начинающих - Кудиц-образ 2005 г.

.        Хилайер С., Мизик Д. Программирование Active Server Pages. - М: Русская редакция, 1999 г.

.        Холзнер С. Perl: специальный справочник. - СПб: "Питер". 2000г.

.        Шмитт. K. CSS. Рецепты программирования - СПб.: БХВ-Петербург, 2007 г.

.        Эрик А. Мейер. CSS-каскадные таблицы стилей: подробное руководство - М.: Символ, 2006 г.

.        Яргер Р., Риз Дж., Кинг Т. MySQL и mSQL. Базы данных для небольших предприятий и Интернета. - СПб: Символ-Плюс, 2000 г.

.        j@alba.ua <mailto:j@alba.ua> - адрес автора

.        dev. w3.org/html5/spec/Overview.html // Новая спецификация языка HTML

.        www.cross-browser.com // Документы по особенностям Java-Script

.        www.javascript.ru <http://www.javascript.ru> // Справочник по Java-script

.        www.nsc.ru/docs/html/html-primer.html // Документация по HTML

.        www.php.org <http://www.php.org> // Справочник по PHP

.        www.rsdn.ru <http://www.rsdn.ru> // Документация и справочные руководства

.        www.w3.org/TR/REC-html40-971218/ <http://www.w3.org/TR/REC-html40-971218/> // Оригинальная документация

Додатки


Додаток А

 

Вихідний код системи. php

<? php_start ();(! $_SESSION ['user_id']) {("Location: login. php");();

}($_SESSION ['user_id']! = 1) {("Location: index. php");();

}_connect ("localhost","root","");_query ("SET character_set_client = cp1251");_query ("SET character_set_connection = cp1251");_query ("SET character_set_results = cp1251");_select_db ("tests");($_REQUEST ['do'] == "add_user") {($_REQUEST ['name'] && $_REQUEST ['tabnum']) {_query ("INSERT into users set name='$_REQUEST [name] ', tabnum='$_REQUEST [tabnum] ', date=NOW ()");("Location: users. php");();

}

}($_REQUEST ['gen']) {

$chars="qazxswedcvfrtgbnhyujmkiolp1234567890QAZXSWEDCVFRTGBNHYUJMKIOLP";

$loginmax=6;

$passmax=12;

$size=StrLen ($chars) - 1;

$setlogin = null;

$setpass = null;($loginmax--) $setlogin. =$chars [rand (0,$size)];($passmax--) $setpass. =$chars [rand (0,$size)];_query ("UPDATE users set login='$setlogin', pass='$setpass', testid='$_REQUEST [testid] ' where id='$_REQUEST [gen] '");("Location: users. php");();

}

? >

<! DOCTYPE html PUBLIC "- // W3C // DTD XHTML 1.0 Transitional // EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional. dtd">

<html>

<head>

<title>.: users:. </title>

<script type="text/javascript">switch_view (mynode) {(mynode. nextSibling. style. display == "" || mynode. nextSibling. style. display == "none") {. nextSibling. style. display = "block";

} else {. nextSibling. style. display = "none";

}

}

</script>

</head>

<body style="margin: 0px 0px; padding: 0px 0px; ">

<div style="margin: 0px auto; width: 980px; padding: 0px 0px; ">

<div style="padding: 20px 20px; margin: 0px 0px; background-color: #cccccc; color: #333333; font-size: 32px; text-align: center; ">

Гибкая система информационной поддержки повышения квалификации персонала ДП-9

</div>

<div style="padding: 10px 10px; margin: 0px 0px; background-color: #333333; color: #cccccc; font-size: 12px; text-align: left; ">

Вы вошли как пользователь <b><? php echo $_SESSION ['user_name'];? ></b> [<span style="cursor: pointer; " onclick="javascript: window. location = 'logout. php'; ">выход</span>] <span style="width: 300px; float: right; cursor: pointer; text-align: right; " onclick="javascript: window. location = 'generator. php'; ">{ Создание тестов }</span></div>

<div style="padding: 10px 10px; margin: 0px 0px; background-color: #eeeeee; color: #333333; text-align: left; ">

<? php

$result = mysql_query ("SELECT u. *, (SELECT testname FROM tests WHERE id=`u`. `testid`) as teeee from users as u where id! =1 order by id");"<ol>";($users = mysql_fetch_array ($result, MYSQL_NUM)) {

$testsdone = mysql_query ("SELECT ts. *, t. testname from testsessions as ts,tests as t where ts. testid=t. id AND ts. userid=$users [0] ");"<li><span style=\"cursor: pointer; \">$users [3] </span> &#151; $users [4] [$users [5]] ";($users [1] == "" && $users [2] == "") {

? >

<form action="?" method="POST" style="display: inline; ">

<input type="hidden" name="gen" value="<? php echo $users [0];? >">

<select name="testid">

<? php

$result1 = mysql_query ("SELECT * from tests order by id");($tests = mysql_fetch_array ($result1, MYSQL_NUM)) {"<option value=\"$tests [0] \">$tests [1] </option>";

}

? >

</select>

<input type="submit" value="GENERATE" />

</form>

<? php

} else {" {<tt>". $users [1]. "&#151;". $users [2]. "</tt>} &gt; &gt; &gt; $users [7] ";

}

}

? >

<li><span style="cursor: pointer; " onclick="switch_view (this)"> [+] </span><div style="display: none; ">

<form action="?" method="POST">

<input type="hidden" name="do" value="add_user">

<label>ФИО <input type="text" name="name"></label>

<label>Табельный номер <input type="text" name="tabnum"></label>

<input type="submit" value="Добавить пользователя">

</form></div>

</li>

<? php"</ol>";

? >

</div>

</div>

</body>

</html>. php

<? php_start ();_destroy ();("location: index. php");();

? >. php

<? php_start ();($_SESSION ['user_id']) {("Location: index. php");;

}($_POST ['login'] && $_POST ['pass']) {_connect ("localhost","root","");_query ("SET character_set_client = cp1251");_query ("SET character_set_connection = cp1251");_query ("SET character_set_results = cp1251");_select_db ("tests");

@$result = mysql_query ("SELECT id,name,testid from users where login='". $_POST ['login']. "' and pass='". $_POST ['pass']. "'");

@$user_id = mysql_result ($result,0,"id");

@$user_name = mysql_result ($result,0,"name");

@$testid = mysql_result ($result, 0, "testid");($user_id) {

$_SESSION ['user_id'] = $user_id;

$_SESSION ['user_name'] = $user_name;

$_SESSION ['testid'] = $testid;("Location: index. php");;

}else{

$msg="Логин или пароль заданы неверно!";

}

}

? >

<! DOCTYPE html PUBLIC "- // W3C // DTD XHTML 1.0 Transitional // EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional. dtd">

<html>

<head>

<title>.: login:. </title>

</head>

<body style="margin: 0px 0px; padding: 0px 0px; ">

<div style="margin: 0px auto; width: 550px; background-color: #cccccc; padding: 5px; text-align: center; ">

<form action="?" method="POST" style="margin: 0px 0px; padding: 0px 0px; ">

<label style="margin: 0px 10px; ">Login: <input type="text" name="login" value="<? php echo $_POST ['login'];? >"></label><label style="margin: 0px 10px; ">Password: <input type="password" name="pass"></label><input type="submit" value="enter">

</form>

<font color="red" size="-1"><? php echo $msg;? ></font>

</div>

</body>

</html>. php

<? php_start ();(! $_SESSION ['user_id']) {("Location: login. php");();

}_connect ("localhost","root","");_query ("SET character_set_client = cp1251");_query ("SET character_set_connection = cp1251");_query ("SET character_set_results = cp1251");_select_db ("tests");($_REQUEST ['do'] == "thissubmit") {_query ("INSERT into testsessions set userid=$_SESSION [user_id],testid=$_SESSION [testid],date=NOW ()");

$test_session_id = mysql_insert_id ();

$_SESSION ['test_session_id'] = $test_session_id;(! $_REQUEST [que]) {$_REQUEST [que] = "0"; }

$result = mysql_query ("SELECT * from questions where testid=$_SESSION [testid] and id in ($_REQUEST [que])");($row = mysql_fetch_array ($result)) {

$answ = $_REQUEST [$row [0]];(! $answ) {$answ = 0; }_query ("INSERT into testanswers set testsessionid=$test_session_id,qwid=$row [0],ansid=$answ");

}("Location: index. php");();

}($_SESSION ['user_id'] == 1) {("location: users. php");();

} else {($_SESSION ['test_session_id']) {

$r = mysql_query ("SELECT t. done from testsessions as ts,tests as t where ts. testid=t. id and ts. id=$_SESSION [test_session_id] ");

$mustdone=mysql_result ($r,0,'done');

$result = mysql_query ("SELECT * from testanswers where testsessionid=$_SESSION [test_session_id] ");($row = mysql_fetch_array ($result)) {

$user_answer [$row [2]] =$row [3];($mycontent! = "") {

$mycontent. = ",". $row [2];

} else {

$mycontent = $row [2];

}

}

$result = mysql_query ("SELECT * from questions where id in ($mycontent) order by id");

$mycontent = "";

$mycontent. = "<ol>";

$mydone = 0;($row = mysql_fetch_array ($result)) {

$mycontent. = "<li><span>$row [2] </span><ol>";

$allres. = ",$row [0] ";

$result1 = mysql_query ("SELECT * from answers where qwid=$row [0] ");($ans = mysql_fetch_array ($result1)) {($ans [3] && $user_answer [$ans [1]] == $ans [0]) {

$mycontent. = "<li><span style=\"color: #339933; \"><b>$ans [2] </b></span></li>";

$mydone++;

} elseif ($user_answer [$ans [1]]! = $ans [0] && $ans [3]) {

$mycontent. = "<li><span style=\"color: #cc9900; \">$ans [2] </span></li>";

} elseif ($user_answer [$ans [1]] == $ans [0] &&! $ans [3]) {

$mycontent. = "<li><span style=\"color: #ff3333; \">$ans [2] </span></li>";

} else {

$mycontent. = "<li><span>$ans [2] </span></li>";

}

}

$mycontent. = "</ol></li>";

}

$mycontent. = "</ol>";

$somedone = 0;($mydone >= $mustdone) {

$mycontent. = "<center><b style=\"color: #339933; \">Тест пройден успешно</b></center>";

$somedone = 1;

} else {

$mycontent. = "<center><b style=\"color: #ff3333; \">Тест провален</b></center>";

}_query ("UPDATE users set login='',pass='',testid='' where id=$_SESSION [user_id] ");_query ("UPDATE testsessions set done=$somedone where id=$_SESSION [test_session_id] ");_destroy ();

} else {

$result=mysql_query ("select id FROM questions WHERE testid=$_SESSION [testid] ");

#echo "$_SESSION [testid] ";

$all_questions = array (); #массив вопросов($row = mysql_fetch_array ($result)) {

$all_questions [] = $row [0];

}

$result=mysql_query ("select cnt FROM tests WHERE id=$_SESSION [testid] ");($row = mysql_fetch_array ($result)) {

$noq=$row [0];

}

$touser = array_rand ($all_questions, $noq);($i = 0; $i<$noq; $i++) {($mycontent! = "") {

$mycontent. = ",". $all_questions [$touser [$i]];

} else {

$mycontent. = $all_questions [$touser [$i]];

}

}

$result = mysql_query ("SELECT * from questions where id in ($mycontent) order by id");

$mycontent = "<form action=\"? \" method=\"POST\"><input type=\"hidden\" name=\"do\" value=\"thissubmit\">";

$mycontent. = "<ol>";($row = mysql_fetch_array ($result)) {

$mycontent. = "<li><span>$row [2] </span><ol>";

$allres. = ",$row [0] ";

$result1 = mysql_query ("SELECT * from answers where qwid=$row [0] ");($ans = mysql_fetch_array ($result1)) {

$mycontent. = "<li><label><input type=\"radio\" name=\"$row [0] \" value=\"$ans [0] \"><span>$ans [2] </span></label></li>";

}

$mycontent. = "</ol></li>";

}

$allres = "0". $allres;

$mycontent. = "<input type=\"hidden\" name=\"que\" value=\"$allres\">";

$mycontent. = "</ol><input type=\"submit\" value=\"Отправить результат\"></form>";

}

}

? >

<! DOCTYPE html PUBLIC "- // W3C // DTD XHTML 1.0 Transitional // EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional. dtd">

<html>

<head>

<title>.: index:. </title>

</head>

<body style="margin: 0px 0px; padding: 0px 0px; ">

<div style="margin: 0px auto; width: 980px; padding: 0px 0px; ">

<div style="padding: 20px 20px; margin: 0px 0px; background-color: #cccccc; color: #333333; font-size: 32px; text-align: center; ">

Гибкая система информационной поддержки повышения квалификации персонала ДП-9

</div>

<div style="padding: 10px 10px; margin: 0px 0px; background-color: #333333; color: #cccccc; font-size: 12px; text-align: left; ">

Вы вошли как пользователь <b><? php echo $_SESSION ['user_name'];? ></b> [<span style="cursor: pointer; " onclick="javascript: window. location = 'logout. php'; ">выход</span>] </div>

<div style="padding: 10px 10px; margin: 0px 0px; background-color: #eeeeee; color: #333333; text-align: left; ">

<? php echo $mycontent;? >

</div>

</div>

</body>

</html>. php

<? php_start ();(! $_SESSION ['user_id']) {("Location: login. php");;

}($_SESSION ['user_id']! = 1) {("Location: index. php");;

}_connect ("localhost","root","");_query ("SET character_set_client = cp1251");_query ("SET character_set_connection = cp1251");_query ("SET character_set_results = cp1251");_select_db ("tests");($_REQUEST ['right']) {

$result = mysql_query ("SELECT qwid from answers where id=$_REQUEST [right] ");

$qwid = mysql_result ($result, 0, "qwid");_query ("UPDATE answers set `right`=0 where qwid=$qwid");_query ("UPDATE answers set `right`=1 where id=$_REQUEST [right] ");

$_SESSION ['view_last_quest'] = $_REQUEST ['last_quest'];

$_SESSION ['view_last_test'] = $_REQUEST ['last_test'];("location: generator. php");();

}($_REQUEST ['do'] == 'add_test') {($_REQUEST ['testname']) {_query ("INSERT INTO tests SET testname='". $_REQUEST ['testname']. "', cnt='". $_REQUEST ['cnt']. "', done='". $_REQUEST ['done']. "'");

$test_id = mysql_insert_id ();($test_id) {

#тест добавлен("location: generator. php");();

}else{

#тест не добавлен

}

}else{

}

}elseif ($_REQUEST ['do'] == 'add_quest') {($_REQUEST ['testid'] && $_REQUEST ['quest']) {_query ("INSERT INTO questions SET testid='". $_REQUEST ['testid']. "', quest='". $_REQUEST ['quest']. "'");

$qwid = mysql_insert_id ();($qwid) {

#вопрос добавлен

$_SESSION ['view_last_test'] = $_REQUEST ['testid'];("location: generator. php");();

}else{

#вопрос не добавлен

}

}else{

#не задан тест айди или имя вопроса

}

}elseif ($_REQUEST ['do'] == 'add_ans') {($_REQUEST ['qwid'] && $_REQUEST ['ans']) {_query ("INSERT INTO answers SET qwid='". $_REQUEST ['qwid']. "', `right`=0, ans='". $_REQUEST ['ans']. "'");

$ansid = mysql_insert_id ();

#ответ добавлен

$_SESSION ['view_last_quest'] = $_REQUEST ['qwid'];

$_SESSION ['view_last_test'] = $_REQUEST ['last_test'];("location: generator. php");();

}else{

#не задан вопрос айди или имя ответа

}

}

? >

<! DOCTYPE html PUBLIC "- // W3C // DTD XHTML 1.0 Transitional // EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional. dtd">

<html>

<head>

<title>.: generator:. </title>

<style type="text/css">ol {display: none; }ol ol {display: none; }

</style>

<script type="text/javascript">switch_view (mynode) {(mynode. nextSibling. style. display == "" || mynode. nextSibling. style. display == "none") {. nextSibling. style. display = "block";

} else {. nextSibling. style. display = "none";

}

}

</script>

</head>

<body style="margin: 0px 0px; padding: 0px 0px; ">

<div style="margin: 0px auto; width: 980px; padding: 0px 0px; ">

<div style="padding: 20px 20px; margin: 0px 0px; background-color: #cccccc; color: #333333; font-size: 32px; text-align: center; ">

Гибкая система информационной поддержки повышения квалификации персонала ДП-9

</div>

<div style="padding: 10px 10px; margin: 0px 0px; background-color: #333333; color: #cccccc; font-size: 12px; text-align: left; ">

Вы вошли как пользователь <b><? php echo $_SESSION ['user_name'];? ></b> [<span style="cursor: pointer; " onclick="javascript: window. location = 'logout. php'; ">выход</span>] <span style="width: 300px; float: right; cursor: pointer; text-align: right; " onclick="javascript: window. location = 'users. php'; ">{ Работа с пользователями }</span></div>

<div style="padding: 10px 10px; margin: 0px 0px; background-color: #eeeeee; color: #333333; text-align: left; ">

<? php

$result = mysql_query ("SELECT * from tests order by id");"<ol>";($tests = mysql_fetch_array ($result, MYSQL_NUM)) {"<li><span style=\"cursor: pointer; \" onclick=\"switch_view (this) \">$tests [1] </span>";

$result1 = mysql_query ("SELECT * from questions where testid='". $tests [0]. "' order by id");($_SESSION ['view_last_test'] == $tests [0]) {"<ol style=\"display: block; background-color: #dddddd; \">";

} else {"<ol>";

}($questions = mysql_fetch_array ($result1, MYSQL_NUM)) {"<li><span style=\"cursor: pointer; \" onclick=\"switch_view (this) \">$questions [2] </span>";($_SESSION ['view_last_quest'] == $questions [0]) {"<ol style=\"display: block; background-color: #cccccc; \">";

} else {"<ol>";

}

$result2 = mysql_query ("SELECT * from answers where qwid='". $questions [0]. "' order by id");

? >

<form action="?" method="POST">

<input type="hidden" name="last_test" value="<? php echo $tests [0];? >"/>

<input type="hidden" name="last_quest" value="<? php echo $questions [0];? >"/>

<? php($answers = mysql_fetch_array ($result2, MYSQL_NUM)) {($answers [3]) {"<li><label><input type=\"radio\" checked name=\"right\" value=\"$answers [0] \"/>$answers [2] </label></li>";

} else {"<li><label><input type=\"radio\" name=\"right\" value=\"$answers [0] \"/>$answers [2] </label></li>";

}

}

? >

<input type="submit" value="выбрать правильный">

</form>

<li>

<form action="?" method="POST">

<input type="hidden" name="do" value="add_ans">

<input type="hidden" name="last_test" value="<? php echo $tests [0];? >"/>

<input type="hidden" name="qwid" value="<? php echo $questions [0]? >">

<textarea name="ans">Введите ответ здесь</textarea><br>

<input type="submit" value="Добавить">

</form>

</li></ol>

<? php

}

? >

<li>

<form action="?" method="POST">

<input type="hidden" name="do" value="add_quest">

<input type="hidden" name="testid" value="<? php echo $tests [0]? >">

<textarea name="quest">Введите вопрос здесь</textarea><br>

<input type="submit" value="далее">

</form>

</li></ol>

<? php

}

? >

<li>

<form action="?" method="POST">

<input type="hidden" name="do" value="add_test"/>

<label>Название теста: <input type="text" name="testname" value=""></label>

<label>Кол-во вопросов: <input type="text" name="cnt" value="" size="3"></label>

<label>Кол-во ответов: <input type="text" name="done" value="" size="3"></label>

<input type="submit" value="Далее"/>

</form>

</li></ol>

</div>

</div>

</body>

</html>

Похожие работы на - Гнучка система інформаційної підтримки підвищення кваліфікації персоналу ДП № 9

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!