Материал: Информационная система составления расписания

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Показатели составления расписания:

·  Мнения преподавателей, связанные с удобным для них временем.

·        Предоставление аудиторий преподавателям и закрепление их за ними.

·        Учет мнения преподавателей по поводу желательных аудиторий.

·        Необходимость осуществления замены преподавателей.

Ограничения для составления расписания:

·  Нельзя проводить занятия у двух или более групп в одной аудитории и в одно время.

·        Нельзя ставить два или более предмета у одной группы.

·        Один преподаватель не может вести предметы у двух групп одновременно.

·        Количество уроков в день у преподавателя не должно превышать 8.

·        Количество уроков в день у группы не должно превышать 8.

·        Время одного урока не должно превышать 80 минут.

Необходимо определить математические множества, с помощью которых представить математическую модель составления расписания.

Множества:

 - преподаватель (первый индекс - предмет, который ведет преподаватель (если предметов несколько, то продлить список через запятую), последний индекс - уникальный номер преподавателя, хранящийся в базе данных образовательного учреждения).

 - группа (первый индекс - специальность этой группы, второй индекс - год выпуска, последний индекс - уникальный номер группы, хранящийся в базе данных образовательного учреждения).

 - специальность (индекс - уникальный номер специальности, хранящийся в базе данных образовательного учреждения).

 - предмет (индекс - уникальный номер предмета, хранящийся в базе данных образовательного учреждения).

 - время занятия на неделе (первый индекс - индекс дня недели, второй индекс - время пары)

 - день недели (индекс - уникальный номер дня недели: понедельник, вторник, среда, четверг, пятница, суббота, воскресенье).

 - время пары (первый индекс - часы начала урока (от 0 до 23), второй индекс - минуты начала урока (от 0 до 59), третий индекс - часы конца урока (от 0 до 23), четвертый индекс - минуты конца урока (от 0 до 59)).

 - аудитория (первый индекс - корпус, второй индекс - номер кабинета)

 - связь (первый индекс - уникальный номер группы, второй индекс - уникальный номер преподавателя, третий индекс - уникальный номер аудитории, четвертый индекс - уникальный номер времени занятий).

Необходимо решить несколько приоритетных задач:

1)      Соблюдение ограничений

)        Временная оптимизация занятий у групп

)        Оптимизация времени, затрачиваемое преподавателями

)        Минимизация «окон» у групп

)        Минимизация «окон» у преподавателей

Соблюдение ограничений

 - выбранный индекс

n - все индексы, кроме выбранного

r - любой индекс

·        Нельзя проводить занятия у двух или более групп в одной аудитории и в одно время


·        Нельзя проводить занятия у группы в разных аудиториях в одно время


·        Нельзя ставить два или более преподавателя у одной группы одновременно.


·        Один преподаватель не может вести предметы у двух групп одновременно.


·        Количество уроков в день у преподавателя не должно превышать 8.

n - количество возможных пар в день

a - индекс выбранного преподавателя

r - любой индекс

·       
Количество уроков в день у группы не должно превышать 8.

n - количество возможных пар в день

a - индекс выбранной группы

r - любой индекс


·        Время одного урока не должно превышать 80 минут.

 - индекс часов начала урока

b - индекс минут начала урока

c - индекс часов конца урока

d - индекс минут конца урока


В данном случае функцией минимизации является функция . Необходимо подсчитать количество связей для определенных m, который соответствует всем , где с - некое постоянное значение.

Выводы

Мы определились с задачей нашей курсовой работы, с программным обеспечением. Эти три момента сильно взаимосвязаны, т.к. в зависимости от базы данных существуют различные пути реализации, т.е. разные программы.

Глава 3. Программная реализация

.1 Физическая реализация БД

Для реализации базы данных, отражающую сессионную успеваемость студентов, необходимо создать 13 сущностей и три из которых - перевязочные таблицы.

Данная база данных находится в третьей нормальной форме и для этого существует ряд обоснований.

)        Все слабые и сильные сущности представлены в виде реляционных таблиц: каждая запись представлена в виде неповторимых строк таблицы с описанными полями-столбцами. По отношению к каждой из таблиц можно применить движение вставки, удаления, редактирования записи. Все атрибуты во всех таблицах атамарны, поэтому база данных находится в первой нормальной форме.

)        В виду употребления суррогатных ключей - все неключевые атрибуты находятся в полной функциональной зависимости от ID, для каждого отношения мы указали АК, чья полная функциональная зависимость очевидна, поэтому отношения находятся во второй нормальной форме.

)        Сущность Type_teacher не зависит от других сущностей. Сущность Teacher не зависит от других сущностей, кроме сущности Type_teacher. Сущность Group не зависит от других сущностей, кроме Type_education, Specialty. Type_education - сущность, которая не зависит от других сущностей. Сущность Semester не зависит от других сущностей. Также сущность Specialty является независимой. Number_lesson - независимая сущность. Lesson - сущность, которая зависит только от Number_lesson. Сущность Cabinet - независимая. Subject - независимая сущность. Teacher_Cabinet - перекрестная таблица, которая зависит от сущностей: Teacher, Cabinet. Teacher_Subject - перекрестная таблица, которая зависит от сущностей: Teacher, Subject. Connect - перекрестная таблица, которая зависит от сущностей: Lesson, Teacher_Subject, Cabinet, Semester, Group. Во всех отношениях отсутствуют транзитивные связи, поэтому данная база данных находится в третьей нормальной форме.

Связь между сущностями реализована таким образом, как показано на диаграмме (рис.5). Как видно из диаграммы в базе данных используются только идентифицирующие связи один ко многим.

Рис. 5. «Модель базы данных «Raspisanie»

