Автор работы: Пользователь скрыл имя, 01 Июня 2011 в 19:38, курсовая работа
В настоящее время компьютерные технологии проникают практически во все области деятельности человека. Со временем накопленную информацию не только не рационально – долго, а даже практически невозможно обрабатывать вручную. В разной деятельности суще-ствуют – разные виды и разная структура информации, поэтому необходимо специализиро-ванное программное обеспечение для обработки информации.
Содержание 1
Введение 2
1. Разработка и анализ технического задания 3
1.1 Описание предметной области 3
1.2.1 Назначение разработки 4
1.2.2 Область применения 4
1.2.3 Функциональные требования к системе 4
1.2.4 Количественные требования к системе 4
1.2.5 Требования к техническим средствам 4
1.2.6 Требования к информационной и программной совместимости 5
1.2.7 Требования к интерфейсу 5
1.3 Анализ технического задания 6
2.1 Разработка классов 10
2.1.1 Алгоритм работы программы 11
2.3.1 Структура программы 12
2.3.2 Организация входных и выходных данных 12
3 Расчеты и оценки 13
4 Руководство пользователя 14
4.1 Инсталляция программы 14
4.2 Работа с программой 14
Заключение 15
Список литературы 16
Стр.
В настоящее время компьютерные технологии проникают практически во все области деятельности человека. Со временем накопленную информацию не только не рационально – долго, а даже практически невозможно обрабатывать вручную. В разной деятельности существуют – разные виды и разная структура информации, поэтому необходимо специализированное программное обеспечение для обработки информации.
СУБД являются одним из мощнейших программных средств, которые способны, структурировано хранить данные. В них используется мощный язык управления данными – SQL.
Целю
данного курсового проекта
Данная
программа разрабатывается с целью перевода
стандартных SQL запросов на естественный
язык (в данном случае на русский язык),
для лучшего освоения материала пользователями,
которые только начинают изучать базы
данных.
Программа
будет переводить такие стандартные
операции как:
1.2 Разработка технического задания
Программа предназначена для перевода SQL языка на естественный язык (русский)
Областью применения данной программы может быть любое учебное заведение, в котором изучается SQL. Так же данной программой можно пользоваться и в домашних условиях в личных интересах.
Разработанная программа должна отвечать следующим функциональным требованиям:
Программа работает только на одном компьютере и может одновременно переводить только один запрос.
Для корректной работы программного продукта необходим следующий комплекс технических средств:
Указанные
характеристики ПК соответствуют минимальным
требованиям ОС Windows 98.
Программа работает под управлением операционной системы семейства Windows. Программа распространяется как готовый продукт и не требует от пользователя каких либо настроек.
Программа
имеет графический интерфейс, который
понятен пользователю.
В настоящее время поставленную задачу можно решить, используя следующие программные компоненты:
Пролог (Prolog) — язык логического программирования, основанный на логике дизъюнктов Хорна, представляющей собой подмножество логики предикатов первого порядка.
Программа на языке Prolog состоит из набора фактов, определенных отношений между объектами данных (фактами) и набором правил (образцами отношений между объектами базы данных). Эти факты и правила вводятся в базу данных через операцию consult. Для работы программы пользователь должен ввести запрос - набор термов, которые все должны быть истинны. Факты и правила из базы данных используются для определения того, какие подстановки для переменных в запросе (называемые унификацией) согласуются с информацией в базе данных.
Язык Prolog, как интерпретатор,
приглашает пользователя вводить информацию.
Пользователь набирает запрос или имя
функции. Выводится значение (истина -
yes, или ложь - nо) этого запроса, а также
возможные значения переменных запроса,
присвоение которых делает запрос истинным
(то есть унифицирует запрос). Если ввести
символ ";", тогда отображается следующий
набор значений переменных, унифицирующий
запрос, и так до тех пор, пока не исчерпается
весь набор возможных подстановок, после
чего Prolog печатает no и ждет следующего
запроса. Возврат каретки воспринимается
как прекращение поиска дополнительных
решений.
Хотя выполнение программы на языке Prolog основывается на спецификации предикатов, оно напоминает выполнение программ на аппликативных языках LISP или ML Разработка правил языка Prolog требует того же рекурсивного мышления, что и разработка программ на этих аппликативных языках.
Язык Prolog имеет простой
синтаксис и семантику. Поскольку он ищет
отношения между некоторыми рядами объектов,
основными структурами данных являются
переменная и список. Правило ведет себя
подобно процедуре, за исключением того,
что концепция унификации более сложна,
чем относительно простой процесс подстановки
параметров в выражения.
Семантическая
сеть — информационная модель предметной
области, имеющая вид ориентированного
графа, вершины которого соответствуют
объектам предметной области, а дуги задают
отношения между ними. Объектами могут
быть понятия, события, свойства, процессы.
Таким образом, семантическая сеть является
одним из способов представления знаний.
В названии соединены термины из двух
наук: семантика в языкознании изучает
смысл предложений, а сеть в математике
представляет собой разновидность графа
— набора вершин, соединённых дугами.
В семантической сети роль вершин выполняют
понятия базы знаний, а дуги (причем направленные)
задают отношения между ними. Таким образом,
семантическая сеть отражает семантику
предметной области в виде понятий и отношений.
Структура
Математика позволяет описать большинство явлений в окружающем мире в виде логических высказываний. Семантические сети возникли как попытка визуализации математических формул. Основным представлением для семантической сети является граф. Однако не стоит забывать, что за графическим изображением непременно стоит строгая математическая запись, и что обе эти формы являются не конкурирующими, а взаимодополняющими.
Основной формой представления семантической сети является граф. Понятия семантической сети записываются в овалах или прямоугольниках и соединяются стрелками с подписями — дугами (см. рис.). Это наиболее удобно воспринимаемая человеком форма. Её недостатки проявляются, когда мы начинаем строить более сложные сети или пытаемся учесть особенности естественного языка.
В математике граф представляется множеством вершин V и множеством отношений между ними E. Используя аппарат математической логики, приходим к выводу, что каждая вершина соответствует элементу предметного множества, а дуга — предикату.
Концепция
организации гипертекста
Я попробую написать программу, которая будет анализировать, и переводить SQL запросы на естественный язык.
Данная программа написана в среде разработки Microsoft Visual C++.
Microsoft Visual C++ представляет собой мощное профессиональное средство для создания приложений, которое можно использовать как отдельно, так и в составе Visual Studio 2005. Оно обеспечивает разработчиков улучшенной функциональностью среды, оптимизирующим компилятором, множеством расширений и дополнений, поддержкой новейших платформ, технологий и стандартов. Visual C++ базируется на стандартной реализации языка C++ — стандарте ANSI/ISO.
Оснащенный
набором разнообразных мастеров
(Wizard), формирующих программный код, этот
продукт позволяет в считанные секунды
создавать вполне работоспособное приложение
Windows. Включенная в состав среды библиотека
Microsoft Foundation Classes (MFC) позволяет с легкостью
реализовать нужный графический интерфейс.
2 Разработка приложения
.
В программе используется пользовательский class Translator, в котором описаны поля и прототипы функций:
QueryToWords - перевод запроса на естественный язык (идет работа со строками и помешение их в список отдельных слов).
LoadSynonyms – загрузка синонимов (открытие файла с синонимами).
Translate - переводит запрос на русский язык (идёт обращение к элементу массива через указатель, затем происходит загрузка синонимов с помощью функции LoadSynonyms и указатель становиться на начало списка и затем переводиться в цикле вся строка) .
TranslateWord
– функция
переводит одно слово на русский язык
(в зависимости какое слово обрабатывается
в данный момент ему подбирается синоним
на русском языке)
2.2
Программная реализация
Рис1. Блок схема программы
Рис2. Структура программы
Программа работает следующим образом:
При нажатии на кнопку Перевести запускается метод Translate(...). В этом методе мы сначала разбиваем запрос на отдельные части, состоящие из 1-2 слов (select into). Это делает метод QueryToWords(...). Затем подгружаем базу с синонимами - LoadSynonyms(...). После этого в цикле переводим каждую часть запроса на русский язык TranslateWord()
Информация о работе Перевод SQL запросов на естественный язык