Файл: В подобной ситуации я считаю актуальным создание программы для обучения основам синтаксиса и семантики языка.doc
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 08.11.2023
Просмотров: 76
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Например, если студенческий ответ является правильным, но не оптимальным решением, система предлагает студенту найти оптимальный ответ, вынуждая студента более глубоко вникнуть в данную тему.
Если же ответ неверен, то студенту указывается место его ошибки. Для анализа неизвестных системе ответов существует их проверка на реальной БД, которая отображает способность системы к самообучению.
Графическое представление метода анализа SQL-запросов представлено на рис. 3
Студенту предлагается подумать еще
Информация о месте ошибки
да
нетт
Рисунок 3- Графическое представление метода анализа SQL-запросов
Логические выражения, которые для многих запросов содержатся в секции WHERE, имеют значительную избыточность эквивалентных форм представления. Например, выражение A v B л C может быть также записано как A v C л B или B л C v A. В связи с этим возникает задача проверки логических выражений на эквивалентность.
Два выражения могут считаться эквивалентными, если на любых наборах аргументов они дают одинаковые результаты.
В нашем случае, два логических выражения эквивалентны тогда и только тогда, когда их таблицы истинности (ТИ) совпадают.
ТИ для выражения из N пропозициональных слов будет иметь N столбцов и 2N строк аргументов.
Для вычисления значений выражений на заданном наборе аргументов удобно использовать обратную польскую запись (ОПЗ), так как в ней операции не имеют приоритетов, и отсутствуют скобки.
Алгоритм расчета ТИ:
1. Выражение переводится в ОПЗ;
-
Составляется матрица аргументов логической функции размерностью [2N, N]; -
Для очередной строки ТИ производится подстановка аргументов, содержащихся в данной строке, в выражение, записанное как ОПЗ; -
Рассчитанное значение функции записывается в массив результатов.
В то же время, если пропозициональные слова в двух выражениях будут записаны в разном порядке, то и ТИ будут иметь разный вид.
Для удобства их сравнения можно отсортировать столбцы ТИ по именам пропозициональных слов, либо посчитать для каждой ТИ контрольную сумму.
2 Анализ предметной области
1.2.1 Предполагаемый подход
Для решения выбранной задачи автоматизации наиболее оптимальным и по сути единственным решением является использование WEB технологий.
WEB-технологии являются развитием классической архитектуры клиент – сервер, можно сказать, что любая WEB система построена по принципу клиент-сервер, где с помощью одного сверх тонкого клиента – WEB браузера, который обеспечивает удобный интерфейс взаимодействия с пользователем, можно подключиться ко многим серверам. Чтобы понять преимущества данной архитектуры, рассмотрим подробнее классическую клиент- серверную систему.
Несомненным преимуществом технологии "клиент-сервер" является приближенность данных к процессам вычисления. Все операции по манипулированию данными выполняются на сервере, что увеличивает быстродействие в десятки и сотни раз.
Технология клиент-сервер в отличие от файл-серверной дает пользователю большую безопасность, устойчивость, согласованность, масштабируемость, повышенную конфиденциальность и надежность обработки и хранения информации. Развитие систем с архитектурой клиент-сервер в немалой степени обязано проверенному факту: подключение к недорогим серверам недорогих клиентских ПК позволяет получить оптимальное соотношение цены и производительности.
Технология "клиент-сервер" разделяет информационную систему на два уровня: представления и хранения данных. Первый уровень - клиентские компьютеры с прикладными программами, с помощью которых пользователи обращаются по сети к базе данных. Второй уровень - сервер с размещенной на нем базой данных.
Архитектура «клиент-сервер» может быть как двухуровневой, так и трехуровневой, в том числе и применительно к WEB решению. Рассмотрим схему двух и трех уровневой архитектуры web решения.
В двухуровневой архитектуре разграничение функций между Web-браузером и Web-сервером является очень четким. Web-сервер предоставляет HTML-страницы, а браузер отображает эти страницы путем интерпретации тегов HTML.
В трехуровневой архитектуре клиентский уровень занимает браузер, на уровне сервера находится сервер БД, а на промежуточном уровне располагаются Web-сервер и программа расширения сервера. Такое архитектурное решение позволяет уменьшить сетевой трафик, делает компоненты взаимозаменяемыми и повышает уровень безопасности. Однако такая архитектура также затрудняет обработку транзакций БД ввиду природы протокола HTTP, не запоминающего состояния (этот протокол использует для передачи данных между браузером и сервером БД).
Браузер посылает Web-серверу запросы на доставку Web-страниц или данных. Web-сервер обслуживает заявки на Web-страницы, а запросы отправляет программе-расширению серверной части. Последняя принимает передаваемые ей запросы, преобразует их в форму, понятную серверу БД, и передает их серверу БД.
Затем сервер БД выполняет работу по обслуживанию запроса и возвращает результат программе-расширению серверной части. Наконец та преобразует результаты в формат, приемлемый для браузера, и передает их Web-серверу, а тот в свою очередь – браузеру.
Одной из главных причин использования программ-расширений серверной части на промежуточном уровне является возможность использовать стандарты, существующих для двух крайних уровней, путем осуществления трансляции между ними. Другие применения расширений серверной части состоят в поддержании соединений между БД с целью уменьшить трафик в сети и в поддержании резерва соединений между БД для уменьшения затрат ресурсов на открытие/закрытие БД. Расширения серверной части также поддерживают взаимозаменяемость в своих стандартных интерфейсах. Поэтому Web-серверы и серверы БД можно сравнительно легко заменять или наращивать.
Таким образом, трехуровневая архитектура клиент-сервер используемая при разработки информационной системы управления ИТ продуктом на базе WEB технологий, позволяет существенно упростить распределенные вычисления, делая их не только более надежными, но и более доступными. Наличие таких средств, как PHP, JavaScript, упрощает связь сервера приложений с клиентами, а объектно-ориентированные менеджеры транзакций обеспечивают согласованную работу сервера приложений с базами данных. В результате имеются все предпосылки для разработки сложной распределенной информационной системы, которые эффективно используют все преимущества современных WEB технологий.
В результате предстоящей автоматизации на базе WEB технологий произойдет изменение в процессе сборе и обработке информации, а также и при формировании отчетов. Часть информации, для занесения в базу данных будет вноситься через автоматический импорт, осуществляемый специализированными модулями системы. Импорт будет осуществлять как через промежуточные xml и csv файлы, так и сама система будет иметь возможность прямого обращения к базе имеющейся системе внутренней статистики. Часть данных будет, вводится ответственными исполнителями через специальный web интерфейс.
Все расчеты необходимых показателей будут автоматизированы. Отчеты также будут формироваться в окне браузера и возможность распечатывания. Web интерфейс обеспечит доступ к актуальным отчетам в режиме реального времени.
Система будет состоять из двух модулей – базы данных MySQL и приложения для взаимодействия с базой данных, реализованного на языке программирования PHP и c использованием HTML.
Рассмотрим основные функции, которые берет на себя система, с помощью диаграммы IDEF0.
Рисунок 4 - IDEF0 диаграмма предлагаемой схемы тестирующей системы «Построение SQL- запросов». Уровень 1
Работа с системой осуществляется через любой браузер. Для работы необходимо установить локальный сервер в локальной сети предприятия, где будет также расположена база данных. Доступ к базе осуществляется с помощью набора адреса в адресной строке браузера.
Структурная схема пакета представлена на рисунке 5.
Рисунок 5 - Структурная схема пакета приложения
В соответствии с представленной схемой, структурно пакет состоит из следующих модулей:
-
модуль Справочники ; -
модуль Студенты; -
модуль Задания; -
модуль Отчеты.
Тестирующий и тестируемый регистрируются в системе (фамилия, имя отчество, и т.д.). Тестирующий заносит в систему реквизиты тестовых заданий (название, тематика, сложность, продолжительность выполнения, количество вопросов), вопросы и ответы на каждый вопрос ( правильные и неправильные). Тестируемый выбирает интересную для себя тематику и тестовое задание, которое он желает пройти. Ответы, на случайным образом выбранные вопросы, тестируемого сохраняются в базе данных.
Рисунок 6 - IDEF0 диаграмма предлагаемой схемы тестирующей системы «Построение SQL- операторов» . Уровень 1
1.2.2 Требования, предъявляемые к системе
Целью дипломного проекта является разработка анализатора запросов на SQL в учебных целях.
Для этого разрабатываемая система должна содержать следующую функциональность:
-
Проверка SQL запроса на функциональность; -
Проверка запроса на правильность порядка слов; -
Проверка запроса на правильность построения логических схем; -
Учет выполненных заданий каждым пользователем; -
Учет заданий, подготовленным администратором системы; -
Управление пользователями.