Как видно из схемы, настройка целостности базы данных была произведена - каждый кортеж имеет первичный ключ и связываемые поля из главных таблиц являются первичными ключами, кроме того связываемые поля имеют одинаковый тип данных.

Произведена синхронизация первичного и внешнего ключей при удалении, добавлении, что позволяет обеспечить точность данных.

.2 Описание исходных данных

Рассмотрим каждую таблицу базы данных в отдельности.

1. Сущность “Type_teacher”.

В КАТ существует несколько типов преподавателей. От типа преподавателя зависит нагрузка, кабинеты, в которых проходят занятия и т.д. В КАТ на данный момент существует 4 типа преподавателей: администрация, обычные преподаватели, внутренние преподаватели и внешние. Поэтому в базе данных необходимо создать сущность “Type_teacher”, чтобы иметь возможность отслеживания типы преподавателей. (Прил.1)

Свойства:

·  Int ID_Type_teacher(PK) - первичный ключ таблицы “Type_teacher”, идентификатор типа преподавателя.

·        Varchar(50) Name_teacher - название типа преподавателя.

2. Сущность “Teacher”.

В КАТ, как и в любом университете или школе, важной составляющей являются преподаватели. Поэтому необходимо создать сущность “Teacher”, чтобы иметь возможность отслеживания преподавателей определенных предметов. (Прил.2)

Свойства:

·  Int ID_Teacher(PK) - первичный ключ таблицы “Teacher”, идентификатор преподавателя.

·        Int ID_type_teacher (FK)-внешний ключ, с помощью данного поля происходит связь с таблицей Type_teacher (связь: не идентифицирующая 1 ко многим).

·        Varchar(50) Surname - фамилия преподавателя.

·        Varchar(50) Name - имя преподавателя.

·        Varchar(50) Second_Name - отчество преподавателя.

3. Сущность “Group”.

Так же помимо преподавателей существуют группы, которые помогают упростить процесс обучения, разделяя всех студентов на части. (Прил.3)

Свойства:

·  Int ID_Grup(PK) - первичный ключ таблицы “Group”, идентификатор группы.

·        TextGrup_Name - свойство, в котором описывается номер группы.

·  IntID_Type_education - (FK) - внешний ключ, с помощью данного поля происходит связь с таблицей Type_education (связь: не идентифицирующая 1 ко многим).

·        IntID_Specialty - (FK) - внешний ключ, с помощью данного поля происходит связь с таблицей Specialty (связь: не идентифицирующая 1 ко многим).

4. Сущность “Specialty”.

Все группы объединяются в специальности, с помощью которых можно делать разделения по предметам и преподавателям. Поэтому необходимо создать сущность специальность. (Прил.4)

Свойства:

·  Int ID_code_specialty (PK) - первичный ключ таблицы “Specialty”, идентификатор специальности.

·        TextName_specialty- свойство в котором описывается название специальности.

5. Сущность “Type_education”.

Часто бывает, что какое-то учебное заведение подразделяется на несколько частей, например: КАТ делится на две части: техникум и лицей. Также некоторые школы имеют четкое разделение: подготовительная группа, начальная школа, среднее звено, старшие классы. Поэтому необходимо создать сущность «Type_education». (Прил.5)

Свойства:

·  Int ID_type_education (PK) - первичный ключ таблицы “Type_education”, идентификатор типа учебного заведения.

·        TextName_type_education - поле, описывающее название типа учебного заведения.

6. Сущность “Semester”.

Данная сущность хранит информацию о семестре, на который составляется расписание. (Прил.6)

Свойства:

·  Int ID_Semester (PK)-первичный ключ таблицы “Semester”, идентификатор тренировки.

·        IntNumber_semester - поле, описывающее номер семестра.

7. Сущность “Number_lesson”.

Данная сущность содержит информацию о времени проведении пар в разных корпусах на день. (Прил.7)

Свойства:

·  Int ID_Number_lesson (PK) - первичный ключ таблицы “Number_lesson”, идентификатор номера урока.

·        TextTime - поле, описывающее время начала и время окончания пары.

·        IntCorpus - поле, описывающее корпус, т.к. в разных корпусах время пар разное.

·        Varchar(50) Name - поле, описывающее название пары.

8. Сущность “Lesson”.

Данная сущность содержит информацию о времени занятий на каждый день недели. (Прил.8)

Свойства:

·  IntID_lesson (PK) - первичный ключ таблицы “Lesson”, идентификатор времени и даты занятия

·        Int ID_Number_lesson(FK) - внешний ключ, указывает на id времени занятия, связывает данную сущность с сущностью “Number_lesson” (не идентифицирующая связь: 1 ко многим).

·        Varchar(50) Day_week - поле, описывающее день недели, т.к. занятия зависят не только от времени занятия, но и от дня недели

9. Сущность “Cabinet”.

Данная сущность хранит информацию о кабинетах в учебном заведении, где проходят занятия. (Прил.9)

Свойства:

·  IntID_Cabinet (PK) - первичный ключ таблицы “Cabinet”, идентификатор кабинета.

·  IntNumber_campus - поле, описывающее номер корпуса.

·        IntNumber (AK) - поле, описывающее номер кабинета

10.    Сущность “Teacher_cabinet”.

Данная таблица является перекрестной, фиксирует привязку учителя к определенному кабинету, что означает, что у этого преподавателя при выборе кабинета будет преимущество. (Прил.10)

Свойства:

·  Int ID_Teacher_Cabinet (PK) - первичный ключ таблицы “Teacher_Cabinet”, идентификатор причины, по которой отсутствовал студент на форме контроля .

Источник: https://www.bibliofond.ru/view.aspx?id=896641