Смекни!
smekni.com

Исследование использования программ дистанционного обучения для подготовки учебно-методической документации (стр. 12 из 27)

Объект "Подразделы курса" включает в себя информацию о подразделах курсов. Он обладает свойствами: Идентификатор подраздела курса, № курса, № подраздела, Ссылка загрузки подраздела, Описание подраздела, Название теста по подразделу, Количество вопросов в тесте. Все указанные свойства, кроме свойства Идентификатор подраздела курса, являются динамическими, т.е. могут меняться. Поле Идентификатор подраздела курса - статическое.

Объект "Преподаватели" включает в себя информацию о преподавателях курсов ДО. Он обладает свойствами: Идентификатор преподавателя, Фамилия Имя Отчество преподавателя, Ученая степень преподавателя, Адрес электронной почты преподавателя, Информация о преподавателе, Фото преподавателя. Все указанные свойства, кроме свойства Идентификатор преподавателя, являются динамическими, т.е. могут меняться. Поле Идентификатор преподавателя - статическое.

Объект "Курсы пользователей" включает в себя информацию о курсах ДО, на которые зарегистрировались пользователи системы. Он обладает свойствами: Идентификатор курса, Логин, № курса, Статус курса, Дата регистрации курса. Все указанные свойства, кроме свойств Идентификатор курса и Дата регистрации курса, являются динамическими, т.е. могут меняться. Поля Идентификатор курса и Дата регистрации курса - статические, их значение не меняется.

Объект "Тесты пользователей" включает в себя информацию о результатах тестирования зарегистрированных студентов. Он обладает свойствами: Идентификатор теста, № курса пользователя, Число попыток теста, Процент лучшего результата теста, Дата последнего тестирования. Все указанные свойства, кроме свойства Идентификатор теста, являются динамическими, т.е. могут меняться. Поле Идентификатор теста - статическое.

Объект "Допустимые шифры" содержит шифры студентов, имеющих возможность дистанционного обучения. Он обладает свойством: Шифр студента. Это поле не изменяется - оно статическое.

Объект "Вопросы тестов" содержит вопросы для тестов. Он обладает свойствами: Идентификатор вопроса, № подраздела курса, Контекст вопроса. Все указанные свойства, кроме свойства Идентификатор вопроса, являются динамическими, т.е. могут меняться. Поле Идентификатор вопроса - статическое.

Объект "Ответы на вопросы тестов" содержит ответы на вопросы тестов. Он обладает свойствами: Идентификатор ответа, № вопроса, Контекст ответа, Флаг правильного ответа. Все указанные свойства, кроме свойства Идентификатор ответа, являются динамическими, т.е. могут меняться. Поле Идентификатор ответа - статическое.

Объект "Новости" содержит информацию для вывода новостей. Он обладает свойствами: Идентификатор новости, Название новости, Дата новости, Контекст новости, Автор новости. Все указанные свойства, кроме свойства Идентификатор новости, являются динамическими, т.е. могут меняться. Поле Идентификатор новости - статическое.

Объекты "Пользователи" и "Курсы пользователей" связаны между собой связью "один-ко-многим", объекты "Пользователи" и "Допустимые шифры" - связью "один-к-одному", объекты "Курсы пользователей" и "Курсы ДО" - связью "многие-к-одному", объекты "Курсы пользователей" и "Тесты пользователей" - связью "один-ко-многим", объекты "Курсы пользователей" и "Тесты пользователей" - связью "один-ко-многим", объекты "Курсы ДО" и "Преподаватели" - связью "многие-к-одному", объекты "Курсы ДО" и "Подразделы курса" - связью "один-ко-многим", объекты "Тесты пользователей" и "Подразделы курса" - связью "многие-к-одному", объекты "Подразделы курса" и "Вопросы тестов" - связью "один-ко-многим", объекты "Вопросы тестов" и "Ответы на вопросы тестов" - связью "один-ко-многим", объект "Новости" не связан с другими объектами.

2.2 Построение даталогической модели предметной области

На основании анализа предметной области и построенной инфологической модели разработана реляционная база данных RLI_test. Для реляционной базы данных проектирование физической структуры заключается в том, чтобы разбить всю информацию по таблицам, а также определить состав полей для каждой из этих таблиц и установить связи между таблицами.

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

