ограмою, то він може залишитися на другий навчальний рік в тому ж класі. Оцінки з предметів враховуються в журналі.
Крім навчального процесу учні додатково займаються в студіях і гуртках, беруть участь у шкільних олімпіадах.
Кожен вчитель у школі викладає предмети (один або більше) в різних класах. Рівень професійних навичок вчителя характеризується категорією.
Схема зв'язків об'єктної області створеної бази даних зображена на малюнку 8.
Рисунок 8 - Схема зв'язків об'єктної області бази даних
Проектування бази даних здійснювалася за допомогою сервісу dbdsngr (сайт: dbdsngr.appspot), який дозволяє за допомогою візуальних засобів створити структуру і згенерувати SQL-код для формування бази даних в СУБД MySQL.
Схема бази даних гімназії у вигляді таблиць зі зв'язками зображена на малюнку 9.
Рисунок 9 - Схема бази даних у вигляді таблиць зі зв'язками
4. Реалізація системи
.1 Створення бази даних
При реалізації системи використовувалися сучасні засоби розробки, які дозволили спростити процес створення бази даних, інтерфейсу користувача і програмної частини системи.
Реалізація системи складається з чотирьох етапів:
Розробка та наповнення бази даних для тестування.
Реалізація користувальницького інтерфейсу засобами фрейморкамі CodeIngres (використовуючи концепцію MVC).
Програмування контролерів для взаємодії через інтерфейс системи з базою даних.
Тестування системи.
База даних представлена ??16 таблицями. Повний опис кожної таблиці бази даних гімназії відображено в таблицях 1-16.
Слід зазначити, що навчальний рік не збігається з календарним роком. Навчальний рік розпочинається 1 вересня одного календарного року, а закінчується 31 травня наступного календарного року. Для зручності подання в базу даних вноситься рік, який збігається з початком навчального. Так як навчальний рік є основним фільтром для пошуку, то по ньому не проводилося нормалізації бази даних. Це дозволило спростити програмну реалізацію системи.
Таблиця 1 - Структура таблиці pupil (учень)
АтрібутТіп даннихКомментарійid_pupilIntІдентіфікатор учня Первинний ключsurnamevarchar (30) Прізвище ученікаnamevarchar (12) Ім'я ученікаlast_namevarchar (15) По батькові ученікаbirthdayDataДень рожденіяaddressvarchar (80) Місце проживання
Структура таблиці pupil призначена для зберігання відомостей про учнів.
Стовпець id_pupil генерується автоматично при додаванні запису в таблицю і є унікальним ідентифікатором учня і є первинним ключом.запрос для створення таблиці pupil:
CREATE TABLE pupil (
id_pupil INT NOT NULL AUTO_INCREMENT, KEY ( id_pupil )
surname VARCHAR (30),
name VARCHAR (12),
last_name VARCHAR (15),
birthday DATE,
address VARCHAR (80)
);
Таблиця 2 - Структура таблиці parent (батько)
АтрібутТіп даннихКомментарійid_parentintІдентіфікатор батька Первинний ключsurnamevarchar (30) Прізвище ученікаnamevarchar (12) Ім'я учітеляlast_namevarchar (15) По батькові учітеляjobvarchar (80) Місце роботи
Структура таблиці parent призначена для зберігання відомостей про батьків.
Стовпець id_parent генерується автоматично при додаванні запису в таблицю і є унікальним ідентифікатором родітеля.запрос для створення таблиці parent:
CREATE TABLE parent (
id_parent INT NOT NULL AUTO_INCREMENT, KEY ( id_parent )
surname VARCHAR (30),
name VARCHAR (12),
last_name VARCHAR (15),
job VARCHAR (80)
);
Таблиця 3 - Структура таблиці family (сім'я)
АтрібутТіп даннихКомментарійid_pupilintВнешній ключid_parentintВнешній ключstatusvarchar (10) Батько, мати, опікун
Структура таблиці family призначена для зберігання відомостей про склад семьі.запроси для створення таблиці family:
CREATE TABLE family (
id_pupil INT,
id_parent INT,
status VARCHAR ...