При анализе были определены следующие типы входных данных: информация об учениках (ФИО, дата рождения, учебный класс); информация о педагогах (ФИО, дата рождения, специализация); данные о дополнительных занятиях (название, описание); запрос пользователя (критерии, вводимые пользователем при осуществлении поиска, сортировки, фильтра, создания отчёта).
Выходными данными будут являться различные отчёты, формируемые системой по запросу пользователя, а также расписание дополнительных занятий.
Управляющим элементом будут являться правила набора учебных групп и формирования расписания.
Механизмом реализации функций ИС являются конечные пользователи системы и клиентская форма.

Рисунок 2.2 Контекстная диаграмма системы
Проведем декомпозицию и рассмотрим функции более подробно:

Рисунок 2.3 — Декомпозиция системы
Опишем подробно последовательность выполнения работ:
- Ведение списка педагогов – пользователь вносит основные данные о педагогах школы. Занимается обновлением и удалением данных.
- Ведение списка учеников – пользователь вносит основные данные об учащихся. Занимается обновлением и удалением данных.
- Формирование учебных групп – пользователь производит заполнение списка групп, вносит данные о учениках, предметах и преподавателях.
- Формирование расписания занятий – пользователь формирует действующее расписание дополнительных занятий, заполняет данные о дате и времени проведения, расставляет сформированные ранее группы.
- Обработка запросов – для удобства пользователей необходим простой и понятный интерфейс для поиска, фильтрации, сортировки данных и создания отчётностей.
Проведем декомпозицию работы «Формирование учебных групп».

Рисунок 2.4 – Декомпозиция работы «Формирование учебных групп»
На данной диаграмме видно, что процесс формирования учебной группы включает несколько этапов. Сначала нужно привязать преподавателя к предмету, затем осуществить предварительную привязку учащегося к группе.

Рисунок 2.5 — Диаграмма Use-case, описывающая взаимодействие пользователей с системой
Планируется, что с системой будут работать два вида пользователей – администратор, и обычный пользователь.
Администратор осуществляет операции по, резервному копированию и восстановлению данных. Также администратору доступны функции по созданию и просмотру отчетов.
Пользователь занимается непосредственно ведением таблиц с данными. Вносит основные сведения, формирует отчетные формы.
2.2 Разработка структуры базы данных
Составим логическую модель системы с помощью ERWin.

Рисунок 2.6 — Логическая модель системы
Планируется, что разрабатываемая система будет состоять из восьми таблиц – пяти основных, двух дополнительных и одной справочной. Основные таблицы: «Учителя» — содержит информацию об учителях. Включает в себя фамилию, имя, отчество, дату рождения и специализацию. «Ученики» — содержит основные данные об учениках. Включает в себя фамилию, имя, отчество, дату рождения и класс обучения. «Предметы» — хранит информацию о действующих кружках. Содержит поля с названием и кратким описанием «Группы» — содержит информацию об учебных группах. «Расписание» — хранит данные о расписании занятий на ближайшее время. Дополнительные таблицы: «Ученик-Группа» — содержит данные о привязке ученика к конкретной учебной группе. «Учитель-Занятие» — содержит данные о привязке учителя к конкретному кружку. Справочная таблица содержит список возможных учительских специализаций для быстрого добавления.
Составим физическую модель системы с помощью ERWin.