Одной из основных таблиц является таблица "users". В ней хранится вся информация о пользователях, зарегистрированных в системе. Таблица содержит поля - login- идентификационное поле, идентифицирующее единственным образом студента при входе в систему. Passwd- пароль для доступа к подсистеме обучения. Пароль кодируется шифром md5, алгоритм которого реализован в языке PHP. Кодирование позволяет защитить пароль от просмотра заинтересованными пользователями. По этим двум параметрам осуществляется вход в систему.

Поле n_group хранит информацию о названии учебной группы студента. Поле registration_date содержит дату регистрации студента в системе, это поле заполняется автоматически текущей датой при успешной регистрации в системе. Поле sex хранит пол студента - женский или мужской. В поле student_code хранится шифр студента. По этому полю система проверяет, может ли студент обучаться дистанционно или нет. Запретить обучение может администратор системы. Проверка осуществляется поиском значения шифра в таблице student_codes.

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

Ключевым полем в таблице users является поле login. По полю login данная таблица связана с таблицей "user_courses" связью "один-ко-многим", по полю student_code- c таблицей "student_codes" связью "один-к-одному". Типы данных полей таблицы "users" представлены в таблице 2.1

Таблица 2.1 - Структура таблицы "users"

№п/п Описание Поле Тип данных Дополнительные параметры
1 Логин студента login char(16) Ключевое
2 Пароль passwd char(128) NOT NULL
3 Фамилия lastname char(40) NOT NULL
4 Имя firstname char(40) NOT NULL
5 Отчество middlename char(40) NOT NULL
6 Учебная группа n_group char(40) NOT NULL
7 Дата регистрации в системе registration_date date
8 Пол sex enum('мужской', 'женский')
9 Адрес электронной почты email char(128) NOT NULL
10 Шифр студента student_code char(10) NOT NULL, UNIQUE
11 Флаг администратора u_admin enum('y', 'n') DEFAULT 'n'

В таблице "courses" хранится информация о курсах дистанционного обучения. Ключевым полем в таблице является поле id_course. Таблица связана по полю id_course с таблицей "user_courses" и таблицей "course_parts" связью "один-ко-многим", по полю n_teacher с таблицей "teachers" связью "многие-к-одному". Поле course_period содержит информацию о продолжительности курса в месяцах. Если студент не прошел курс с даты регистрации в течение числа месяцев, указанных в course_period курс считается не сданным. Структура таблицы с описанием типов полей приведена в таблице 2.2

Таблица 2.2 - Структура таблицы "courses"

№п/п Описание Поле Тип данных Дополнительные параметры
1 Идентификатор курса id_course int Ключевое, AUTO_INCREMENT
2 Название курса course_name char(128) NOT NULL
3 Аннотация курса course_annotation text
4 Ссылка на файл описания курса course_full_description char(128)
5 Ссылка на файл картинки курса course_picture_link char(128)
6 Продолжительность курса course_period float
7 Преподаватель курса n_teacher int NOT NULL

В таблице "course_parts" хранится информация о подразделах курсов дистанционного обучения. Ключевым полем в таблице является поле id_course_part. Таблица связана по полю id_course_part с таблицей "questions" и таблицей "user_tests" связью "один-ко-многим", по полю n_course с таблицей "courses" связью "многие-к-одному". Структура таблицы с описанием типов полей приведена в таблице 2.3


Таблица 2.3 - Структура таблицы "course_parts"

№п/п Описание Поле Тип данных Дополнительные параметры
1 Идентификатор подраздела курса id_course_part int Ключевое, AUTO_INCREMENT
2 Курс n_course int NOT NULL
3 Подраздел курса n_part int NOT NULL
4 Ссылка на файл загрузки подраздела курса download_link char(128) NOT NULL
5 Описание ссылки загрузки download_description text
6 Название теста test_name char(128)
7 Количество вопросов, выводимых при тестировании test_question_count int NOT NULL, DEFAULT 5

В таблице "questions" хранится информация о вопросах тестов. Ключевым полем в таблице "questions" является поле id_question. Таблица связана по полю id_question с таблицей "answers" связью "один-ко-многим", по полю n_course_part с таблицей "course_parts" связью "многие-к-одному". Структура таблицы с описанием типов полей приведена в таблице 2.4