УДК 004.42
Информационные технологии
Ермолаев Константин Юрьевич, студент направления подготовки
информатики и вычислительной техники, Хакасский государственный университет имени Н.Ф. Катанова, г. Абакан, Россия
Голубничий Артем Александрович, научный руководитель, старший преподаватель кафедры ПОВТиАС, Хакасский государственный университет
имени Н.Ф. Катанова, г. Абакан, Россия
РАЗРАБОТКА БАЗЫ ДАННЫХ ДЛЯ СЕРВИСА ПОДГОТОВКИ К ЕГЭ
ПО ИНФОРМАТИКЕ И ИКТ
Аннотация: В этой статье рассматривается реализация базы данных для веб-сервиса подготовки учеников к ЕГЭ по информатике и ИКТ.
Ключевые слова: БД, ЕГЭ, информатика и ИКТ.
Annotation: This article discusses the implementation of a database for the web-service of preparing students for the United State Exam in computer science and ICT.
Keywords: DB, USE, computer science and ICT.
Введение
Единый государственный экзамен играет важную роль в системе образования, ведь для поступления в вузы ученикам необходимо набирать как можно большее количество баллов [4]. Подготовка к экзаменам у учеников занимает огромное количество времени и сил. При этом в сети Интернет существует множество решения и технологий для подготовки к процедуре проведения ЕГЭ по разным дисциплинам в том числе и по дисциплине «Информатика и ИКТ», при этом разные ресурсы обладают не всегда полным набором функций, а некоторые можно использовать исключительно как
сборники задач не всегда самого лучшего качества. По этой причине создание веб-сервиса для подготовки к ЕГЭ по информатике и ИКТ является весьма актуальной задачей.
Описание предметной области
ЕГЭ по информатике включает 27 задач, большинство из них в структурном плане состоят из следующих элементов: формулировка задачи; вопрос; ответ. Задачи с номерами 19, 20 и 21 имеют общую формулировку (задачу) с разными вопросами. Также некоторые задачи имеют разный формат ответа: число; строка, табличный ответ.
Сервис разрабатывается для целевой аудитории в лице учащихся школ и преподавателей. Также планируется ведение статистики по школам и формирование уникального индекса сложности задачи (по номеру задачи: 1 -27).
Описание сущностей
Под сущностью понимается, как правило, таблица в базе данных. Сущность БД - элемент базы данных, представляющий собой объект, который существует независимо от других, за которым хотел бы осуществлять наблюдение владелец базы данных. Каждая сущность обладает собственным именем и кратким описанием [1]. Сущность - абстрактное представление объектов со схожими характеристиками, которые возможно привести к единому классу. На рисунке 1 представлена БЯ диаграмма спроектированной базы данных.
!" roles jid
i!tname
Я schools j id nsl name
Я answerjypes
v id
nsc name
H answers | id sst answer о answer_type_id
■ users jid rolejd nsl firstname ™ surname nst patronymic
j email ™ password ™ telegram ™ class school jd
Я answerjask jid Щ answerjd Щ taskjd
Я task_user_rating 4 id
о userjd Щ taskjd ™ user_answer rating о answerjypejd
H taskformulation j id
ooc formulation
H variants
v id
v KIM
Htasks
lid
в ta skjo rm u I ati о n J d • й question i difficulty 1 tasknumber 1 max_value
H- task_variant i id Щ taskjd gvariantjd
■ filejype jid ™ name
Я taskjiles
. lid
. о taskjd path о file_typejd
Рисунок 1 - ER диаграмма базы данных
Ниже в документе будут рассмотрены только сущности, имеющие непосредственную важность для проекта, такие сущности как справочники и связующие таблицы [3] будут упомянуты в процессе описания основных сущностей.
Указанные типы хранения данных являются показательными и в реальности могут быть и будут реализованы иным образом.
Таблицы, описанные ниже, состоят из 4 колонок: название поля (название поля в базе данных); тип поля (тип поля в базе данных с учётом чисел без знака), ограничение (PRIMARY_KEY, FOREIGN_KEY, UNIQUE) [2]; описание (краткое описание назначения поля).
Целевой аудиторией сервиса являются учащиеся школ и преподаватели.
Для коммуникации с пользователями предусмотрен вариант ввода имени пользователя из Telegram, помимо адреса электронной почты (Таблица 1).
Таблица 1 - Users
Название поля Тип поля Ограничение Описание
id Int unsigned PRIMARY_KEY Уникальный идентификатор (первичный ключ)
role_id Tinyint unsigned FOREIGN_KEY Внешний ключ. Связь с таблицей Roles.
firstname Varchar(100) Имя пользователя.
surname Varchar(100) Фамилия пользователя.
patronymic Varchar(100) Отчество пользователя. Может отсутствовать.
email Varchar(100) UNIQUE Email пользователя. Должен быть уникален.
password Varchar(100) Пароль от учётной записи пользователя.
telegram Varchar(100) Уникальное прозвище пользователя в Telegram
class Varchar(100) Буква класса пользователя.
school_id Int unsigned FOREIGN_KEY Внешний ключ. Связь с таблицей Schools.
В целях реализации возможности статистических исследований по школам необходимо хранить информацию о школах (Таблица 2).
Таблица 2 - Schools (Справочник)
Название поля Тип поля Ограничение Описание
id Int unsigned PRIMARY_KEY Уникальный идентификатор (первичный ключ).
name Varchar(100) Название школы.
В сервисе планируются около 5 ролей. Основные роли: администратор,
преподаватель, ученик. Поэтому в качестве типа идентификатора в целях экономии памяти был взят тип ^пу^ (Таблица 3).
Таблица 3 - Roles (Справочник)
Название поля Тип поля Ограничение Описание
id Tinyint unsigned PRIMARY_KEY Уникальный идентификатор (первичный ключ).
name Varchar(100) Название роли.
Для хранения ответов пользователя была создана связующая таблица Task_user_rating (Таблица 4). В ней хранится информация об ответах пользователей на задачу, а также количество баллов, которые получил пользователь за ответ.
Таблица 4 - Task_user_rating (Связующая таблица - Pivot)
Название поля Тип поля Ограничение Описание
id Int unsigned PRIMARY_KEY Уникальный идентификатор (первичный ключ).
user_id Int unsigned FOREIGN_KEY Внешний ключ. Связь с таблицей Users.
task_id Int unsigned FOREIGN_KEY Внешний ключ. Связь с таблицей Tasks.
user_answer Varchar(100) Ответ, который ввёл пользователь.
answer_type_id Int unsigned FOREIGN_KEY Внешний ключ. Связь с таблицей Answer_types.
rating Double Рейтинг. Количество баллов, которые пользователь набрал.
Для хранения заданий были учтены особенности заданий ЕГЭ по информатике. Для каждого задания необходимо хранить его номер (от 1 до 27), формулировку задачи, номер варианта (КИМ), сложность задания и вопрос (Таблица 5).
Название поля Тип поля Ограничение Описание
id Int unsigned PRIMARY_KEY Уникальный идентификатор (первичный ключ).
task_formulation _id Int unsigned FOREIGN_KEY Внешний ключ. Связь с таблицей формулировок Tasks.
question Varchar(100) Вопрос, на который пользователю необходимо ответить.
task_variant_id Int unsigned FOREIGN_KEY Внешний ключ. Вариант
difficulty Smallint unsigned Сложность задачи.
task_number Tinyint unsigned Номер задачи (1-27)
max_value Tinyint unsigned Максимальное количество баллов.
Предполагается наличие как минимум двух типов ответов - строка и
таблица (Таблица 6).
Таблица 6 - Answer_types (Справочник)
Название поля Тип поля Ограничение Описание
id Int unsigned PRIMARY_KEY Уникальный идентификатор (первичный ключ).
name Varchar(100) Название типа ответа.
Ответы хранятся в основном в виде строки с разными типами (Answer_types). В случае ответа в виде таблицы, ответы хранятся в виде строки, состоящей из значений таблицы разделённых символом - разделителем (Таблица 7).
Таблица 7 - Answers
Название поля Тип поля Ограничение Описание
id Int unsigned PRIMARY_KEY Уникальный идентификатор (первичный ключ).
answer Varchar(100) Название школы.
answer_type_id Int unsigned FOREIGN_KEY Внешний ключ. Связь с таблицей Answer_types
Поскольку задания с номерами 19, 20 и 21 структурно имеют одну формулировку с разными вопросами - это, фактически, всё ещё одно и то же задание. Отсюда следует связь вида «Многие ко Многим» таблицы заданий (Таблица 5) с таблицей ответов (Таблица 7) через таблицу 8.
Таблица 8 - Answer_task (Связующая таблица)
Название поля Тип поля Ограничение Описание
id Int unsigned PRIMARY_KEY Уникальный идентификатор (первичный ключ).
answer_id Int unsigned FOREIGN_KEY Внешний ключ. Связь с таблицей Answers.
task_id Int unsigned FOREIGN_KEY Внешний ключ. Связь с таблицей Tasks.
Уже известно, что задания с номерами 19, 20 и 21 имеют одну формулировку. Следовательно, для их хранения, формулировки заданий были выведены в отдельную таблицу (Таблица 9).
Таблица 9 - Task_formulation
Название поля Тип поля Ограничение Описание
id Int unsigned PRIMARY_KEY Уникальный идентификатор (первичный ключ).
formulation Varchar(100) Формулировка задачи.
Таблица вариантов (Таблица 10) хранит номера всех вариантов (номера КИМ и номера вариантов, созданных автоматически). При добавлении нового задания, необязательно чтобы оно было добавлено к варианту (к номеру КИМ).
Таблица 10 - Variants
Название поля Тип поля Ограничение Описание
id Int unsigned PRIMARY_KEY Уникальный идентификатор (первичный ключ).
KIM Varchar(100) Номер КИМ.
Вид связи между таблицами вариантов (Таблица 10) и заданий (Таблица 5) - «Многие ко Многим» (Таблица 11), поскольку предусмотрена возможность использования одного задания сразу в нескольких вариантах (Например, для функции автоматического создания нового уникального варианта).
Таблица 11 - Task_variant (Связующая таблица)
Название поля Тип поля Ограничение Описание
id Int unsigned PRIMARY_KEY Уникальный идентификатор (первичный ключ).
task_id Int unsigned FOREIGN_KEY Внешний ключ. Связь с таблицей Tasks.
variant_id Int unsigned FOREIGN_KEY Внешний ключ. Связь с таблицей Variants.
Также для каждого задания необходимо хранить файлы (задание в формате текстового документа, изображения, графы).
Таблица 12 - Task_files
Название поля Тип поля Ограничение Описание
id Int unsigned PRIMARY_KEY Уникальный идентификатор (первичный ключ).
task_id Int unsigned FOREIGN_KEY Номер КИМ.
path Varchar(100) Путь к файлу
file_type_id Int unsigned FOREIGN_KEY Внешний ключ. Связь с таблицей File_types.
Поскольку в таблице файлов заданий (Таблица 12) могут хранится разные
типы файлов, для разного назначения, то сами типы были выведены в отдельную таблицу (Таблица 13).
Таблица 13 - File_types
Название поля Тип поля Ограничение Описание
id Int unsigned PRIMARY_KEY Уникальный идентификатор (первичный ключ).
name Varchar(100) Тип файла.
Заключение
Представленная схема базы данных в полной мере покрывает все задачи, которые необходимо реализовать в веб-сервисе подготовки к единому государственному экзамену по информатике и ИКТ.
Библиографический список:
1. Введение в проектирование баз данных MSUniversity. https://msuniversity.ru/d/2/l/2 (Дата обращения: 10.06.2023).
2. Учебник по языку SQL на примере диалекта MS SQL Server. https://habr.com/ru/articles/255361/ (Дата обращения: 15.06.2023).
3. Учебно-методическое пособие «Теоретические основы баз данных». https : //www. ects. ru/images/1613/Image/metodichka_teoreticheskie_o snovy_baz_dan nyx.pdf (Дата обращения: 15.06.2023).
4. Приказ Минпросвещения России, Рособрнадзора № 190/1512 от 07.11.2018 г. «Об утверждении Порядка проведения государственной итоговой аттестации по образовательным программам среднего общего образования». https://doc.fipi.ru/ege/normativno-pravovye-dokumenty/poryadok_gia-11_ot_07.11.2018_no_190-1512.pdf (Дата обращения: 11.06.2023).