Смекни!
smekni.com

Разработка программы запросов (стр. 6 из 7)

Для выполнения запроса к БД должна быть возможность соединения с учебной БД.

Учебных БД может быть несколько.

К каждой БД может быть составлено множество запросов, на каждый запрос может быть множество ответов.

Пользователь должен иметь удобный интерфейс для ввода последовательности операций.

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

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

При вводе условий необходимо предоставить возможность выбора операции сравнения и множества стандартных констант типа TRUE, FALSE, NULL.

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

Например, для операции объединения порядок операндов несущественен, для операции внутреннего соединения тоже, но при выполнении операции левого соединения порядок существенен. При этом эквивалентны операции:

R1= LEFT JOIN (A, B, условие соединения)

и

R1= RIGHT JOIN (B, A, условие соединения).

Таким образом, проверка правильности введенного ответа не может выполняться простым сравнением эталона и введенного текста.

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

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

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

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

Для этого программа должна уметь преобразовывать операцию (последовательность операций) в запрос к БД.

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

Введенные ответы должны сохраняться во внутренней БД с указанием полученного за них балла.

Пользователь должен иметь возможность просмотреть полученные им вопросы, введенные ответы и полученные результаты. Эта информация должна распечатываться на принтере.

3.2 Структура данных

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

Данная информация должна храниться в так называемой внутренней БД.

Для проектирования внутренней БД можно выделить следующие сущности.

Сущность Пользователь обладает атрибутами Идентификатор. Имя, Пароль.

Сущность Учебная БД обладает атрибутами Имя, Информация для соединения, Схема данных.

Сущность Вопрос обладает атрибутом Текст запроса, Максимальный балл.

Сущность Реляционная операция обладает атрибутами Название, Обозначение, Операнд1, Операнд2, Дополнительная информация.

Сущность Эталонный ответ включает множество операций.

Сущность Последовательность операций определяет возможный порядок операций в эталонном ответе.

Сущность Тест характеризуется атрибутами Дата, Контролирующий или обучающий, Итоговая оценка.

Сущность Ответ включает последовательность операций.

Между сущностями можно определить следующие взаимосвязи.

Сущность Учебная БД и Вопрос связаны отношением «один ко многим», вопрос относится только к одной БД, но к одной БД может быть построено множество запросов.

Между сущностями Пользователь и Тест существует связь «один ко многим», один пользователь может проходить множество тестов, но каждый тест относится к одному пользователю.

Сущность Вопрос и Тест связаны отношением «многие ко многим», один вопрос может входить в различные тесты, и в тест могут входить много вопросов. Данная взаимосвязь обладает собственным атрибутом Оценка.

Сущности Вопрос и Ответ связаны отношением «Один ко многим», один вопрос может иметь множество ответов, но ответ относится к одному вопросу.

Между сущностями Ответ и Последовательность определена связь «Один ко многим», ответ может иметь множество последовательностей, но каждая последовательность относится к одному ответу.

Сущности Операция и Ответ связаны отношением «многие ко многим», в ответе может быть множество операций, и операция участвует во многих ответах. Данная связь имеет собственные атрибуты Операнд1, Операнд2 (необязательный), Дополнительная информация (необязательная).

Для ускорения работы программы можно во внутреннюю БД внести дополнительную информацию о структуре учебной БД – список таблиц и список полей для каждой таблицы. Этот список может формироваться автоматически в момент внесения учебной БД во внутреннюю БД.

Таким образом, получается концептуальная модель данных, показанная на рис.3.1.

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

В таблицу Таблицы добавлен атрибут Идентификатор БД. В таблицу Поля добавлен атрибут Идентификатор таблицы. В таблицу Тест добавлен атрибут Идентификатор пользователя. В таблицу Вопрос добавлен атрибут Идентификатор БД.

Для реализации связей «многие ко многим» созданы дополнительные таблицы Операция эталонного ответа, Операция ответа пользователя, Вопрос теста.

В таблицу Ответ добавлен атрибут Идентификатор вопроса теста. В таблицу Последовательность добавлен Атрибут Идентификатор операции эталонного ответа.

В результате получена следующая структура внутренней БД (см. табл.3.1)

Таблица 3.1 Структура внутренней БД

Таблица Поле Тип поля
1 2 3
Пользователь Идентификатор Числовой
Имя Строковый
Пароль Строковый
Учебная БД Идентификатор Числовой
Название Строковый
Строка соединения Строковый
Схема данных Графический
Тест Идентификатор Числовой
Дата Дата
Итоговая оценка Числовой
Вопрос Идентификатор Числовой
Текст Строковый
Оценка
Идентификатор БД Числовой
Реляционная операция Идентификатор Числовой
Название Строковый
Обозначение Строковый
Операнд1 Логический
Операнд2 Логический
Доп. информация Логический
Эталонный ответ Идентификатор Числовой
Операция в эталонном ответе Идентификатор ЭОО Числовой
Идентификатор ответа Числовой
Идентификатор операции Числовой
Операнд1 Строковый
Операнд2 Строковый
Выражение1 Строковый
Выражение2 Строковый
Операция сравнения Строковый
Последовательность Идентификатор ЭОО Числовой
Номер Числовой
Ответ Идентификатор ОП Числовой
Идентификатор вопроса Числовой
Идентификатор теста Числовой
Оценка Числовой
Операция в ответе Идентификатор ОО Числовой
Идентификатор ОП Числовой
Идентификатор операции Числовой
Операнд1 Строковый
Операнд2 Строковый
Выражение1 Строковый
Выражение2 Строковый
Операция сравнения Строковый

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

Список литературы

1.План выполнения запроса. Свободная энциклопедия Википедия: [электронный ресурс] – Режим доступа : ru.wikipedia.org

2.Оптимизация запросов в SQL Server 2005: [электронный ресурс] – Режим доступа: http://www.askit.ru/custom/sql2005_admin/m11/11_05_08_query_ optimization.htm

3.Гарсиа-Молина Г. Системы баз данных. Полный курс / Гарсиа-Молина Г., Ульман Дж., Уидом Дж... – М.: Издательский дом «Вильямс», 2003. – 1088 с.

4.Хансен Г. Базы данных: разработка и управление / Хансен Г., Хансен Дж..: Пер. с англ. – М.: ЗАО «Издательство БИНОМ», 1999. – 704 с.

5.Роджер Дж. Руководство разработчика баз данных на Visual Basic 6 / Роджер Дж.: Пер. с англ. – К.; М.; СПб.: Издательский дом «Вильямс», 2001. – 976 с.: ил.