УДК 004.4(06) Технологии разработки программных систем Д.В. КРУТЕНЁВ Научный руководитель – Е.А. ПЕТУХОВА Московский инженерно-физический институт (государственный университет) МОДЕЛЬ ОРГАНИЗАЦИИ ХРАНЕНИЯ ДАННЫХ ДЛЯ УЧЕБНОГО РАСПИСАНИЯ ВУЗА В статье обсуждается возможная модель организации хранения данных, на основе которой можно было бы реализовать приложение для портала кафедры 22 факультета "Кибернетика", обеспечивающее составление учебного расписания. В последние несколько лет работа портала кафедры 22 факультета "Кибернетика" осуществляется при помощи инструмента em.Portal, созданного фирмой "ЭскейпМ" на основе СУБД Cache фирмы InterSystems. За это время стало очевидно, что существующих на данный момент возможностей em.Portal не достаточно для обеспечения полноценной работы портала кафедры. В первую очередь, это связано со спецификой информации, с которой необходимо работать при осуществлении интернет-представительства Вуза или его отдельно взятой части. Поэтому необходимо помимо уже существующих приложений, отвечающих за выполнение общих функций, реализовать и интегрировать в портал приложения, которые бы позволили управлять содержимым, характерным для портала учебного заведения. Одна из целей существования такого портала – всестороннее освещение учебного процесса, при организации которого одним из наиболее важных этапов является составление расписания занятий. Поэтому очевидно, что портал вуза должен обеспечивать возможность полноценной работы с таким объектом, как учебное расписание. Для этого крайне необходимо правильно организовать хранение необходимых данных. Основными задачами при построении соответствующей модели представления информации являются обеспечение возможности описания объектов, связанных с учебным расписанием (например, предметов, преподавателей, аудиторий, в которых будут проводиться занятия, и времени их проведения и т.д.) и объединения их в единое целое. Для хранения информации предлагается использовать пять различных типов объектов, представленных в модели отдельными иерархическими структурами, которые описывают время (год, семестр, неделя и т.д.), пространство (корпус, этаж, аудитория и т.д.), преподавательский состав, студенческий состав (курс, группа и т.д.) и изучаемые дисциплины. Эти типы можно представить в виде деревьев, в которых на каждом более глубоком уровне происходит более детальное описание. Для осуществления связи между отдельными объектами разных типов необходимо ввести связующее звено – новый тип, представляющий собой двухуровневое дерево. В корне должен находиться узел, содержащий информацию о временном отрезке, для которого составляется расписание (например, год или семестр), а каждый из узлов второго уровня связывается с одним из узлов нижнего уровня деревьев, описывающих предыдущие пять типов объектов, т.е. имеет пять связей с объектами различных типов, хранящих информацию описательного характера. Таким образом, если мы хотим связать вместе преподавателя, предмет, аудиторию, время проведения занятий и студентов, то мы создаём новый узел второго уровня в дереве, описывающем связующий тип, и соединяем с ним вышеперечисленные узлы из нижних уровней соответствующих деревьев. Теперь, проанализировав информацию, хранящуюся в новом узле связующего дерева, мы сможем получить что-то вроде записи в расписании. С целью упрощения модели, можно выносить некоторые связи между узлами связующего дерева и узлами первых пяти деревьев на более высокие уровни. Это возможно, если все узлы-потомки какого-то узлапредка связаны с одним и тем же узлом связующего дерева. В такой ситуации логично перенести эту связь на узел-предок. Т.к. нет необходимости указывать каждого студента, который должен присутствовать на занятии, если можно сразу указать всю группу или подгруппу. Также необходимо учитывать и то, что с течением времени некоторая информация (например, состав групп) может регулярно меняться. Поэтому в каждом дереве можно выделить подграф, который хранит такую информацию, связать узлы его верхнего уровня с одним узлом, содержащим информацию о времени, определить связи (многие ко многим) с соответствующими узлами из старого дерева и получить новый тип (новое дерево), объекты которого регулярно меняются. Например, нижний уровень дерева, отображающего студенческий состав, можно вынести в отдельный тип, представляющий собой список всех студентов, датируемый определённым годом (или семестром). А каждый узел нового нижнего уровня типа, отображающего студенческий состав, связать с некоторым множеством студентов, например, определив так состав групп на текущий год. Таким образом можно разделить типы на те, которые можно оставлять неизменными, изредка добавляя к ним новые нижние уровни и узлы, и те, которые будут регулярно обновляться. Такая модель хранения данных будет достаточно общей для того, чтобы хранить с её помощью информацию об учебном расписании с учётом специфики конкретного учебного заведения, и будет обладать некоторыми возможностями по изменению своей структуры уже в процессе её использования без потери целостности данных. Таким образом, она может послужить основой для создания приложения, обеспечивающего составление учебного расписания и отображение информации о нём, что заметно расширит функциональные возможности портала кафедры. ________________________________________________________________________ ISBN 5-7262-0633-9. НАУЧНАЯ СЕССИЯ МИФИ-2006. Том 15 1