Перевод SQL запросов на естественный язык

Автор работы: Пользователь скрыл имя, 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

Работа состоит из  1 файл

ПЗ.doc

— 165.50 Кб (Скачать документ)

Содержание

      Стр.

 

Введение

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

  СУБД  являются одним из мощнейших программных средств, которые способны, структурировано хранить данные. В них используется мощный язык управления данными – SQL.

  Целю  данного курсового проекта является, написание программы, которая максимально близко и точно переводила SQL запросы на естественный язык. 

 

1. Разработка и анализ технического задания

    1. Описание  предметной области
 

     Данная программа разрабатывается с целью перевода стандартных SQL запросов на естественный язык (в данном случае на русский язык), для лучшего освоения материала пользователями, которые только начинают изучать базы данных. 

     Программа будет переводить такие стандартные  операции как: 

      • SELECT INTO
      • SELECT
      • FROM
      • WHERE
      • GROUP
      • HAVING
      • ORDER
      • LIMIT
      • AND
      • OR
      • NOT
      • ASC
      • DESC
      • BY
 
 
 
 
 
 
 
 
 
 
 

  1.2 Разработка технического задания

      1. Назначение  разработки

  Программа предназначена для перевода SQL языка на естественный язык (русский)

      1.   Область применения

  Областью  применения данной программы может  быть любое учебное заведение, в  котором изучается SQL. Так же данной программой можно пользоваться и в домашних условиях в личных интересах.

      1. Функциональные  требования к системе

  Разработанная программа должна отвечать следующим функциональным требованиям:

  1. загрузка стандартных запросов из файла;
  2. возможность ввода информации пользователем;
  3. максимально приближенный перевод запроса на естественный язык;
  4. случайность перевода стандартных слов;
      1. Количественные  требования к системе

  Программа работает только на одном компьютере и может одновременно переводить только один запрос.

      1. Требования к техническим средствам

  Для корректной работы программного продукта необходим следующий комплекс технических средств:

  • процессор - Pentium 600MHz и выше;
  • ОЗУ - 128 Мбайт или выше;
  • HDD – от 5 Гбайт;
  • ОС система семейства Windows
  • монитор
  • клавиатура, мышь.

  Указанные характеристики ПК соответствуют минимальным требованиям ОС Windows 98. 
 

 

      1. Требования  к информационной и программной  совместимости

  Программа работает под управлением операционной системы семейства Windows. Программа распространяется как готовый продукт и не требует от пользователя каких либо настроек.

      1. Требования к интерфейсу

  Программа имеет графический интерфейс, который понятен пользователю. 
 
 

 

    1. Анализ технического задания

  В настоящее время поставленную задачу можно решить, используя  следующие программные компоненты:

  Пролог (Prolog) — язык логического программирования, основанный на логике дизъюнктов Хорна, представляющей собой подмножество логики предикатов первого порядка.

  Программа на языке Prolog состоит из набора фактов, определенных отношений между объектами данных (фактами) и набором правил (образцами отношений между объектами базы данных). Эти факты и правила вводятся в базу данных через операцию consult. Для работы программы пользователь должен ввести запрос - набор термов, которые все должны быть истинны. Факты и правила из базы данных используются для определения того, какие подстановки для переменных в запросе (называемые унификацией) согласуются с информацией в базе данных.

 
     Язык Prolog, как интерпретатор, приглашает пользователя вводить информацию. Пользователь набирает запрос или имя функции. Выводится значение (истина - yes, или ложь - nо) этого запроса, а также возможные значения переменных запроса, присвоение которых делает запрос истинным (то есть унифицирует запрос). Если ввести символ ";", тогда отображается следующий набор значений переменных, унифицирующий запрос, и так до тех пор, пока не исчерпается весь набор возможных подстановок, после чего Prolog печатает no и ждет следующего запроса. Возврат каретки воспринимается как прекращение поиска дополнительных решений.

  Хотя  выполнение программы на языке Prolog основывается на спецификации предикатов, оно напоминает выполнение программ на аппликативных языках LISP или ML Разработка правил языка Prolog требует того же рекурсивного мышления, что и разработка программ на этих аппликативных языках.

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

  Семантическая сеть — информационная модель предметной области, имеющая вид ориентированного графа, вершины которого соответствуют объектам предметной области, а дуги задают отношения между ними. Объектами могут быть понятия, события, свойства, процессы. Таким образом, семантическая сеть является одним из способов представления знаний. В названии соединены термины из двух наук: семантика в языкознании изучает смысл предложений, а сеть в математике представляет собой разновидность графа — набора вершин, соединённых дугами. В семантической сети роль вершин выполняют понятия базы знаний, а дуги (причем направленные) задают отношения между ними. Таким образом, семантическая сеть отражает семантику предметной области в виде понятий и отношений. 

  Структура

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

  Графическое представление

  Основной  формой представления семантической сети является граф. Понятия семантической сети записываются в овалах или прямоугольниках и соединяются стрелками с подписями — дугами (см. рис.). Это наиболее удобно воспринимаемая человеком форма. Её недостатки проявляются, когда мы начинаем строить более сложные сети или пытаемся учесть особенности естественного языка.

  Математическая запись

  В математике граф представляется множеством вершин V и множеством отношений между ними E. Используя аппарат математической логики, приходим к выводу, что каждая вершина соответствует элементу предметного множества, а дуга — предикату.

