УДК 004.78:378.1
И.Г. Проценко, Г.С. Емельянов
Камчатский государственный технический университет, Петропавловск-Камчатский, 683003 e-mail: ip1954@list.ru
РАЗРАБОТКА БАЗЫ ДАННЫХ ДЛЯ АИС СОСТАВЛЕНИЯ РАСПИСАНИЯ ЗАНЯТИЙ В УЧЕБНЫХ ЗАВЕДЕНИЯХ РЫБНОЙ ОТРАСЛИ
В статье предлагается модель данных для автоматизированной информационной системы составления расписания в учебных заведениях рыбной отрасли. Данная модель может быть использована на крупных судах и плавбазах, на промысловых участках и рыбообрабатывающих заводах и т. д. Семантическая модель положена в основу реализации физической модели в СУБД MySQL. Вопросы аномалий решаются в результате нормализации таблиц БД и частично программными средствами изменения содержания таблиц.
Ключевые слова: расписание занятий, учебная нагрузка, автоматизированная информационная система, модель данных, СУБД.
I.G. Protsenko, G.S. Emelyanov
Kamchatka State Technical University, Petropavlovsk-Kamchatski/, 683003 e-mail: ip1954@list.ru
DATABASE DEVELOPMENT FOR AUTOMATED INFORMATION SYSTEM FOR SCHEDULING LESSONS IN EDUCATIONAL INSTITUTIONS OF THE FISHING INDUSTRY
The article proposes a data model for an automated information system for scheduling in educational institutions in the fishing industry. This model can be used on large vessels and mother ships, on fishing grounds and fish processing plants, etc. The semantic model is the basis for the implementation of the physical model in the MySQL DBMS. Anomaly issues are resolved as a result of the normalization of database tables and, in part, by software tools for changing the contents of tables.
Key words: class schedule, study load, automated information system, data model, DBMS.
Ярким примером сложности обработки информации является составление расписания в ручном режиме. В рыбной отрасли составление расписания необходимо не только в вузах и колледжах. Эта задача часто встречается в рыбной промышленности при составлении расписания вахт и подвахт, особенно на крупных судах и плавбазах, расписания работы бригад на промысловых участках, составлении графика приема рыбы с прорезей на рыбообрабатывающие суда и заводы и т. д.
Сложность решения этой задачи в вузах связана с учетом большого числа групп, ограниченного аудиторного фонда и минимально необходимого учебного персонала, что неизбежно приводит к возникновению ошибок, вызванных человеческим фактором. К таким ошибкам можно отнести совмещение занятий разных групп в одном учебном помещении или у одного преподавателя, в одно и то же время. Не меньшую проблему вызывает и решение задачи ограничений аудиторного фонда путем распределения учебных занятий групп по разным корпусам, территориально расположенных на значительном удалении друг от друга. Результатом этого становятся проблемы перемещения как студентов, так и преподавателей из одного здания в другое в короткие перерывы.
Составление расписания учебных занятий - достаточно трудоемкая работа, в том числе с учетом необходимости изменения расписания по объективным обстоятельствам. Изменения могут быть связаны с отсутствием возможности у преподавателя проводить занятия (изменение
графика отпуска, болезнь, увольнение), ремонтом аудиторий, уточнением учебного плана, изменением сроков морских практик, редко погодными условиями и проч. Составление расписания опирается на достаточно широкий перечень документов (учебные планы, нагрузка, сроки сессии, состояние аудиторного фонда, график отпусков и т. д.), поддержание которых в актуальном качественном состоянии является отдельной задачей. Доступ к этим документам и расписанию в соответствии с правами доступа должен быть обеспечен широкому кругу лиц, что и предполагается сделать при создании автоматизированной информационной системы составления расписания учебных занятий (АИС-Р).
Главной составляющей АИС-Р является база данных, необходимая для хранения информации в виде, обеспечивающем эффективную обработку, хранение и выдачу пользователям информации о расписании учебных занятий и другую, относящуюся к этой теме.
Процесс создания базы данных АИС-Р (далее по тексту статьи будем использовать аббревиатуру - БД) состоит из нескольких этапов. На начальном этапе проектирования изучается предметная область, примерно представляется весь процесс дальнейшего использования БД и выделяются предполагаемые сущности и связь между ними. Вследствие чего разработчик получает эскиз будущей БД, который в дальнейшем будет выступать в качестве основы для всех корректировок. Далее, в процессе более детального изучения, дополняется эскиз, в котором выделяются атрибуты для каждой сущности, и вся информация для наглядности помещается в таблицы.
Затем наступает этап проектирования, на котором получившийся макет БД подвергается нормализации. Процесс нормализации в свою очередь также подразделяется на несколько этапов. В зависимости от целей проекта, а также требований заказчика или стандартов необходимая нормальная форма может различаться. Процесс нормализации ставит своей целью устранение избыточности данных и заключается в приведении, как правило, к третьей нормальной форме (3НФ) [1-4]. Поставим задачу создать БД, удовлетворяющую 3НФ, а затем проанализируем появление возможных аномалий [2 и 3].
Семантическая модель
Информационная модель объекта описывает существенные параметры и переменные объекта и связи между ними в рамках определенной задачи. Модель позволяет путем подачи на ее вход вариаций входных величин моделировать возможные состояния объекта.
Рассмотрим это на примере проектирования АИС-Р.
Считаем, что сущность - это реальный или представляемый тип объекта, который соответствует предметной области формирования расписания учебных занятий, информацию о котором должна содержать база данных. Сущности необходимы для того, чтобы представить объекты, участвующие в деятельности АИС-Р.
Выделяем следующие сущности и их атрибуты (ключевой атрибут выделен жирным шрифтом):
• Расписание: код, дата, верх/низ, номер пары, аудитория, занятие.
• Нагрузка: код, дисциплина, группа, тип, семестр, часы.
• Занятие: код, дисциплина, тип, группа, преподаватель, аудитория.
• Индивидуальный план: код, преподаватель, нагрузка.
• Аудитория: код, № аудитории, тип, вместительность, кафедра.
Опишем данные сущности:
«Расписание» - сущность, в которой хранится информация о расписании.
• «код» - ключевое поле, обозначает индивидуальный номер записи;
• «дата» - дата, с которой действует расписание;
• «занятие» - данные из одноименной сущности;
• «тип недели» - занятие стоит по расписанию в верхней или в нижней неделе;
• «номер пары» - номер пары в эту дату;
• «аудитория» - номер аудитории, в которой проводится занятие.
«Занятие» - сущность, в которой хранится информация о занятиях из расписания.
• «код» - ключевое поле, обозначает индивидуальный номер записи;
• «дисциплина» - наименование дисциплины;
• «вид занятия» - лекционное занятие, лабораторное занятие или практическое занятие;
• «группа» - группа, у которой это занятие;
• «преподаватель» - преподаватель, ведущий это занятие.
«Нагрузка» - сущность, в которой хранится информация о нагрузке.
• «дисциплина» - наименование дисциплины;
• «группа» - группа, у которой эта дисциплина в нагрузке;
• «семестр» - семестр группы, в который должна быть пройдена дисциплина;
• «виды занятий» - виды занятий по плану;
• «часы» - часы дисциплины, распределенные по ее видам.
«Аудитория» - сущность, в которой хранится информация об аудиториях.
• «код» - ключевое поле, обозначает индивидуальный номер записи;
• «№ аудитории» - номер аудитории;
• «тип» - тип занятий, для которых подходит аудитория;
• «вместительность» - вместительность аудитории;
• «кафедра» - кафедра, закрепленная за дисциплиной.
«Индивидуальный план» - сущность, в которой хранится информация об индивидуальном плане.
• «код» - ключевое поле, обозначает индивидуальный номер записи;
• «нагрузка» - распределенная нагрузка на преподавателя;
• «преподаватель» - преподаватель, закрепленный за дисциплиной.
На основе выделенных сущностей была построена ER-модель [2, 3] в нотации Питера Чена (рис. 1 и 2). Прямоугольники обозначают представленные выше сущности, в виде ромбов отображены отношения, связывающие сущности, они соединены между собой линиями с указанием разновидностей связей. Овалами отмечены атрибуты сущностей, которые соединены с соответствующими сущностями линиями.
В соответствии с ER-диаграммой процессы в предметной области можно описать следующим образом: у преподавателя есть индивидуальный план, в нем нагрузка, которая реализуется в расписании, включающем в себя занятие (за которым закрепляется аудитория), которое проводит преподаватель.
Рис. 1. ER модель "Entity"
Рис. 2. ER модель "Relationship"
Нормализация
Первая нормальная форма (1НФ) требует, чтобы каждое поле таблицы БД было неделимым и не содержало повторяющихся групп.
Неделимость означает, что значение, записанное в поле, должно быть объективно целым, т. е. не должно делиться на несколько значений. Например, имея поле «преподаватель», разработчик подразумевает, что оно включает в себя ФИО, должность, кафедру, но это противоречит свойству неделимости, так как части, из которых состоит поле, можно выделить в отдельные поля.
Чтобы избежать повторения групп в БД, необходимо создать для них отдельную таблицу. То же касается и кафедр, факультетов и т. д.
Вторая нормальная форма (2НФ) требует, чтобы все поля таблицы зависели от первичного ключа, т. е. чтобы первичный ключ однозначно определял запись и не был избыточен. В случае если первичный ключ состоит из нескольких полей таблицы, те поля, которые зависят только от части первичного ключа, должны быть выделены в составе отдельных таблиц.
Третья нормальная форма (ЗНФ) требует, чтобы значение любого поля таблицы, не входящего в первичный ключ, не зависело от значения другого поля, не входящего в первичный ключ.
Проектируемая БД является реляционной, процесс нормализации для такой базы данных представляет преобразования отношений с целью оптимизации логической структуры отношений для устранения нежелательных свойств. Процесс проходит без потери информации исходного отношения, в том числе и о зависимостях, имеющих место между его атрибутами [2 и 3].
Для приведения отношения к первой нормальной форме необходимо:
1. Определить группы повторяющихся полей.
2. Вынести группы повторяющихся полей в отдельные таблицы.
3. Назначить первичные ключи в новых таблицах.
Для приведения отношения ко второй нормальной форме необходимо:
1. Вынести все частично-зависимые поля в отдельную таблицу.
2. Определить ключевые поля.
3. Установить отношения между таблицами.
Для приведения отношения к третьей нормальной форме необходимо:
1. Проанализировать существующие функциональные зависимости отношения на наличие транзитивности.
2. В случае наличия транзитивности нужно изменить отношение, чтобы неключевые поля не зависели друг от друга.
В результате применения алгоритмов нормализации была получена третья нормальная форма отношений:
1. РАСПИСАНИЕ (ДАТА, ДЕНЬ НЕДЕЛИ, НОМЕР ПАРЫ, ВИД ЗАНЯТИЯ, № АУДИТОРИИ, ГО ГРУППЫ, ГО УЧИТЕЛЯ, ГО ПРЕДМЕТА, ТИП ЗАНЯТИЯ)
2. ПРЕПОДАВАТЕЛЬ (ГО ПРЕПОДАВАТЕЛЯ, ФИО, ГО КАФЕДРЫ, ДОЛЖНОСТЬ, УЧЁНОЕ ЗВАНИЕ, УЧЁНАЯ СТЕПЕНЬ)
3. ИНДИВИДУАЛЬНЫЙ ПЛАН (ГО ГРУППЫ, ГО ПРЕДМЕТА, СЕМЕСТР, ЧАСЫ ЛЕКЦИЙ, ЧАСЫ ПРАКТИЧЕСКИХ РАБОТ, ЧАСЫ ЛАБОРАТОРНЫХ РАБОТ, ЧАСЫ САМОСТОЯТЕЛЬНЫХ РАБОТ, ЧАСЫ КОНТРОЛЯ, НАЛИЧИЕ КУРСОВЫХ РАБОТ, ФОРМА КОНТРОЛЯ, ГО ПРЕПОДАВАТЕЛЯ, СТАВКА, № ВЕДОМОСТИ)
4. ПРЕДМЕТЫ (ГО ПРЕДМЕТА, НАЗВАНИЕ, АББРЕВИАТУРА)
5. ГРУППА (ГО ГРУППЫ, УРОВЕНЬ ОБРАЗОВАНИЯ, ФОРМА ОБУЧЕНИЯ, ГО КАФЕДРЫ, ШИФР, СПЕЦИАЛИЗАЦИЯ, ПРОФИЛЬ)
6. КАФЕДРА (ГО КАФЕДРЫ, НАЗВАНИЕ, ФАКУЛЬТЕТ)
Даталогическая модель
Даталогическая модель отображает логические связи между элементами, независимо от их содержания и среды хранения [4].
Для построения даталогической модели были использованы следующие принципы:
1. Таблица состоит из двух столбцов: ключевое поле, название поля и тип поля.
2. Для обозначения первичного ключа используется аббревиатура РК.
3. Для обозначения внешнего ключа используется аббревиатура БК.
4. У каждой таблицы есть название, записанное над таблицей.
5. Строке с названием поля соответствует столбец с типом данных.
6. Для обозначения связей Один-к-Одному, Один-ко-Многим и Многий-ко-Многим используются обозначения: 1-1, 1-N и N-N.
7. Связь между таблицами указана по полям, участвующим в этой связи.
На основе концептуальной модели была построена даталогическая модель БД (рис. 3), которая позволит реализовать основные функции системы:
1) регистрация и авторизация в системе;
2) загрузка в систему данных заявителя;
3) беспрепятственное взаимодействие сотрудников;
4) отслеживание и соблюдение сроков обработки данных;
5) контроль работы специалистов;
6) получение решений;
7) распределение всей возможной нагрузки;
8) экспорт электронной версии документов в xlsx;
9) исключение ошибок в процессе работы с системой.
Таблицы БД содержат поля, предназначенные в том числе для решения задач формирования учебных планов, нагрузки преподавателей и др. Ниже дана расшифровка только тех полей, которые используются непосредственно в задаче формирования расписания занятий.
Таблица «chairs» предназначена для хранения информации о кафедрах. Содержит следующие поля:
• id_chair - код кафедры,
• chair - аббревиатура кафедры,
• chair_full - полное название кафедры,
• faculty - аббревиатура факультета,
• faculty_full - полное название факультета.
Таблица «grups» предназначена для хранения информации о группах. Содержит следующие поля:
• id_grup - код группы,
• grup - название группы,
• level - уровень образования,
• ofo - форма обучения,
• id_chair - код кафедры,
• cypher - шифр группы,
• specialization - специализация группы,
• profile - профиль группы.
Таблица «subject» предназначена для хранения информации об индивидуальном плане. Содержит следующие поля:
• id_grup - код группы
• id_subject - код учебной дисциплины,
• semestr - номер семестра,
• lections - количество часов на лекции,
• labworks - количество часов на лабораторные работы,
• practics - количество часов на практики,
• indepworks - количество часов на самостоятельные работы,
• control - количество часов на контрольные работы,
• cw - курсовая работа,
• cp - курсовой проект,
• typefos - форма контроля,
• id_teacher - код преподавателя,
• s_teacher - признак распределения нагрузки преподавателя (не распределено, в нагрузке, в потоке),
• grup_to - группа потока,
• id_teacherA - код ассистента,
• s_teacherA - признак распределения нагрузки ассистента (не распределено, в нагрузке, в потоке),
• grup_toA - группа потока ассистента,
• d - дата сдачи экзамена,
• N - номер ведомости,
• ^ - подпись преподавателя (код),
• dek - подпись декана (код).
Рис. 3. Даталогическая модель
Таблица «subject_n» предназначена для хранения информации об учебных дисциплинах. Содержит следующие поля:
• id_subject - код учебной дисциплины,
• subject - название учебной дисциплины,
• abb - аббревиатура учебной дисциплины,
• id_teacher - код преподавателя,
• id_chair - код кафедры.
Таблица «teachers» предназначена для хранения информации о преподавателях. Содержит следующие поля:
• id_teacher - код преподавателя,
• teacher - ФИО преподавателя,
• id_chair - код кафедры.
Таблица «rooms» предназначена для хранения информации об аудиториях. Содержит следующие поля:
• id_room - код аудитории,
• room - номер аудитории,
• vol - вместительность аудитории,
• id_chair - код кафедры, за которой закреплена аудитория,
• id_teacher - код преподавателя, закрепленного за аудиторией,
• type_room - тип аудитории.
Таблица «tt» предназначена для хранения информации о расписании учебных занятий. Содержит следующие поля:
• xD - дата проведения занятия,
• day - день недели,
• para - номер пары,
• up - признак частоты проведения занятия (еженедельно, только по нечетным неделям, только по четным неделям),
• id_room - код аудитории,
• id_grup - код группы,
• id_subject - код учебной дисциплины,
• id_teacher - код преподавателя,
• lab - вид занятия (лекция, лабораторная, практика),
• tf - признак фактического проведения пары.
В БД АИС-Р предусмотрено 4 уровня допуска:
1. Студент - способен только просматривать данные расписания, получать выходную форму расписания его группы в Excel-формате
2. Преподаватель - имеет возможность формировать предложения по своему расписанию.
3. Заведующий кафедрой - имеет возможность формировать предложения по расписанию кафедры.
4. Сотрудник учебно-методического управления (УМУ) - имеет возможность формировать данные по всем группам и преподавателям, корректировать предложения преподавателей, после чего уже зав. кафедрой и преподаватели вносить изменения не могут.
В результате выполненных работ была разработана база данных для АИС-Р. Разработанная БД позволяет сократить временные затраты при использовании АИС-Р, требуемые для составления расписания занятий, а также снижает вероятность ошибки при его формировании.
Литература
1. Базы данных: теория нормализации: Методические указания / Сост. Н.А. Кривошеева, М.Г. Таспаева; Оренбургский гос. ун-т. - Оренбург: ОГУ, 2021. - 48 с
2. Карпова И.П. Базы данных: Учебное пособие / Московский государственный институт электроники и математики (Технический университет). - М., 2009. - 131 с
3. Кузнецов С.Д. Основы баз данных: Учебное пособие. - 2-е изд., испр. - М.: Интернет-университет информационных технологий; БИНОМ. Лабораторная знаний, 2007. - 484 с.
4. Верхолат А.М., Суслов В.П. Проектирование структуры базы данных: Пособие по курсовому проектированию. Изд. 2-е, испр. и доп. / Балт. гос. техн. ун-т. - СПб., 2018. - 65 с.