47792 (588502), страница 2
Текст из файла (страница 2)
Проектирование реализации БД(логическое проектирование) представляет собой трансформацию концептуальной модели в набор отношений в нормальной форме Бойса-Кодда(НФБК). Для приведения спроектированного универсального отношения в НФБК воспользуемся декомпозиционным методом проектирования, содержанием которого является описание семантики универсального отношения в терминах функциональных зависимостей(ФЗ) и использование последних для нормализации отношения.
Введем следующие понятия: функциональная зависимость, ключ, первичный ключ, детерминант, НФБК.
Если даны два атрибута A и B, то говорят, что B функционально зависит от A (обозначается A B), если для каждого A существует ровно одно связанное с ним значение B. A и B могут быть не только единичными атрибутами, но и группами из двух и более атрибутов.
Ключом называется атрибут или совокупность атрибутов, которые используются для идентификации записи и обнаружения ее на ЗУ. Ключей может быть несколько.
Первичный ключ используется для уникальной идентификации кортежа.
Детерминант. Если в ФЗ A B B не зависит от любого подмножества A(т.е. функциональная зависимость полна), то A является детерминантом B.
НФБК определяется следующим образом: отношение находится в НФБК, если каждый детерминант отношения является ключом. Проверим находится ли универсальное отношение R(ТЕМА, ТЕМА, ВОПРОС, ВОПРОС, ОТВЕТ, ОТВЕТ, ИСТИННОСТЬ) в НФБК.
Выпишем ФЗ для универсального отношения:
ТЕМА ТЕМА,
ТЕМА, ВОПРОС ВОПРОС,
ВОПРОС, ОТВЕТ ОТВЕТ,
ВОПРОС, ОТВЕТ ИСТИННОСТЬ.
Из записанных ФЗ видно, что рассматриваемое отношение имеет только один ключ, а именно набор атрибутов . То есть это минимальный набор значений атрибутов, которые, если они известны, определяют значения других атрибутов кортежа. Детерминантами отношения являются левые части всех ФЗ, а именно: , , .
Легко обнаружить, что ни один детерминант не является ключом. Из чего следует, что рассматриваемое отношение не находится в НФБК и подлежит декомпозиции.
Алгоритм декомпозиционного проектирования выглядит так:
-
разрабатывается универсальное отношение для БД;
-
определяются все ФЗ между атрибутами отношения;
-
определяется, находится ли отношение в НФБК. Если ДА, то проектирование завершено, если НЕТ, отношение должно быть разложено на два;
-
шаги 2 и 3 повторяются для каждого нового отношения, полученного в результате декомпозиции. Проектирование завершается, когда все отношения будут находиться в НФБК.
Детерминант не является ключом и имеет два зависимых от него атрибута
ВОПРОС, ОТВЕТ ОТВЕТ
ВОПРОС, ОТВЕТ ИСТИННОСТЬ,
что можно рассматривать в качестве единичной ФЗ с составными правой и левой частями ВОПРОС, ОТВЕТ ОТВЕТ,ИСТИННОСТЬ.
Таким образом, получаются два новых отношения R1 и R2:
R1(ТЕМА, ТЕМА, ВОПРОС, ВОПРОС)
ФЗ: ТЕМА ТЕМА,
ТЕМА, ВОПРОС ВОПРОС.
Возможные ключи: .
Детерминанты:,.
R2(ВОПРОС, ОТВЕТ, ОТВЕТ, ИСТИННОСТЬ)
ФЗ: ВОПРОС, ОТВЕТ ОТВЕТ,ИСТИННОСТЬ.
Возможные ключи: .
Детерминанты: .
Отношение R2(ВОПРОС, ОТВЕТ, ОТВЕТ, ИСТИННОСТЬ) находится в НФБК, т.к. его детерминант является ключом, а потому в дальнейшей декомпозиции не нуждается.
В отношении R1(ТЕМА, ТЕМА, ВОПРОС, ВОПРОС) детерминант не является возможным ключом, поэтому R1 не находится в НФБК и подлежит дальнейшему расщеплению. Результатом расщепления отношения R1 являются отношения R3,R4:
R3(ТЕМА, ВОПРОС, ВОПРОС)
ФЗ: ТЕМА, ВОПРОС ВОПРОС.
Возможные ключи: .
Детерминанты: .
R4(ТЕМА, ТЕМА)
ФЗ: ТЕМА ТЕМА.
Возможные ключи: .
Детерминанты: .
Эти два отношения находятся в НФБК, следовательно проектирование завершается и его результатом является логическая модель БД в НФБК:
R2(ВОПРОС, ОТВЕТ, ОТВЕТ, ИСТИННОСТЬ),
R3(ТЕМА, ВОПРОС, ВОПРОС),
R4(ТЕМА, ТЕМА).
3.3 Структура файлов базы данных
В качестве формата для разрабатываемой базы данных был избран Paradox, т.к. он предоставляет следующие возможности:
-
Широкий выбор типов полей, включая авто-инкремент, BLOBs и т.п.
-
Соблюдение целостности данных, контроля данных, обновления индексов на уровне ядра BDE.
-
Первичный индекс таблицы автоматически соблюдает уникальность записей, вторичные индексы обеспечивают отсортированный «вид» на записи таблицы.
В результате анализа поставленной задачи были разработаны следующие файлы данных:
-
TEMA - содержит информацию о имеющихся разделах(темах);
-
QUESTION - предназначен для хранения вопросов к темам из таблицы TEMA;
-
ANSWER - содержит варианты ответов на вопросы из таблицы QUESTION;
-
TICKETS - предназначен для хранения информации о билетах;
-
CONTROL - содержит информацию о результатах тестирования;
-
RESULT - предназначен для сбора информации об истинности ответов студента.
Структуры файлов данных приводятся ниже в табличной форме.
Таблица 3.3
Структура файла данных TEMA.DB
| Название поля | Тип | Назначение |
| Tema_id | autoincrement | уникальный идентификатор раздела(темы) |
| Tema_name | alpha(100) | название раздела(темы) |
Таблица 3.4
Структура файла данных QUESTION.DB
| Название поля | Тип | Назначение |
| Quest_id | autoincrement | уникальный идентификатор вопроса |
| Tema_id | long integer | номер темы, которой принадлежит вопрос |
| Quest_name | memo | текст вопроса |
Таблица 3.5
Структура файла данных TICKETS.DB
| Название поля | Тип | Назначение |
| Ticket_id | autoincrement | уникальный идентификатор записи |
| Ticket_num | long integer | номер билета |
| Quest_id | long integer | идентификатор вопроса |
Таблица 3.6
Структура файла данных ANSWER.DB
| Название поля | Тип | Назначение |
| Otvet_id | autoincrement | уникальный идентификатор варианта ответа |
| Quest_id | long integer | идентификатор вопроса, которому принадлежит вариант ответа |
| Otvet_name | memo | текст варианта ответа на вопрос |
| Trued | logical | истинность варианта ответа |
Таблица 3.7
Структура файла данных CONTROL.DB
| Название поля | Тип | Назначение |
| Id | autoincrement | уникальный идентификатор записи |
| Name | alpha(40) | фамилия студента |
| Ticket_num | long integer | номер билета, по которому проводилось тестирование |
| Date | date | дата тестирования |
| Time | time | время завершения тестирования |
| Mark | number | относительная оценка (0..1) |
Таблица 3.8
Структура файла данных RESULT.DB
| Название поля | Тип | Назначение |
| Answer_id | long integer | уникальный идентификатор ответа |
| Trued | logical | истинность ответа |
-
ОПИСАНИЕ ПРОГРАММНЫХ МОДУЛЕЙ
Разработанная универсальная обучающе-контролирующая система содержит следующие части:
-
программу для создания и модификации тестов;
-
сервисную программу настройки параметров контроля знаний, формирования билетов, просмотра и распечатки результатов тестирования;
-
программу контроля знаний
и предназначен для разработки, модификации и эффективного использования тестов в процессе обучения практически по любой дисциплине.
Описание основных принципов функционирования программ, входящих в состав системы, приведено ниже.
-
Описание программы создания и модификации тестов
Программа создания и модификации тестов, являясь составной частью универсальной обучающе-контролирующей системы, предназначена для создания и модификации контрольных вопросов, объединенных в разделы по тематическому признаку, а также таких разделов и предоставляет пользователю следующие возможности:
-
создание, модификация и удаление тематических разделов;
-
создание, модификация и удаление контрольных вопросов;
-
создание для любого вопроса произвольного числа вариантов ответа;
-
модификация и удаление вариантов ответа на вопрос.
Программа реализована на языке Object Pascal в среде визуального программирования Delphi 2.0 фирмы Borland International. Текст программы и используемых ею модулей приведен в прил.1.
Программой используются следующие файлы БД: Tema.db, Question.db, Answer.db. Схема связей файлов БД, используемая рассматриваемой программой, приведена на рис.4.1.
Рис.4.1. Схема связей файлов БД для программы создания тестов
Так как программа разрабатывалась в системе визуального программирования Borland Delphi в соответствии с принципом модульности, то в каждом модуле объявляется отдельный класс, который содержит данные и методы работы с ними а также методы работы с данными из других классов. Ниже приведены описания классов, используемых в рассматриваемой программе.
-
Класс TTreeForm ( модуль S2) ‑ отображает главное окно программы.
Переменные класса:
-
x1,x2 - вспомогательные переменные;
-
CreateMainForm - индикатор создания формы (True,если выполняется метод FormCreate).
Методы класса:
-
AddDocButClick() - выполняет добавление нового контрольного вопроса в текущую тему;
-
MainTreeClick() - изменяет положение указателей в файлах БД Tema.db,Question.db;
-
DeleteButClick() - выполняет удаление текущего вопроса или темы;
-
FullExpButClick() - производит полное раскрытие тематического дерева;
-
FullColButClick() - выполняет полное сворачивание тематического дерева;
-
ExitButClick() - производит закрытие программы;
-
FormClose( ) - выполняет все необходимые действия перед закрытием программы;
-
AddTemaButClick() - выводит диалог добавления новой темы;
-
FormShow() - выполняет инициализацию данных при запуске программы;
-
FormResize() - производит действия по изменению размеров объектов окна;
-
FormCreate() - выполняет инициализацию переменных x1,x2;
-
AppendQuestion() - добавляет в таблицу Question.db новый вопрос;
-
ClearQuestion() - осуществляет логическое удаление текущего вопроса из БД.
-
Класс TEditForm (модуль DB_Unit) - отображает окно редактирования контрольных вопросов.
Переменные класса:
-
x1,x2 - вспомогательные переменные.
Методы класса:
-
FormClose( )- производит выход из программы;
-
DBEditTemaChange() - сохраняет в БД изменения в названии темы;
-
AddAnswerButClick() - добавляет новый вариант ответа на текущий вопрос;
-
DelAnswerButClick() - удаляет текущий вариант ответа на вопрос;
-
FormCreate() - выполняет инициализацию переменных;
-
AppendAnswer() - производит добавление в БД нового ответа;
-
ClearAnswer() - выполняет удаление из БД текущего ответа;
-
FormResize() - изменяет размер объектов окна;
-
MemoScrollResize() - изменяет размер объектов в области модификации ответов.
-
Класс TAnswer (модуль DBUnit) - отвечает за отображение вариантов ответа на вопрос.
Переменные класса:
-
nocreate - индикатор создания объекта(False,если выполняется метод Create).
Методы класса:
-
Create() - создает объект типа TAnswer;
-
Free() - освобождает память занятую объектом;
-
CheckClick() - заносит в файл БД Answer.db состояние флажка правильности ответа;
-
MemoChange() - сохраняет текст ответа в файле БД Answer.db;
-
DeleteAnswer() - производит перерисовку области вывода вариантов ответа на вопрос после удаления одного из ответов.
-
Класс TWinEditTema(модуль AddTema) - отображает диалог добавления новой темы.
Методы класса:
-
butCancelClick() - добавляет новую тему в файл БД Teма.db.
-
butOkClick() - закрывает диалог добавления новой темы.
4.2 Описание программы администрирования
Программа администрирования, являясь составной частью универсальной обучающе-контролирующей системы, предназначена для использования в сочетании с программой создания тестов и предоставляет пользователю следующие возможности:
-
формирование билетов;
-
задание времени ответа на вопросы билета;
-
задание системы оценки результатов тестирования;
-
просмотр и распечатка результатов (протокола) тестирования на принтере.
Программа реализована на языке Object Pascal в среде визуального программирования Delphi 2.0 фирмы Borland International. Текст программы и используемых ею модулей приведен в прил.2.
Программой используются следующие файлы БД: Control.db, Tema.db, Question.db, Tickets.db. Схема связей файлов БД, используемая рассматриваемой программой, приведена на рис.4.2.















