Смекни!
smekni.com

Розробка програмного модулю для визначення професійних знань (стр. 3 из 14)

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

рейтинг;

запитання;

відповіді;

рівні придатності;

авторизація.

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

При приведені до другої нормальної форми було додано ключі до таблиць. До таблиці “Користувачі” будо додано ключове поле – код
користувача. До таблиці “Рейтинг” будо додано ключове поле – код запису. До таблиці “Запитання” будо додано ключове поле – код запитання. До таблиці “Відповіді” будо додано ключове поле – код відповіді. До таблиці “Рівні придатності” будо додано ключове поле – код рівня, а до таблиці “Авторизація” будо додано ключове поле – код запису.

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

Відношення були приведені до третьої нормальної форми.

Далі виявимо зв’язки інформаційно-логічної моделі.

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

Зв’язки поділяються на три типи за множинністю: “один-до-одного” (1:1), “один-до-багатьох” (1:Б), “багато-до-багатьох” (Б:Б). Зв’язок “один-до-одного” (1:1) означає, що екземпляр однієї сутності зв’язаний тільки з одним екземпляром іншої сутності. Зв’язок 1:Б означає, що один екземпляр сутності, розташований ліворуч по зв’язку, може бути зв’язаний з декількома екземплярами сутності, розташованими праворуч по зв’язку. А зв’язок Б:Б означає, що один екземпляр першої сутності може бути зв’язаний з декількома екземплярами другої сутності, і навпаки, один екземпляр другої сутності може бути зв’язаний з декількома екземплярами першої сутності.

Для встановлення відношень між інформаційними об’єктами задамо запити до цих об’єктів:

до якого запитання належать відповіді?

які результати тестування в користувача?

Зв’язок №1

Кожне запитання має певний список відповідей, тому організовуємо зв’язок “один-до-багатьох” (рисунок 2.3).


Рисунок 2.3 – Зв’язок “Запитання – Відповіді”

Зв’язок №2

Кожен користувач може пройти тест на професійну придатність безліч разів. На основі цього складається рейтинг учасників, тому організовуємо зв’язок “один-до-багатьох” (рисунок 2.4).

Рисунок 2.4 – Зв’язок “Користувачі – Рейтинг”

На основі структурних зв’язків будуємо інфологічну модель, яка наведена на рисунку 2.5.

Рисунок 2.5 – Інфологічна модель

Тепер опишемо властивості кожної таблиці.

Властивості таблиці “Користувачі” наведені в таблиці 2.1.


Таблиця 2.1 – Властивості таблиці “Користувачі”

Назва реквізиту Ідентифікатор Тип Маска / Довжина Ключове поле
Код користувача adept_id Цілі значення 11 Primary
Прізвище adept_surname Строкова величина 100
Ім’я adept_name Строкова величина 100
Email adept_mail Строкова величина 50
Пароль adept_password Строкова величина

Властивості таблиці “Запитання” наведені в таблиці 2.2.

Таблиця 2.2 – Властивості таблиці “Запитання”

Назва реквізиту Ідентифікатор Тип Маска / Довжина Ключове поле
Код запитання quest_id Цілі значення 11 Primary
Текст запитання quest_question Строкова величина
Картинка quest_image Строкова величина 100

Властивості таблиці “Відповіді” наведені в таблиці 2.3.

Таблиця 2.3 – Властивості таблиці “Відповіді”

Назва реквізиту Ідентифікатор Тип Маска / Довжина Ключове поле
Код відповіді ans_id Цілі значення 11 Primary
Варіант відповіді ans_answer Строкова величина 255
Вага відповіді ans_point Цілі значення 11
Код запитання ans_question_id Цілі значення 11 Secondary

Властивості таблиці “Рейтинг” наведені в таблиці 2.4.

Таблиця 2.4 – Властивості таблиці “Рейтинг”

Назва реквізиту Ідентифікатор Тип Маска / Довжина Ключове поле
Код запису rat_id Цілі значення 11 Primary
Бал rat_mark Цілі значення 11
Дата тестування rat_date Цілі значення 12
Час проходження тесту rat_time Цілі значення 12
Код користувача rat_adept_id Цілі значення 11 Secondary

Для авторизації та управління адміністраторами створена таблиця “Авторизація”, її властивості наведені в таблиці 2.5.

Таблиця 2.5 – Властивості таблиці “Авторизація”

Назва реквізиту Ідентифікатор Тип Маска / Довжина Ключове поле
Код запису user_id Цілі значення 11 Primary
Ім’я user_name Строкова величина 100
Логін user_login Строкова величина 60
Пароль user_password Строкова величина 50
Ip адреса user_ip Строкова величина 25
Дата входу user_denter Цілі значення 12
Права user_rule Цілі значення 3

Властивості таблиці “Рівні придатності” наведені в таблиці 2.6.

Таблиця 2.6 – Властивості таблиці “ Рівні придатності”

Назва реквізиту Ідентифікатор Тип Маска / Довжина Ключове поле
Код рівня level_id Цілі значення 11 Primary
Рівень level_name Строкова величина 100
Мінімальний бал рівня level_min Цілі значення 3
Максимальний бал рівня level_max Цілі значення 3

Схема даталогічної моделі наведена на рисунку 2.6.

Рисунок 2.6 – Даталогічна модель

2.2 Розробка структури інформаційної системи

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

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

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

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

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

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

встановлення зв'язку з БД;

формування запиту;

надсилання запиту до БД;

обробка результату, отриманого від БД.

Для підключення до бази даних потрібні наступні параметри:

тип бази даних;

ім'я хост-вузла;

ім'я користувача;

пароль користувача;

назва бази даних.

Отримавши необхідну інформацію від бази даних завершується з’єднання з MySQL, після цього на основі отриманої інформації формується HTML-документ [3].

HTML документ складається із трьох частин:

декларація типу документа (англ. Document type declaration, Doctype), на самому початку документа, в якій визначається тип документа (DTD), наприклад, HTML 4.01 Strict;

шапка HTML документа (HEAD), в якій записано загальні технічні відомості або додаткова інформація про документ, яка не відображається безпосередньо в браузері;

тіло HTML документа (BODY), в якому міститься основна інформація документа [4].

Далі опишемо структуру програмного продукту.

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

Тестова система буде мати наступні модулі:

модуль для керування адміністраторами;

модуль для керування зареєстрованими користувачами;

модуль для роботи з тестом;

модуль відправки повідомлень.

Модуль для керування адміністраторами буде потрібен для додавання/видалення/редагування адміністраторів веб-додатку.

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

Модуль для роботи з тестом – це головний модуль програми. В цьому модулі адміністратор зможе додавати/видаляти/редагувати запитання і відповіді до них, налаштовувати тест.