Рисунок 2.7 — Физическая модель системы
В качестве СУБД была выбрана MicrosoftAccess. В соответствии с этим были подобраны поддерживаемые типы данных.
Таблица «Водитель» предназначена для хранения основных сведений о сотрудниках.
Таблица 2.1 – Атрибуты таблицы «Exbntkz»
Поле | Тип данных | Описание |
ID_Uchit | INT | Ключевое поле таблицы. Хранит уникальный идентификационный номер учителя. |
Fam | VARCHAR (20) | Фамилия учителя. |
Name | VARCHAR(20) | Имя учителя. |
Otch | VARCHAR(20) | Отчество учителя. |
Date_R | DATETIME | Дата рождения. |
ID_Spec | DATETIME | Числовое поле для связи со справочной таблицей «Специализации». Хранит номер специализации учителя. |
Таблица «Ученики» предназначена для хранения основных сведений об учениках.
Таблица 2.2 – Атрибуты таблицы «Объект»
Поле | Тип данных | Описание |
ID_Uchit | INT | Ключевое поле таблицы. Хранит уникальный идентификационный номер ученика. |
Fam | VARCHAR (20) | Фамилия ученика. |
Name | VARCHAR(20) | Имя ученика. |
Otch | VARCHAR(20) | Отчество ученика. |
Date_R | DATETIME | Дата рождения. |
Klas | VARCHAR(3) | Учебный класс |
Таблица «Предметы» предназначена для хранения основных сведений о действующих кружках.
Таблица 2.3 – Атрибуты таблицы «Кружки»
Поле | Тип данных | Описание |
ID_Zan | INT | Ключевое поле таблицы. Хранит уникальный идентификационный номер кружка. |
Naz | VARCHAR (20) | Название кружка. |
Opisan | VARCHAR (255) | Краткое описание |
Таблица «Группы» предназначена для хранения основных сведений о действующих группах.
Таблица 2.4 – Атрибуты таблицы «Группы»
Поле | Тип данных | Описание |
ID_Gr | INT | Ключевое поле таблицы. Хранит уникальный идентификационный номер группы. |
Grup | VARCHAR (20) | Номер группы |
ID_Uchit | INT | Числовое поле для связи с таблицей «Учителя». Хранит номер учителя, являющегося руководителем кружка. |
ID_Zan | INT | Числовое поле для связи с таблицей «Кружки». Хранит номер кружка. |
Таблица «Расписание» предназначена для хранения информации о расписании кружков на ближайшее время.
Таблица 2.5 – Атрибуты таблицы «Расписание»
Поле | Тип данных | Описание |
ID_Zap | INT | Ключевое поле таблицы. Хранит уникальный идентификационный номер записи. |
Date_Z | Date/Time | Дата занятия |
Time_Z | Date/Time | Время начала занятия |
Kab | INTEGER | Номер кабинета |
Opisan | Text(255) | Краткое описание темы занятия |
ID_Gr | INTEGER | Числовое поле для связи с таблицей «Группы». Хранит номер группы. |
Таблица «Ученик-Группа» предназначена для организации связи многие-ко-многим между таблицами «Ученики» и «Группы», поскольку каждый ученик может состоять в нескольких группа, и в то же время в каждой группе числится некоторое количество учеников.
Таблица 2.6 – Атрибуты таблицы «Ученик-Группа»
Поле | Тип данных | Описание |
ID_Zap | INT | Ключевое поле таблицы. Хранит уникальный идентификационный номер записи. |
ID_Gr | INTEGER | Числовое поле для связи с таблицей «Группы». Хранит номер группы. |
ID_Det | INTEGER | Числовое поле для связи с таблицей «Ученики». Хранит номер ученика. |
Таблица «Учитель-Занятие» предназначена для организации связи многие-ко-многим между таблицами «Учителя» и «Занятия», поскольку каждый учитель может руководить несколькими кружками, и в то же время одним кружком могут руководить несколько учителей.
Таблица 2.7 – Атрибуты таблицы «Ученик-Группа»
Поле | Тип данных | Описание |
ID_Zap | INT | Ключевое поле таблицы. Хранит уникальный идентификационный номер записи. |
ID_Gr | INTEGER | Числовое поле для связи с таблицей «Группы». Хранит номер группы. |
ID_Det | INTEGER | Числовое поле для связи с таблицей «Ученики». Хранит номер ученика. |
Таблица «Специализации» является справочной и хранит данные для быстрого добавления.
Таблица 2.8 – Атрибуты таблицы «Специализации»
Поле | Тип данных | Описание |
ID_Spec | INT | Ключевое поле таблицы. Хранит уникальный идентификационный номер записи. |
Spec | Text (20) | Название специализации. |