48677 (588596), страница 5
Текст из файла (страница 5)
За каждым учебным курсом может быть закреплен один или несколько преподавателей, которые будут при необходимости осуществлять проверку тестов и выставлять итоговые отметки студентам, а также проводить консультации студентов.
2.1.3 Модуль «Конструктор учебных курсов»
Учебный курс является наиболее важным компонентом СДО. Т.к. именно от того, как организован учебный курс, будет зависеть качество обучения. Поэтому преподавателям необходимо предоставить удобный конструктор учебного курса.
В данной ситуации под учебным курсом понимается электронный учебник, разрабатываемый авторами и хранящийся на сервере.
На один учебный курс может быть назначено несколько авторов. Учебный курс обладает названием и может быть опубликован или скрыт от пользователей. Работать с конструктором учебного курса могут только назначенные авторы.
Учебный курс состоит из разделов, представляющих теоретический материал и разделов, представляющих тестовые задания, для проверки усвоенных знаний.
Теоретический материал может быть представлен в текстовом виде, при помощи рисунков, анимации, flash и видео роликов. Так же могут быть прикреплены дополнительные файлы различных форматов.
К любому разделу учебного курса можно добавить тесты, для контроля усвоения учебного материала.
В системе дистанционного обучения имеется три вида тестов:
- обязательный;
- дополнительный;
- тренировочный.
Первый вид теста предполагает обязательность выполнения и при выставлении итоговой отметки студенту, преподаватель учитывает количество выполненных обязательных тестов.
Дополнительный тест составляется из более сложных вопросов, его выполнение не обязательно. Предполагается, что преподаватель будет учитывать результаты данных тестов и выставит более высокую итоговую отметку.
Обязательный и дополнительный тест не могут быть пересданы обучаемым, пока преподаватель не аннулирует результат тестирования.
Тренировочный тест предполагает самоконтроль обучаемого. Данный вид теста может пересдаваться многократно, пока обучаемый не получит желаемую им отметку, но результаты данного теста имеют минимальное влияние при выставлении итоговой отметки или вообще его не имеют.
Вопросы добавляются при помощи конструктора, в котором указываются тип вопроса, сложность и сам вопрос.
На рисунке 2.1.3.1 показана инфологическая модель модуля «Конструктор учебных курсов».
Рисунок 2.1.3.1 – Инфологическая модель модуля «Конструктор учебных курсов»
2.1.4 Модуль «Обучение»
Студент, идентифицировавшись в системе, получает доступ к учебному плану и имеет возможность изучать учебные курсы. В процессе обучения студенты выполняют тестовые задания. Результаты тестовых заданий заносятся в журнал.
Журнал необходим для получения информации об обучении студентов и их успеваемости. Преподаватели при помощи журнала, могут осуществить проверку тестов, аннулировать результаты тестирования и выставить итоговую оценку студенту.
Журнал представляет собой список групп студентов, которые доступны для данного пользователя. Выбрав группу, пользователь получает доступ к списку предметов, далее к списку группы и, выбрав студента, становится доступной информация о пройденных тестах студентом по данному предмету.
При удалении студента из базы данных, сведения о студенте из журналов удаляются.
На рисунке 2.1.4.1 представлена инфологическая модель модуля «Обучение»
Рисунок 2.1.4.1 – Инфологическая модель модуля «Обучение»
Полная схема инфологической модели СДО приведена в Приложении Б.
2.2 Даталогическое проектирование
2.2.1 Создание схемы данных для СДО на сервере Oracle
В одной базе данных Oracle можно хранить множество разных наборов информации - множество схем. Схема - это набор объектов базы данных (таблиц, представлений, моментальных копий или снимков, индексов, последовательностей, синонимов, процедур, функций, пакетов и триггеров). Понятие схемы - это небольшая поправка к СУБД Oracle, введенная с седьмой версии. Ранее все объекты принадлежали создавшему их пользователю. По умолчанию схема аналогична подключенному в настоящее время пользователю.
Администратор базы данных (АБД) Oracle создает новую пустую схему, задавая ее имя и пароль. Для СДО на сервере в базе данных orcl создана схема sdo с паролем sdo.
Для создания новой схемы необходимо выполнить следующую команду:
CREATE USER SDO IDENTIFIED BY SDO DEFAULT TABLESPACE USERS QUOTA UNLIMITED ON USERS
Затем для созданного пользователя необходимо назначить права. Права задаются при помощи команды GRANT. Следующая команда задает право на создание таблиц:
GRANT CREATE TABLE TO SDO
Все команды выполняются в программе sqlplus, которая реализована как в консольном варианте, так и в виде web-интерфейса, показанного на рисунке 2.2.1.1. Каждая команда должна заканчиваться либо обратным слешем («/») , либо точкой с запятой («;»).
Рисунок 2.2.1.1 - Использование SQL*Plus через web-интерфейс
Полный код создания пользователя и назначение ему прав приведен в Приложении В.
При выполнении кода создающего схему данных необходимо осуществить вход в эту схему, следующей командой:
CONNECT SDO/SDO;
2.2.2 Используемые типы данных
Все типы данных, перечисленные в стандарте ANSI SQL92, полностью поддерживаются в Oracle. Но так же и имеются типы, которые характерны только для СУБД Oracle.
На данной стадии реализации приложения необходимо использовать три типа данных: строка, целое число и дата.
Для хранения строк переменной длины используется тип VARCHAR. При использовании данного типа резервируется реально необходимое пространство. Длина строки указывается в скобочках, за названием типа. Если длина строки не указана явно, то она полагается равной 1. Максимальное значение – 4000 символов.
Существует тип VARCHAR2, который используется только для Oracle. Основная причина введения этого типа состоит в том, что фирма-производитель декларирует неизменность этого типа в более поздних реализациях Oracle, в то время как тип VARCHAR будет соответствовать требованиям стандарта SQL.
Пример, описания строкового поля переменной длины, ограниченной 1000 символами:
varstr1 VARCHAR2(1000)
Типом VARCHAR2 будут описываться логин, ФИО, пароль, названия факультетов, специальностей, кафедр и т.п.
Тип INTEGER используется для представления целых чисел в диапазоне от -231 до 231.
Пример, описания целочисленного поля:
varint1 INTEGER
Данный тип будет использоваться для описания номера зачетной книжки, табельного номера, кода специальности, уникального кода кафедры, факультета, ученой степени, должности и роли.
Тип DATE используется для хранения даты и времени. Допускаются даты с 1 января 4712 г. до н.э. до 31 декабря 4712 г. н.э. Для формирования значения типа DATE в SQL и PL/SQL обычно используется встроенная функция ТО_DАТЕ('символьная строка даты', 'формат даты'). При определении даты без уточнения времени по умолчанию принимается время полуночи. Функция SYSDATE возвращает текущее значение даты и времени. Значение функции определяется средствами операционной системы компьютера, на котором работает сервер Oracle.
Пример, описания поля с типом дата:
birthday DATE
Наличие специального типа для хранения даты и времени позволяет поддерживать специальную арифметику дат и времен. Добавление к переменной типа DATE целого числа интерпретируется Oracle как определение более поздней даты, а вычитание выполняется как определение более ранней [6].
Типом DATE будет описываться поле «дата рождения».
2.2.3 Создание таблиц и связей между ними
Для создания таблиц существует оператор CREATE TABLE. Рассмотрим создание таблицы на примере:
CREATE TABLE Faculty (
facultyID INTEGER NOT NULL,
facultyName VARCHAR2(200) NOT NULL,
facultyShortName VARCHAR2(20) NULL
);
После ключевых слов CREATE TABLE указывается название создаваемой таблицы, а затем в скобочках перечисляются через запятую поля таблицы. Для каждого поля указывается тип данных и показывается возможность поля быть пустым или нет.
Для задания первичного ключа таблицы необходимо внести в нее изменения:
ALTER TABLE Faculty ADD ( PRIMARY KEY (facultyID));
Выше представленная команда говорит о том, что необходимо изменить таблицу Faculty, добавив в нее первичный ключ, в качестве которого выступает поле facultyID.
Для создания связей между таблицами используются внешние ключи. Рассмотрим пример задания внешнего ключа для таблицы «Кафедры»:
ALTER TABLE Chair ADD (FOREIGN KEY (facultyID)
REFERENCES Faculty ON DELETE SET NULL);
Приведенная команда указывает, что необходимо изменить таблицу Chair, установив в качестве первичного ключа поле facultyID, которое связано с таблицей Faculty. В случае удаления факультета полю facultyID установить значение NULL.
Исходный код генерации таблиц, первичных ключей и внешних ключей приведен в Приложении Г.
2.2.4 Создание последовательностей
В Oracle отсутствует поддержка автоинкрементных полей. Но существует возможность создания последовательностей, значения которых будут уникальны. Для каждой таблицы, нуждающейся в получении уникального кода, где его не требуется указать явно (например, номер зачетной книжки или код специальности указывается явно при заполнении) создаются такие последовательности.
Пример создания последовательности:
CREATE SEQUENCE faculty_seq | - создать последовательность faculty_seq |
INCREMENT BY 1 | - значения увеличивать на 1 |
START WITH 1 | - начальное значение 1 |
NOMAXVALUE | - отсутствует максимальное значение |
MINVALUE 1 | - минимальное значение равно 1 |
ORDER | - упорядочивать значения |
; |
Код генерации всех последовательностей приведен в Приложении Г.
2.2.5 Создание триггеров
Последовательность генерирует значение только тогда, когда ее об этом попросят. Поэтому при вставке новых значений в таблицу необходимо извлечь из последовательности уникальный номер и подставить в таблицу в качестве кода записи. Это возможно реализовать, создав для таблиц триггеры.
Пример триггера:
create or replace trigger faculty_insert_trig
BEFORE INSERT on Faculty
for each row
begin
SELECT faculty_seq.nextval INTO :new.facultyID from dual;
end;
Данный код говорит о необходимости создать или заменить триггер faculty_insert_trig, который перед вставкой каждой новой записи в таблицу Faculty будет извлекать значение из последовательности faculty_seq методом nextval и добавлять в новую запись в поле facultyID.
Код генерации всех триггеров приведен в Приложении Г. Полная даталогическая схема СДО показана в Приложении Д.
2.3 Установка и настройка БАЗОВОГО программного комплекса
В системе Linux имеется пользователь «sk», который устанавливает Oracle Database 10g и Apache-Tomcat 5.5.20, а также являться владельцем этих приложений. Чтобы создать нового пользователя, необходимо запустить приложение YaST. Выбирается раздел управление пользователями и создается новый пользователь (рисунок 2.3.1).
Рисунок 2.3.1 – Создание нового пользователя
Далее на закладке «Описание», указывается домашняя директория пользователя, основная группа, к которой он относится, и дополнительные группы. После применения параметров, можно пользоваться новой учетной записью.
Создание новых пользователей необходимо для безопасности системы, т.к. если осуществлять все установки и настройки программного обеспечения от пользователя root, то нет уверенности в том, что система не будет разрушена, в результате неправильных действий пользователя или некачественных программ.
2.3.1 Контейнер Apache-Tomcat 5.5.20