Использование семантических сетей

 

   Концепция организации гипертекста напоминает однородную бинарную семантическую сеть, однако здесь есть существенное отличие:

  1. Связь, осуществляемая гиперссылкой, не имеет семантики, т. е. не описывает смысла этой связи. Назначение семантической сети состоит в том, чтобы описать взаимосвязи объектов, а не дополнительную информацию по предметной области. Человек может разобраться, зачем нужна та или иная гиперссылка, но компьютеру эта связь не понятна.
  2. Страницы, связываемые гиперссылками, являются документами, описывающими, как правило, проблемную ситуацию в целом. В семантической сети вершины (то, что связывают отношения) представляют собой понятия или объекты реального мира.

  Я попробую написать программу, которая  будет анализировать, и переводить SQL запросы на естественный язык.

 

    1. Выбор методов и средств  решения технического задания

  Данная  программа написана в среде разработки  Microsoft Visual C++.

  Microsoft Visual C++ представляет собой мощное профессиональное средство для создания приложений, которое можно использовать как отдельно, так и в составе Visual Studio 2005. Оно обеспечивает разработчиков улучшенной функциональностью среды, оптимизирующим компилятором, множеством расширений и дополнений, поддержкой новейших платформ, технологий и стандартов. Visual C++ базируется на стандартной реализации языка C++ — стандарте ANSI/ISO.

  Оснащенный  набором разнообразных мастеров (Wizard), формирующих программный код, этот продукт позволяет в считанные секунды создавать вполне работоспособное приложение Windows. Включенная в состав среды библиотека Microsoft Foundation Classes (MFC) позволяет с легкостью реализовать нужный графический интерфейс. 

  2  Разработка приложения

    1. Разработка  классов

   .

   В программе используется пользовательский  class Translator, в котором описаны поля и прототипы функций:

    QueryToWords - перевод запроса на естественный язык (идет работа со строками и помешение их в список отдельных слов).

   LoadSynonyms – загрузка синонимов (открытие файла с синонимами).

       Translate - переводит запрос на русский язык (идёт обращение к элементу массива через указатель, затем происходит загрузка синонимов с помощью функции LoadSynonyms и указатель становиться на начало списка и затем переводиться в цикле вся строка.

       TranslateWord – функция переводит одно слово на русский язык (в зависимости какое слово обрабатывается в данный момент ему подбирается синоним на русском языке)   
2.2 Программная реализация

      1.   Алгоритм работы программы

 

Рис1. Блок схема  программы

На  блок схемы показано как работает программа. Описание как работают функции, было описано в предыдущем пункте.

    2.3.1 Структура программы

                                               

     

     

Рис2. Структура программы

   Программа работает следующим образом:

     При нажатии на кнопку Перевести запускается метод Translate(...). В этом методе мы сначала разбиваем запрос на отдельные части, состоящие из 1-2 слов (select into). Это делает метод QueryToWords(...). Затем подгружаем базу с синонимами - LoadSynonyms(...). После этого в цикле переводим каждую часть запроса на русский язык TranslateWord()    

Информация о работе Перевод SQL запросов на естественный язык