СПОСОБ ГЕНЕРИРОВАНИЯ СИНТАКСИЧЕСКИ И СЕМАНТИЧЕСКИ ВЕРНЫХ КОМАНД
METHOD OF GENERATING SYNTACTICALLY AND SEMANTICALLY CORRECT COMMANDS

Изобретение относится к решениям в области систем управления базами данных (СУБД), более конкретно к способу генерирования синтаксически и семантически верных команд, устройству генерирования синтаксически и семантически верных команд и системе генерирования синтаксически и семантически верных команд.
УРОВЕНЬ ТЕХНИКИ
Из уровня техники широко известны формы Бэкуса-Наура (БНФ) для описания синтаксиса языков программирования, в частности языка SQL (Structured Query Language), который используется для построения запросов к базам данных (БД) (см., например, URL: http://docs.oracle.com/cd/E11882_01/server.112/e41084/ap_syntx002.htm#i631608).
Команды СУБД Oracle для управления экземпляром базы данных описаны в книге Diana Lorentz et al. «Oracle Database SQL Language Reference», 11g Release 1 (11.1), August 2010 (URL: http://docs.oracle.com/cd/B28359_01/server.111/b28286.pdf).
Все команды СУБД Oracle являются элементами языка SQL, разработанным компанией Oracle. Для описания синтаксиса SQL команд используются синтаксические диаграммы (СД) и упрощенный вариант БНФ. Системы команд в других продуктах Oracle, например PL/SQL, Backup and Recovery, Expdp, Impdp, также могут быть описаны с помощью БНФ.
Кроме СУБД Oracle существуют другие примеры СУБД для описания системы команд которых используются разновидности БНФ. Примером такой СУБД является Microsoft SQL Server (URL: http://msdn.microsoft.com/enus/library/ms177563%28v=sq1.90%29.aspx).
Из вышесказанного следует, что БНФ широко используются как средство описания синтаксиса систем команд современных СУБД. При этом функциональность современных СУБД такова, что число уникальных команд со всеми возможными вариантами их построения составляет несколько миллионов операторов.
Для работы с таким большим количеством команд (запросов) необходимы автоматизированные процедуры генерации необходимых пользователю команд.
Из уровня техники известен способ обработки форматированных данных, описанный в патенте US 7890978 В2, H04N 5/445, OPENTV INC., опубликованном 15.02.2011 на 40 листах.
Данное техническое решение только в общем виде описывает применение семантических и синтаксических правил по отношению к формированию запроса/команды и не может быть применено в качестве средства формирования синтаксически и семантически правильных команд, предназначенных для управления такими СУБД, как Oracle, Microsoft SQL и др.
Из уровня техники также известен способ генерирования дерева синтаксического анализа для анализа исходного кода программ, описанный в патенте US 5671416 A, G06F 9/45, ELSON DAVID, опубликованном 23.09.1997 на 37 листах.
Данное техническое решение только в общем виде описывает способ формирования дерева синтаксического анализа и не может быть применено в способе формирования синтаксически и семантически правильных команд, предназначенном для формирования команд для управления такими СУБД, как Oracle, Microsoft SQL и др.
Ближайшим аналогом заявляемого технического решения является техническое решение, описанное в патенте US 5812840 А, G06F 17/30, SPEEDWARE Ltee./Ltd., опубликованном 22.09.1998 на 62 листах.
В данном патенте описывается способ интерактивного построения синтаксически и семантически верного запроса для реляционной базы данных на основании выбора пользователя, при этом упомянутая база данных имеет множество таблиц, каждая из таблиц имеет множество столбцов и имеет заданную взаимосвязь с другими упомянутыми таблицами, при этом упомянутый способ включает следующие стадии:
представление пользователю выбираемого набора таблиц из выбираемых таблиц из числа таблиц, содержащихся в базе данных;
получение от пользователя выбора первой таблицы из упомянутых выбираемых таблиц;
представление пользователю выбираемого набора столбцов из выбираемых столбцов из числа столбцов, основанных на упомянутой первой выбранной таблице;
получение от пользователя выбора первого столбца из упомянутых выбираемых столбцов;
представление пользователю выбираемого набора операций над выбираемым столбцом, применимых к упомянутому первому выбранному столбцу;
получение от пользователя выбора первой операции над выбираемым столбцом;
определение из выбранных таблицы, столбца и операции над столбцом и из информации о направленности и мощности связей между таблицами сущности неразрешенных таблиц, столбцов и операций над столбцами, которые, если будут выбраны пользователям, приведут к построению семантически неверного запроса;
генерирование первой обновленной версии упомянутого набора выбираемых таблиц, упомянутого набора выбираемых столбцов, упомянутого набора выбираемых операций над столбцами, при этом упомянутые наборы не включают неразрешенные таблицы, столбцы и операции над столбцами соответственно; и
представление пользователю первой обновленной версии набора выбираемых таблиц.
Данный способ основывается на интерактивном взаимодействии пользователя и программы и не обеспечивает высокой степени точности, автоматизации процесса формирования синтаксически и семантически верных команд. Кроме того, в данном техническом решении отсутствует применение семантических правил по отношению к формируемому запросу, позволяющее снизить объем вычислений, необходимых для формирования синтаксически и семантически верного запроса.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Исходя из этого, целью настоящего изобретения является обеспечение способа, устройства и системы автоматической генерации синтаксически и семантически верных команд, обеспечивающих генерацию синтаксически и семантически верных команд с высокой степенью точности и автоматизации.
Техническим результатом является обеспечение автоматизации и повышение точности генерирования команд СУБД и снижение объема вычислений, требуемого для генерирования команд СУБД, за счет генерирования синтаксически и семантически верных команд СУБД.
Варианты осуществления настоящего изобретения относятся к способам, устройствам и системам для генерирования синтаксически и семантически верных команд, обеспечивающих выполнение последовательных этапов, на которых осуществляется:
а) преобразование, по меньшей мере, одной текстовой формы Бэкуса-Науэра, содержащей мета-описание, по меньшей мере, одной команды, подлежащей преобразованию в синтаксически и семантически верную команду, в, по меньшей мере, одну реляционную форму Бэкуса-Науэра, содержащую распознаваемое системой управления базой данных (СУБД) мета-описание команды, подлежащей преобразованию в синтаксически и семантически верную команду;
б) преобразование, по меньшей мере, одного текстового семантического правила, содержащего, по меньшей мере, одно ограничение на исполнение команды, подлежащей преобразованию в синтаксически и семантически верную команду, в, по меньшей мере, одно реляционное семантическое правило, содержащее, по меньшей мере, одно распознаваемое СУБД ограничение на исполнение команды, подлежащей преобразованию в синтаксически и семантически верную команду;
в) идентификация, по меньшей мере, одной команды, подлежащей преобразованию в синтаксически и семантически верную команду;
г) назначение, по меньшей мере, основного семантического правила для идентифицированной команды, подлежащей преобразованию в синтаксически и семантически верную команду, причем основное семантическое правило включает, по меньшей мере, одно реляционное семантическое правило;
д) формирование результирующей динамической структуры для идентифицированной команды, подлежащей преобразованию в синтаксически и семантически верную команду;
е) идентификация элементов упомянутого основного семантического правила для идентифицированной команды, подлежащей преобразованию в синтаксически и семантически верную команду, содержащихся в результирующей динамической структуре, сформированной для идентифицированной команды, подлежащей преобразованию в синтаксически и семантически верную команду;
ж) применение всех элементов всех реляционных семантических правил, содержащихся в упомянутом, по меньшей мере, одном основном семантическом правиле, содержащемся в результирующей динамической структуре, сформированной для идентифицированной команды, подлежащей преобразованию в синтаксически и семантически верную команду, к идентифицированной команде, подлежащей преобразованию в синтаксически и семантически верную команду;
з) генерирование синтаксически и семантически верной команды на основе примененных к идентифицированной команде, подлежащей преобразованию в синтаксически и семантически верную команду, всех элементов всех реляционных семантических правил, из упомянутого, по меньшей мере, одного основного семантического правила, содержащегося в результирующей динамической структуре, сформированной для идентифицированной команды, подлежащей преобразованию в синтаксически и семантически верную команду.
Данная сущность представлена для того, чтобы представить ряд концепций в упрощенной форме, которые далее описываются подробно. Данная сущность не предназначена для того, чтобы определить ключевые признаки или существенные признаки заявленного объекта изобретения, а также не предназначена для того, чтобы ее использовали в качестве вспомогательного средства при определении объема правовой охраны заявленного технического решения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Иллюстративные варианты осуществления настоящего изобретения описываются далее подробно со ссылкой на прилагаемые чертежи, которые включены в данный документ посредством ссылки, и на которых:
Фиг.1-7 иллюстрируют возможные варианты ячеек, являющихся подмножеством БНФ одного уровня вложенности, ограниченные структурными элементами или вертикальной чертой.
Фиг.8 иллюстрирует случай вырожденной ячейки.
Фиг.9 иллюстрирует первый уровень вложенности.
Фиг.10 иллюстрирует уровни вложенности с первого по четвертый.
Фиг.11 иллюстрирует текстовую БНФ, описывающую команду CREATE TABLE.
Фиг.12 иллюстрирует реляционную БНФ, описывающую команду CREATE TABLE.
Фиг.13 иллюстрирует реляционное семантическое правило, применимое к команде CREATE TABLE.
Фиг.14 иллюстрирует реляционную БНФ для команды create_table/column_definition.
Фиг.15 иллюстрирует формализованное описание результирующей динамической структуры для команды CREATE TABLE.
Фиг.16 графически изображает примерный способ генерирования синтаксически и семантически верных команд в соответствии с одним вариантом осуществления изобретения.
Фиг.17 графически изображает примерное вычислительное устройство, пригодное для осуществления вариантов осуществления настоящего изобретения.
Фиг.18 графически изображает примерную систему, пригодную для осуществления вариантов осуществления настоящего изобретения.
ВАРИАНТЫ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
Далее приводятся варианты осуществления настоящего изобретения, раскрывающие примеры его реализации в частных исполнениях. Тем не менее, само описание не предназначено для ограничения объема прав, предоставляемых данным патентом. Скорее, следует исходить из того, что заявленное изобретение также может быть осуществлено другими способами таким образом, что будет включать в себя отличающиеся этапы или комбинации этапов, аналогичных этапам, описанным в данном документе, в сочетании с другими существующими и будущими технологиями.
В первом варианте осуществления настоящего изобретения обеспечивается способ генерирования синтаксически и семантически верных команд, заключающийся в:
а) преобразовании, по меньшей мере, одной текстовой формы Бэкуса-Науэра, содержащей мета-описание, по меньшей мере, одной команды, подлежащей преобразованию в синтаксически и семантически верную команду, в, по меньшей мере, одну реляционную форму Бэкуса-Науэра, содержащую распознаваемое системой управления базой данных (СУБД) мета-описание команды, подлежащей преобразованию в синтаксически и семантически верную команду;
б) преобразовании, по меньшей мере, одного текстового семантического правила, содержащего, по меньшей мере, одно ограничение на исполнение команды, подлежащей преобразованию в синтаксически и семантически верную команду, в, по меньшей мере, одно реляционное семантическое правило, содержащее, по меньшей мере, одно распознаваемое СУБД ограничение на исполнение команды, подлежащей преобразованию в синтаксически и семантически верную команду;
в) идентификации, по меньшей мере, одной команды, подлежащей преобразованию в синтаксически и семантически верную команду;
г) назначении, по меньшей мере, основного семантического правила для идентифицированной команды, подлежащей преобразованию в синтаксически и семантически верную команду, причем основное семантическое правило включает, по меньшей мере, одно реляционное семантическое правило;
д) формировании результирующей динамической структуры для идентифицированной команды, подлежащей преобразованию в синтаксически и семантически верную команду;
е) идентификации элементов упомянутого основного семантического правила для идентифицированной команды, подлежащей преобразованию в синтаксически и семантически верную команду, содержащихся в результирующей динамической структуре, сформированной для идентифицированной команды, подлежащей преобразованию в синтаксически и семантически верную команду;
ж) применении всех элементов всех реляционных семантических правил, содержащихся в упомянутом, по меньшей мере, одном основном семантическом правиле, содержащемся в результирующей динамической структуре, сформированной для идентифицированной команды, подлежащей преобразованию в синтаксически и семантически верную команду, к идентифицированной команде, подлежащей преобразованию в синтаксически и семантически верную команду.
з) генерировании синтаксически и семантически верной команды на основе примененных к идентифицированной команде, подлежащей преобразованию в синтаксически и семантически верную команду, всех элементов всех реляционных семантических правил, из упомянутого, по меньшей мере, одного основного семантического правила, содержащегося в результирующей динамической структуре, сформированной для идентифицированной команды, подлежащей преобразованию в синтаксически и семантически верную команду.
Помимо этого, способ генерирования синтаксически и семантически верной команды может быть дополнен этапом пропуска необязательных элементов, при этом необязательные элементы удаляются; этапом дублирования повторяющихся элементов; этапом выбора элементов; этапом замены нетерминальных элементов телом БНФ; этапом присвоения значения нетерминальным элементам; этапом идентификации всех семантических правил, ассоциированных с командой, подлежащей преобразованию в синтаксически и семантически верную команду; этапом идентификации всех реляционных семантических правил, ассоциированных с командой, подлежащей преобразованию в синтаксически и семантически верную команду, при этом те реляционные правила, которые ссылаются на команду, отличны от реляционных правил, которые не ссылаются на упомянутую команду; этапом определения достаточности применения реляционного семантического правила к команде, подлежащей преобразованию в синтаксически и семантически верную команду; этапом демонстрации фрагмента документации, относящейся к команде, подлежащей преобразованию в синтаксически и семантически верную команду; этапом возврата к предыдущему действию; этапом демонстрации упомянутой команды, при этом такая демонстрация содержит все включенные в команду терминальные элементы и нетерминальные элементы, при этом такие элементы могут быть применены к другим командам, подлежащим преобразованию в синтаксически и семантически верную команду.
В другом варианте осуществления настоящего изобретения обеспечивается устройство для генерирования синтаксически и семантически верных команд, которое может представлять собой, но не ограничиваться: персональный компьютер, портативный компьютер, планшетный компьютер, карманный компьютер, смартфон, тонкий клиент, машину баз данных и тому подобное. Устройство обязательно содержит один или более процессоров, машиночитаемый носитель данных (память) и модули ввода/вывода (I/O). В качестве примера, но не ограничения, машиночитаемый носитель данных может включать в себя оперативную память (RAM); постоянное запоминающее устройство (ROM); электрически стираемое программируемое постоянное запоминающее устройство (EEPROM); флэш-память или другие технологии памяти; CDROM, цифровой универсальный диск (DVD) или другие оптические или голографические носители данных; магнитные кассеты, магнитную пленку, запоминающее устройство на магнитных дисках или другие магнитные запоминающие устройства, несущие волны или другой носитель данных, который может быть использован для кодирования требуемой информации и к которому может быть осуществлен доступ посредством описываемого устройства. Память включает в себя носитель данных на основе запоминающего устройства компьютера в форме энергозависимой или энергонезависимой памяти, или их комбинации. Примерные аппаратные устройства включают в себя твердотельную память, накопители на жестких дисках, накопители на оптических дисках и т.д. В памяти хранится примерная среда, в которой при помощи компьютерных команд или кодов, хранящихся в памяти устройства, может быть осуществлена процедура генерирования команды. Устройство содержит один или более процессоров, которые предназначены для выполнения компьютерных команд или кодов, хранящихся в памяти устройства с целью обеспечения выполнения процедуры генерирования команды. Модули I/O представляют собой, но не ограничиваются, типичные и известные из уровня техники средства управления устройством: манипулятор типа «мышь», клавиатура, джойстик, тачпад, трекбол, электронное перо, стилус, сенсорный дисплей и тому подобное. Также модули I/O представляют собой, но не ограничиваются, типичные и известные из уровня техники средства демонстрирования информации: монитор, проектор, принтер, графопостроитель и тому подобное. Компьютерные команды или коды, хранящиеся в памяти, предназначены для выполнения способа генерирования синтаксически и семантически верных команд. Эти команды включают, по меньшей мере, команды преобразования, по меньшей мере, одной текстовой формы Бэкуса-Науэра, содержащей мета-описание, по меньшей мере, одной команды, подлежащей преобразованию в синтаксически и семантически верную команду, в, по меньшей мере, одну реляционную форму Бэкуса-Науэра, содержащую распознаваемое системой управления базой данных (СУБД) мета-описание команды, подлежащей преобразованию в синтаксически и семантически верную команду; команды преобразования, по меньшей мере, одного текстового семантического правила, содержащего, по меньшей мере, одно ограничение на исполнение команды, подлежащей преобразованию в синтаксически и семантически верную команду, в, по меньшей мере, одно реляционное семантическое правило, содержащее, по меньшей мере, одно распознаваемое СУБД ограничение на исполнение команды, подлежащей преобразованию в синтаксически и семантически верную команду; команды идентификации, по меньшей мере, одной команды, подлежащей преобразованию в синтаксически и семантически верную команду; команды назначения по меньшей мере, основного семантического правила для идентифицированной команды, подлежащей преобразованию в синтаксически и семантически верную команду, причем основное семантическое правило включает, по меньшей мере, одно реляционное семантическое правило; команды формирования результирующей динамической структуры для идентифицированной команды, подлежащей преобразованию в синтаксически и семантически верную команду; команды идентификации элементов упомянутого основного семантического правила для идентифицированной команды, подлежащей преобразованию в синтаксически и семантически верную команду, содержащихся в результирующей динамической структуре, сформированной для идентифицированной команды, подлежащей преобразованию в синтаксически и семантически верную команду; команды применения всех элементов всех реляционных семантических правил, содержащихся в упомянутом, по меньшей мере, одном основном семантическом правиле, содержащемся в результирующей динамической структуре, сформированной для идентифицированной команды, подлежащей преобразованию в синтаксически и семантически верную команду, к идентифицированной команде, подлежащей преобразованию в синтаксически и семантически верную команду; команды генерирования синтаксически и семантически верной команды на основе примененных к идентифицированной команде, подлежащей преобразованию в синтаксически и семантически верную команду, всех элементов всех реляционных семантических правил, из упомянутого, по меньшей мере, одного основного семантического правила, содержащегося в результирующей динамической структуре, сформированной для идентифицированной команды, подлежащей преобразованию в синтаксически и семантически верную команду; команды пропуска (удаления) необязательных элементов; команды дублирования повторяющихся элементов; команды выбора элементов; команды замены нетерминальных элементов телом БНФ; команды присвоения значения нетерминальным элементам; команды идентификации всех семантических правил, ассоциированных с командой, подлежащей преобразованию в синтаксически и семантически верную команду; команды идентификации всех реляционных семантических правил ассоциированных с командой, подлежащей преобразованию в синтаксически и семантически верную команду, при этом идентифицированные реляционные правила, которые ссылаются на команду, отличны от реляционных правил, которые не ссылаются на упомянутую команду; команды определения достаточности применения реляционного семантического правила к команде, подлежащей преобразованию в синтаксически и семантически верную команду; команды демонстрации фрагмента документации, относящейся к команде, подлежащей преобразованию в синтаксически и семантически верную команду; команды возврата к предыдущему действию; команды демонстрации упомянутой команды, при этом такая демонстрация содержит все включенные в команду терминальные элементы и нетерминальные элементы, при этом такие элементы могут быть применены к другим командам, подлежащим преобразованию в синтаксически и семантически верную команду.
Несмотря на то, что в примерном варианте осуществления изобретения перечисленные компьютерные команды написаны на языке PL/SQL, не следует считать, что данный пример осуществления изобретения ограничивает написание перечисленных компьютерных команд только данным языком программирования. В действительности перечисленные команды могут быть написаны на любом известном или вновь созданном языке программирования.
В другом варианте осуществления настоящего изобретения обеспечивается устройство для генерирования синтаксически и семантически верных команд, имеющее в своем составе один или более процессоров, память, модули I/O и аналогичное устройству, описанному в предыдущем варианте осуществления настоящего изобретения, но при этом отличающееся тем, что содержит, по меньшей мере, блок или множество блоков преобразования, по меньшей мере, одной текстовой формы Бэкуса-Науэра, содержащей мета-описание, по меньшей мере, одной команды, подлежащей преобразованию в синтаксически и семантически верную команду, в, по меньшей мере, одну реляционную форму Бэкуса-Науэра, содержащую распознаваемое системой управления базой данных (СУБД) мета-описание команды, подлежащей преобразованию в синтаксически и семантически верную команду; блок или множество блоков преобразования, по меньшей мере, одного текстового семантического правила, содержащего, по меньшей мере, одно ограничение на исполнение команды, подлежащей преобразованию в синтаксически и семантически верную команду, в, по меньшей мере, одно реляционное семантическое правило, содержащее, по меньшей мере, одно распознаваемое СУБД ограничение на исполнение команды, подлежащей преобразованию в синтаксически и семантически верную команду; блок или множество блоков идентификации, по меньшей мере, одной команды, подлежащей преобразованию в синтаксически и семантически верную команду; блок или множество блоков назначения по меньшей мере, основного семантического правила для идентифицированной команды, подлежащей преобразованию в синтаксически и семантически верную команду, причем основное семантическое правило включает, по меньшей мере, одно реляционное семантическое правило; блок или множество блоков формирования результирующей динамической структуры для идентифицированной команды, подлежащей преобразованию в синтаксически и семантически верную команду; блок или множество блоков идентификации элементов упомянутого основного семантического правила для идентифицированной команды, подлежащей преобразованию в синтаксически и семантически верную команду, содержащихся в результирующей динамической структуре, сформированной для идентифицированной команды, подлежащей преобразованию в синтаксически и семантически верную команду; блок или множество блоков применения всех элементов всех реляционных семантических правил, содержащихся в упомянутом, по меньшей мере, одном основном семантическом правиле, содержащемся в результирующей динамической структуре, сформированной для идентифицированной команды, подлежащей преобразованию в синтаксически и семантически верную команду, к идентифицированной команде, подлежащей преобразованию в синтаксически и семантически верную команду; блок или множество блоков генерирования синтаксически и семантически верной команды на основе примененных к идентифицированной команде, подлежащей преобразованию в синтаксически и семантически верную команду, всех элементов всех реляционных семантических правил, из упомянутого, по меньшей мере, одного основного семантического правила, содержащегося в результирующей динамической структуре, сформированной для идентифицированной команды, подлежащей преобразованию в синтаксически и семантически верную команду; блок или множество блоков пропуска (удаления) необязательных элементов; блок или множество блоков дублирования повторяющихся элементов; блок или множество блоков выбора элементов; блок или множество блоков замены нетерминальных элементов телом БНФ; блок или множество блоков присвоения значения нетерминальным элементам; блок или множество блоков идентификации всех семантических правил, ассоциированных с командой, подлежащей преобразованию в синтаксически и семантически верную команду; блок или множество блоков идентификации всех реляционных семантических правил. ассоциированных с командой, подлежащей преобразованию в синтаксически и семантически верную команду, при этом идентифицированные реляционные правила, которые ссылаются на команду, отличны от реляционных правил, которые не ссылаются на упомянутую команду; блок или множество блоков определения достаточности применения реляционного семантического правила к команде, подлежащей преобразованию в синтаксически и семантически верную команду; блок или множество блоков демонстрации фрагмента документации, относящейся к команде, подлежащей преобразованию в синтаксически и семантически верную команду; блок или множество блоков возврата к предыдущему действию; блок или множество блоков демонстрации упомянутой команды, при этом такая демонстрация содержит все включенные в команду терминальные элементы и нетерминальные элементы, при этом такие элементы могут быть применены к другим командам, подлежащим преобразованию в синтаксически и семантически верную команду.
В другом варианте осуществления настоящего изобретения обеспечивается система для генерирования синтаксически и семантически верных команд. Примерная система для генерирования синтаксически и семантически верных команд включает в себя сеть передачи данных. Сеть передачи данных может включать в себя, но не ограничиваться, одну или более локальных сетей (LAN) и/или глобальных сетей (WAN). Такие сетеобразующие среды обычно используются в офисах, корпоративных компьютерных сетях, внутрикорпоративных сетях и информационно-телекоммуникационной сети Интернет. Соответственно упомянутая сеть передачи данных очевидна для специалиста и далее дополнительно не описывается. Примерная система для генерирования синтаксически и семантически верных команд дополнительно включает в себя базу данных и множество устройств для генерирования синтаксически и семантически верных команд, которые представляют собой одни из устройств, описанных в предыдущих вариантах осуществления настоящего изобретения, или их комбинации, которые соответственно дополнительно не описываются. Примерная система для генерирования синтаксически и семантически верных команд дополнительно содержит серверное вычислительное устройство, в том числе, но не ограничиваясь, машину баз данных, которое сохраняет и содействует манипуляции компьютерными командами или кодами, ранее описанными в данном документе, которые соответственно дополнительно не описываются.
ДЕТАЛЬНОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Описанные в данном разделе возможные осуществления вариантов настоящего изобретения представлены на примере генерирования синтаксически и семантически верной команды create_table, представляющей собой команду управления СУБД Oracle. Несмотря на то, что дальнейшее детальное описание чертежей составлено в отношении этой команды, способа генерирования синтаксически и семантически верной команды create_table, устройства и системы для генерирования синтаксически и семантически верной команды create_table, необходимо отметить, что в действительности ни один из вариантов осуществления настоящего изобретения не ограничивается генерированием синтаксически и семантически верной команды create_table. Способ, устройство или система могут быть применены для любой команды управления любой СУБД или запроса любой СУБД, которые могут быть описаны с помощью мета-языка БНФ и к которым могут быть применены семантические правила.
Для более подробного и детального раскрытия действий, выполняемых способом, необходимо подробнее рассмотреть свойства БНФ.
Мета-язык БНФ является стандартным языком для описания синтаксиса языков программирования.
Упрощенный вариант БНФ включает следующие символы и соглашения:
«[» и «]» - скобки, ограничивающие необязательные элементы;
«{» и «}» - фигурные скобки, ограничивающие только один требуемый элемент;
«|» - вертикальная черта, отделяющая альтернативы внутри скобок или фигурных скобок (разделитель);
«…» - эллипсис, указывающий на то, что синтаксический элемент перед ним может быть повторен (признак повторяемости);
«разделители» - разделители, отличающиеся от скобок, фигурных скобок, вертикальной черты и эллипсиса, которые должны быть введены как показано.
Далее под структурными элементами (СЭ) понимаются пары соответствующих скобок «{», «}» и «[», «]». СЭ и вертикальная черта «|» являются вспомогательными. Они не являются элементами того языка программирования, который описывается с помощью метаязыка БНФ. Кроме СЭ, мета-описание языка программирования включает терминальные элементы (ТЭ) и нетерминальные элементы (НТЭ). ТЭ, или ключевые слова, описываются полужирным шрифтом и верхним регистром. НТЭ описываются нижним регистром и в процессе генерирования команды заменяются именем или значением. Необходимость такой записи обусловлена функционированием СУБД, которая распознает команды, основываясь на форме их записи - синтаксисе. Команды, записанные с нарушением требований, изложенных в документации к СУБД, не будут распознаны и обработаны СУБД. Это обусловлено тем, что при обработке команд СУБД команды будут переведены в машинный код, который будет обработан процессором СУБД. В том случае если синтаксис команд, записанных на языке высокого уровня, будет нарушен, такие команды соответственно будут переведены в неправильный машинный код, который не будет обработан процессором СУБД. Далее под элементами (ЭЛ) понимаются ТЭ или НТЭ, или разделитель.
Для целей более полного раскрытия настоящего изобретения необходимо рассмотреть такой элемент БНФ, как ячейка.
Ячейка - подмножество БНФ одного уровня вложенности, ограниченное СЭ или вертикальной чертой. Фиг.
На фиг.1-7 показаны все возможные варианты ячеек.
Символ «….» внутри ячейки обозначает любую верную БНФ. Помимо этого существуют также вырожденные ячейки, внутри которых нет ЭЛ, и есть только СЭ.
Фиг.8 иллюстрирует случай вырожденной ячейки. На фиг.8 два внешних СЭ не содержат ни одного ЭЛ, только СЭ. Третий СЭ содержит ЭЛ.
Для целей более полного раскрытия настоящего изобретения необходимо рассмотреть такое явление как уровень вложенности (УВ).
Первый УВ (УВ1) соответствует ЭЛ и СЭ и представляет собой уровень SQL команды, генерирование которой осуществляется в соответствии с настоящим изобретением. Фиг.9 иллюстрирует первый уровень вложенности. Содержимое СЭ в свою очередь относится ко второму УВ (УВ2).
Фиг.10 иллюстрирует уровни вложенности с первого по четвертый. ЭЛ «АААА», «bbbb», «dddd» и разделителю «|» соответствует УВ2. ЭЛ следующего вложенного СЭ, а именно ЭЛ «СССС», «xxxx» и «|», соответствует третий УВ (УВ3). ЭЛ «YYYY» соответствует четвертый УВ (УВ4). УВ1 соответствует вырожденная ячейка, так как на этом уровне нет СЭ.
На УВ2 находятся следующие ячейки:
Ячейка 1, ограниченная СЭ «{» и «|»;
Ячейка 2, ограниченная СЭ «|» и «}».
На УВЗ находятся следующие ячейки:
Ячейка 3, ограниченная «[» и «|»;
Ячейка 4, ограниченная «|» и «]».
На УВ4 находится следующая ячейка:
Ячейка 5, ограниченная - «{» и «}».
В данном примере СЭ «{», «}» и «[», «]» взаимозаменяемы.
Далее для целей более полного раскрытия настоящего изобретения необходимо рассмотреть реляционные БНФ (рБНФ).
В настоящем изобретении рБНФ используются как элементы автоматизированной системы для генерирования всего множества синтаксически верных команд управления СУБД и содержатся в основном семантическом правиле, назначаемом для команды, подлежащей преобразованию в синтаксически и семантически верную команду. Однако только синтаксически верная команда не будет выполнена СУБД корректно. Помимо верного синтаксиса команд необходимо также применение к такой команде верных семантических правил. Семантические правила включают в себя уточнения и исключения, которые используются при обработке соответствующих команд. Эти семантические правила также должны быть формализованы (переведены в реляционную форму), их применение должно быть автоматизировано для обеспечения генерирования синтаксически и семантически верных команд. Далее о процессе формализации семантических правил будет рассказано подробней.
При осуществлении способа по настоящему изобретению происходит преобразование текстовых БНФ в реляционные БНФ. При таком преобразовании сохраняются все СЭ и все ЭЛ, которые ранее содержались в текстовых БНФ. Вложенность СЭ БНФ представляется иерархическими связями между записями реляционной таблицы, в виде которой представлена рБНФ. Начало и конец СЭ представляются ссылками между соответствующими записями таблицы. Ячейки одного УВ представляются однонаправленным списком всех СЭ для каждого УВ по отдельности.
Такими СЭ применительно к рБНФ являются:
открывающие элементы (ОЭ): «{» или «[», или «|»; и
закрывающие элементы (ЗЭ): «}» или «]», или «|».
Для признака повторяемости формируется отдельный атрибут (столбец) в рБНФ. Для повторяющегося СЭ этому атрибуту присваивается непустое значение.
Процесс преобразования текстовой БНФ в рБНФ включает в себя этапы:
аа) идентификации БНФ, на котором идентифицируется текстовая БНФ, подлежащая преобразованию в рБНФ, и каждому элементу текстовой БНФ (каждой записи текстовой БНФ) присваивается уникальный идентификатор (ID);
бб) формирования промежуточной таблицы, содержащей все элементы текстовой БНФ;
вв) разбиения элементов промежуточной таблицы на отдельные СЭ, ТЭ, НТЭ, разделители и признаки повторяемости;
гг) формирования из полученных элементов итоговой таблицы, содержащей множество записей, каждая из которых содержит только один полученный элемент;
дд) идентификации всех ОЭ и ЗЭ и генерирование ссылок (связей) между соответствующими ОЭ и ЗЭ;
ее) генерирования иерархических ссылок (связей) для всех вложенных СЭ, причем генерирование иерархических ссылок осуществляется таким образом, что вложенный СЭ ссылается на СЭ, внутри которого он расположен;
жж) идентификации всех признаков повторяемости;
зз) присвоения всем СЭ, расположенным перед признаком повторяемости иного, отличного от идентифицированного, признака повторяемости и удаления всех идентифицированных ранее признаков повторяемости, за исключением вновь присвоенных;
ии) формирования однонаправленного списка ячеек.
Фиг.11 иллюстрирует текстовую БНФ, описывающую команду CREATE TABLE. На этапе преобразования текстовой БНФ в рБНФ осуществляется идентификация всех СЭ и ЭЛ, содержащихся в текстовой БНФ. В данном случае ЭЛ являются ЭЛ «CREATE», «GLOBAL», «TEMPORARY», «TABLE», «schema.», «table», «relational_table», «object_table», «XMLType_table», ограниченные соответствующими СЭ - «[» и «]» для «GLOBAL» и «TEMPORARY», другие «[» и «]» для «schema.», «{» и «}» для вложенных альтернативных ЭЛ «relational_table», «object_table», «XMLType_table» и разделители «|» для них.
Фиг.12 иллюстрирует реляционную БНФ, описывающую команду CREATE TABLE, полученную путем преобразования текстовой БНФ, проиллюстрированной на фиг.11 в рБНФ. На фиг.12 столбец ID содержит уникальный идентификатор записи (ЭЛ), столбец FILE_NAME содержит имя преобразовываемой БНФ, столбец LINE содержит элемент БНФ (запись БНФ), столбец NXT содержит для открывающей структурной скобки ссылку на закрывающую структурную скобку, а для закрывающей структурной скобки - ссылку на открывающую структурную скобку, столбец PREV содержит ссылку на внешний СЭ или 0 для самого внешнего СЭ, столбец NREF содержит ссылку на предыдущий ограничительный элемент ячейки. Если СЭ является повторяющимся, соответствующей ячейке в столбце DEEP присваивается значение 1 (в примере не рассмотрено). Кроме того, каждая рБНФ обладает уникальным ключом, с каждым элементом которого может быть ассоциирован соответствующий элемент уникальных ключей реляционных семантических правил (рСП).
В общем виде рБНФ содержит следующие атрибуты:
имя рБНФ - название конкретной команды или фрагмент документации СУБД (название текстовой БНФ);
тело рБНФ - формализованная запись текстовой БНФ;
уникальный ключ рБНФ - любой уникальный ключ, который может быть сформирован из одной или более записей, содержащихся в рБНФ.
В частности, таким ключом может быть ключ, сформированный из номера строки (ID), имени рБНФ (текстовой БНФ) и записи в одной из ячеек рБНФ.
Например, для рБНФ, проиллюстрированной на фиг.12, уникальным ключом является комбинация записей из столбцов ID и FILE_NAME и LINE, расположенных на одной строке.
При выполнении процедуры генерирования синтаксически и семантически верной команды над рБНФ могут выполняться следующие действия:
для необязательных СЭ (СЭ, заключенных в скобки «[» и «]») может быть применим пропуск, при этом такой СЭ может быть удален из рБНФ;
для СЭ, являющегося повторяющимся (СЭ, записанный перед признаком повторяемости «…»), может быть применено дублирование, создающее копию такого СЭ и записывающего ее следом за исходным СЭ;
для ЭЛ может быть применен выбор, при этом ячейка, в которую записан ЭЛ определяется как выбранная, а СЭ, в котором находится ячейка, заменяется выбранной ячейкой, при этом выбранная ячейка переходит на более высокий УВ;
для НТЭ, который является рБНФ, может быть применена замена НТЭ телом рБНФ;
для НТЭ, который не является БНФ, может быть применена процедура присвоения значения;
если для ЭЛ определены рСП, то к такому ЭЛ может быть применена процедура вывода всех рСП, сопровождающаяся указанием на результат выполнения каждого рСП;
для ЭЛ может быть применена процедура вывода фрагмента документации СУБД, который относится к такому ЭЛ;
на основе списка ЭЛ, находящихся на УВ1, может быть сгенерирована SQL команда.
Более подробно процесс генерирования синтаксически и семантически верной SQL команды может быть представлен в виде цикла:
ааа) на УВ1 выбираются НТЭ, являющиеся именами БНФ;
ббб) выбранные НТЭ заменяются соответствующими телами БНФ;
ввв) если на УВ2 есть необязательный СЭ, то он может быть пропущен (удален);
ггг) если на УВ2 есть повторяющийся СЭ, тогда для него может быть сгенерирована копия повторяющегося СЭ, которая вставляется вслед за текущим.
ддд) так как УВ2 в общем случае состоит из нескольких ячеек, может быть осуществлен выбор требуемых ячеек;
ддд1) если выбираемая ячейка оказывается вырожденной, выбор осуществляется на один УВ ниже и до тех пор, пока не будет выбрана ячейка, содержащая ЭЛ;
ддд2) после выбора ячейки, содержащей ЭЛ, все вырожденные ячейки, кроме вырожденных ячеек УВ2, удаляются, а выбранная ячейка заменят собой СЭ, в котором она находится, и таким образом переходит на один УВ выше;
еее) если на УВ2 есть ячейка, содержащая ЭЛ, которая может быть выбрана, осуществляется возврат к шагу ввв), если нет, то осуществляется переход к шагу жжж);
жжж) если на УВ1 есть НТЭ, который является именем БНФ, то осуществляется переход к шагу ааа), если нет, то цикл формирования SQL команды завершается.
Таким образом, такой способ генерирования синтаксически и семантически верной команды может быть применен для любой конечной БНФ, т.к. выбор ЭЛ приводит к переносу ячейки, содержащей ЭЛ, на УВ выше.
Далее для целей более полного раскрытия настоящего изобретения необходимо рассмотреть семантические правила (СП).
Главная особенность рБНФ состоит в том, что она содержит записи всех СЭ, ТЭ, НТЭ, разделители и признаки повторяемости, которые представлены в документации СУБД. Это позволяет использовать их при создании рСП.
Семантические правила - это фрагменты текста документации СУБД, которые накладывают дополнительные ограничения на исполнение (выполнение) команд в СУБД.
Например, для команды create_table/column_definition в документации СУБД Oracle существует указание:
If you specify AS subquery when creating an index-organized table, then you must specify column, and you must omit data type.
В данном примере курсивом выделен текстовый фрагмент документации СУБД Oracle, определяющий дополнительные условия, выполнение которых необходимо для корректной работы команды create_table/column_definition, представляющей собой команду управления СУБД Oracle. Такие семантические правила сами по себе не могут быть распознаны СУБД и должны быть формализованы и представлены в виде рСП. Основное СП, назначаемое для команды, подлежащей преобразованию в синтаксически и семантически верную команду, может быть формализовано и представлено в виде совокупности рСП, как показано на фиг.13. В соответствии с фиг.13 первый столбец содержит номер элемента рСП, второй столбец - ГО правила, третий столбец - номер элемента рБНФ, четвертый столбец - имя рСП, такое же, как у рБНФ, к которому рСП применяется, пятый столбец - соответствующий ТЭ или НТЭ, к которому применяется правило, шестой столбец - возможные операции над элементом, за счет которых может быть осуществлен выбор элемента, к которому применяется элемент рСП, при этом элемент может быть проверен на наличие значения, присвоенного элементу, отображаемое в седьмом столбце, восьмой столбец - логическая функция, девятый столбец - комментарий, десятый столбец - фрагмент документации (в данном примере не используется), одиннадцатый столбец - указание на команду, к которой применяется правило, двенадцатый столбец - статус правила, тринадцатый столбец - признак активности правила. Кроме того, каждое рСП обладает уникальным ключом, с которым может быть ассоциирована соответствующая рБНФ. Уникальный ключ рСП - любой уникальный ключ, который может быть сформирован из одной или более записей, содержащихся в рСП, ассоциированный с соответствующей рБНФ. В частности, таким ключом может быть ключ, сформированный из номера строки (ID) в рБНФ, имени рБНФ (текстовой БНФ) и записи в одной из ячеек рСП. Например, для рСП, проиллюстрированного на фиг.13, уникальным ключом является комбинация записей из столбцов NO (третий столбец) и FILE_NAME (четвертый столбец) и LINE (пятый столбец), расположенных на одной строке.
Таким образом при выполнении процедуры генерирования синтаксически и семантически верной команды осуществляется проверка выполнения каждого правила, содержащегося в рСП. Например, для команды create_table выполняется проверка рСП physical_properties, table_properties, table_properties.subquery, column_definition.column, column_definition.datatype. Если все рСП выполнены, значит, выполнено соответствующее основное СП. Кроме того, помимо рСП, содержащихся в назначенном основном СП, к команде, подлежащей преобразованию в синтаксически и семантически верную команду, могут применяться и другие рСП, содержащиеся в других, неосновных СП.
В общем виде формирование рСП может быть представлено в виде этапов, на которых:
аааа) из документации СУБД выбирается СП;
бббб) формируется список рСП для реализации выбранного СП;
вввв) каждое рСП представляет собой мета-описание операций, которые выполняются с соответствующим элементом рБНФ.
Операции, выполняемые с соответствующим элементом рБНФ, могут быть, но не ограничиваться операцией проверки значения, операцией проверки типа значения, операцией проверки выбора элемента, операцией присваивания значения элементу. К операциям применимы операции логического объединения функциями OR или AND и операции логического отрицания функцией NOT.
Существует соответствие между рБНФ и рСП, которое определяется на основе ассоциирования уникальных ключей рБНФ и рСП. Во время генерирования синтаксически и семантически верной команды осуществляется соединение рБНФ и рСП, результатом которого является создание результирующей динамической структуры (РДС). На фиг.14 показана рБНФ для другого варианта команды create_table. Формализованное описание РДС представлено на фиг.15. Такая РДС может быть получена с помощью операции соединения таблиц, представляющих собой рБНФ и рСП. Такая операция является общепринятой операцией над таблицами и соответственно дополнительно не описывается. В данной РДС первый столбец соответствует номеру записи в рБНФ, второй - имени рБНФ (текстовой БНФ), третий - записи в одной из ячеек рБНФ, четвертый - признаку отображения элемента, пятый - признаку выбора элемента, шестой - признаку пропуска (удаления) элемента, седьмой - типу операции над элементом, восьмой - значению заданному для элемента, девятый - логической функции для операции, десятый - значению, присвоенному элементу. Из фиг.15 видно, что при соединении рБНФ и рСП осуществлялась проверка соответствия уникальных ключей рБНФ и рСП, за счет чего элементам рБНФ были назначены верные СП.
При осуществлении процедуры генерирования синтаксически и семантически верной команды из множества РДС выбираются элементы рСП, соответствующие командам, подлежащим преобразованию в синтаксически и семантически верные команды. После этого осуществляется проверка выполнения элементов рСП и генерируется SQL команда.
На фиг.16 показан примерный вариант осуществления способа генерирования синтаксически и семантически верных команд.
В качестве примера, но не ограничения, описывается способ 100 генерирования синтаксически и семантически верной команды путем обработки исходной команды create_table, представляющей собой команду управления СУБД Oracle. На этапе 110 выполняется преобразование, по меньшей мере, одной текстовой формы Бэкуса-Науэра, содержащей мета-описание, по меньшей мере, одной команды, подлежащей преобразованию в синтаксически и семантически верную команду, в, по меньшей мере, одну реляционную форму Бэкуса-Науэра, содержащую распознаваемое системой управления базой данных (СУБД) мета-описание команды, подлежащей преобразованию в синтаксически и семантически верную команду. На этапе 120 выполняется преобразование, по меньшей мере, одного текстового семантического правила, содержащего, по меньшей мере, одно ограничение на исполнение команды, подлежащей преобразованию в синтаксически и семантически верную команду, в, по меньшей мере, одно реляционное семантическое правило, содержащее, по меньшей мере, одно распознаваемое СУБД ограничение на исполнение команды, подлежащей преобразованию в синтаксически и семантически верную команду. После этого на этапе 130 идентифицируется, по меньшей мере, одна команда, подлежащая преобразованию в синтаксически верную команду. Затем на этапе 140 происходит назначение, по меньшей мере, основного семантического правила для идентифицированной на этапе 130 команды, подлежащей преобразованию в синтаксически верную команду, причем основное семантическое правило включает, по меньшей мере, одно рСП. На этапе 150 формируется РДС для идентифицированной команды, подлежащей преобразованию в синтаксически верную команду. Затем на этапе 160 происходит идентификация элементов назначенного на этапе 140 основного семантического правила для идентифицированной команды, подлежащей преобразованию в синтаксически верную команду, содержащихся в РДС, сформированной для идентифицированной команды, подлежащей преобразованию в синтаксически верную команду. На этапе 170 осуществляется применение всех элементов всех рСП, содержащихся в упомянутом, по меньшей мере, одном основном семантическом правиле, содержащемся в результирующей динамической структуре, сформированной для идентифицированной команды, подлежащей преобразованию в синтаксически и семантически верную команду, к идентифицированной команде, подлежащей преобразованию в синтаксически и семантически верную команду. В завершение на этапе 180 осуществляется генерирование синтаксически и семантически верной команды на основе примененных к идентифицированной команде, подлежащей преобразованию в синтаксически и семантически верную команду, всех элементов всех рСП из упомянутого, по меньшей мере, одного основного семантического правила, содержащегося в РДС, сформированной для идентифицированной команды, подлежащей преобразованию в синтаксически и семантически верную команду.
На фиг.17 в качестве примера, но не ограничения, изображено примерное осуществление устройства по настоящему изобретению, а именно устройство 200 для генерирования синтаксически и семантически верных команд, которое может представлять собой, но не ограничиваться: персональный компьютер, портативный компьютер, планшетный компьютер, карманный компьютер, смартфон, тонкий клиент и тому подобное. Устройство выполнено с возможностью доступа в сеть передачи данных и обязательно содержит один или более процессоров 210, машиночитаемый носитель данных (память) 220, модули ввода/вывода (I/O) 230 и порты ввода/вывода (I/O) 240. В качестве примера, а не ограничения, машиночитаемый носитель данных 220 может включать в себя оперативную память (RAM); постоянное запоминающее устройство (ROM); электрически стираемое программируемое постоянное запоминающее устройство (EEPROM); флэш-память или другие технологии памяти; CDROM, цифровой универсальный диск (DVD) или другие оптические или голографические носители данных; магнитные кассеты, магнитную пленку, запоминающее устройство на магнитных дисках или другие магнитные запоминающие устройства, несущие волны или другой носитель данных, который может быть использован для кодирования требуемой информации, и к которому может быть осуществлен доступ посредством описываемого устройства. Память 220 включает в себя носитель данных на основе запоминающего устройства компьютера в форме энергозависимой или энергонезависимой памяти или их комбинации. Примерные исполнения аппаратных устройств памяти включают в себя твердотельную память, накопители на жестких дисках, накопители на оптических дисках и т.д. В памяти хранится примерная среда 250, в которой при помощи компьютерных команд или кодов, хранящихся в памяти 220 устройства, может быть осуществлена процедура генерирования синтаксически и семантически верной команды. Устройство содержит один или более процессоров 210, которые предназначены для выполнения компьютерных команд или кодов, хранящихся в памяти устройства с целью обеспечения выполнения процедуры генерирования синтаксически и семантически верной команды. Модули I/O 230 представляют собой, но не ограничиваются, типичные и известные из уровня техники средства управления устройством: манипулятор типа «мышь», клавиатура, джойстик, тачпад, трекбол, электронное перо, стилус, сенсорный дисплей и тому подобное. Также модули I/O 230 представляют собой, но не ограничиваются типичные и известные из уровня техники средства представления, демонстрирования и воспроизведения информации: монитор, проектор, принтер, графопостроитель и тому подобное. Порты 240 I/O позволяют логически соединять вычислительное устройство 200 с другими устройствами, включая модули (240) I/O, которые могут быть как встроенными, так и внешними. Компьютерные команды представляют собой команды, описанные в разделе РАСКРЫТИЕ ИЗОБРЕТЕНИЯ настоящей заявки, и соответственно дополнительно не описываются. В одном из вариантов осуществления настоящего изобретения устройство 200 представляет собой в качестве примера, а не ограничения, персональный компьютер пользователя. Данный персональный компьютер имеет операционную среду 250, которая в качестве примера, а не ограничения, представляет собой операционную систему семейства Windows или MacOS, или Unix. Кроме того, устройство содержит память, выполненную в одном из перечисленных вариантов осуществления, в которой хранится компьютерное приложение, представляющее собой набор перечисленных во втором аспекте настоящего изобретения компьютерных команд или кодов, которыми может манипулировать пользователь. Процедура генерирования синтаксически и семантически верной команды осуществляется посредством этого приложения путем выбора команды, подлежащей преобразованию в синтаксически и семантически верную команду. В качестве примера, но не ограничения, такой командой может быть команда управления СУБД Oracle. В данном примерном варианте осуществления изобретения пользователь сам выбирает команду, подлежащую преобразованию в синтаксически и семантически верную команду, после чего следует подсказкам приложения, с помощью которого осуществляется генерирование синтаксически и семантически верной команды.
Необходимо отметить, что пользователь также имеет возможность создать шаблон генерирования синтаксически и семантически верной команды (сценарий генерирования) либо он может быть сгенерирован автоматически с помощью компьютерного приложения или блока генерирования сценария генерирования синтаксически и семантически верной команды по заданным параметрам. В случае устройство 200 является тонким клиентом, в упомянутой памяти не осуществляется сохранение компьютерных команд и кодов программы, а все вычисления осуществляются на сервере, с которым способно связываться посредством сети передачи данных или иными способами проводной и беспроводной связи устройство 200, представленное в виде тонкого клиента.
На фиг.18 представлено примерное исполнение системы 300 для генерирования синтаксически и семантически верных команд, которая содержит устройство 200 для генерирования синтаксически и семантически верных команд, сеть передачи данных 310, один или несколько серверов 320 и базу данных или машину баз данных 330. Сеть 310 может включать в себя, но не ограничиваться, одну или более локальных сетей (LAN) и/или глобальных сетей (WAN), или может представлять собой информационно-телекоммуникационную сеть Интернет, или Интранет, или виртуальную частную сеть (VPN) и тому подобное. Система 300 включает в себя упомянутое устройство 200 для генерирования синтаксически и семантически верных команд. Устройство 200 для генерирования синтаксически и семантически верных команд, как было указано выше, применяется для выполнения процедуры генерирования синтаксически и семантически верных команд. В примерном варианте осуществления устройство 200 для генерирования синтаксически и семантически верных команд представляет собой устройство 200 для генерирования синтаксически и семантически верных команд, которое было описано ранее со ссылкой на фиг.18. Дополнительно система 300 включает в себя сервер 320, который может представлять собой: персональный компьютер, портативный компьютер, планшетный компьютер, карманный компьютер, смартфон, машину баз данных и тому подобное.
Сервер 320 обеспечивает регулирование обменом данных в системе 300, а также обеспечивает обработку данных при условии подключения к нему одного или более чем одного устройства 200 для генерирования синтаксически и семантически верных команд или когда устройство 200 для генерирования синтаксически и семантически верных команд представляет собой тонкий клиент, при этом все вычислительные мощности, необходимые для обеспечения выполнения процедуры генерирования синтаксически и семантически верных команд, расположены на сервере 320. В этом случае обеспечение выполнения процедуры генерирования синтаксически и семантически верных команд осуществляется сервером 320 со ссылкой на фиг.16-17. Сервер 320 также имеет возможность обеспечивать виртуальную вычислительную среду (Virtual Machine) для обеспечения взаимодействия между устройством 200 для генерирования синтаксически и семантически верных команд и базой данных (машиной баз данных) 330 (БД). БД 330 может представлять собой, но не ограничиваясь: иерархическую БД, сетевую БД, реляционную БД, объектную БД, объектно-ориентированную БД, объектно-реляционную БД, пространственную БД, комбинацию перечисленных двух и более БД и тому подобное. БД 330 хранит данные в памяти, которая может представлять собой, но не ограничиваясь: постоянное запоминающее устройство (ROM), электрически стираемое программируемое постоянное запоминающее устройство (EEPROM), флэш-память, CDROM, цифровой универсальный диск (DVD) или другие оптические или голографические носители данных; магнитные кассеты, магнитную пленку, запоминающее устройство на магнитных дисках или другие магнитные запоминающие устройства, несущие волны или другой носитель данных, который может быть использован для хранения требуемой информации и к которому может быть осуществлен доступ посредством устройства 200 для генерирования синтаксически и семантически верных команд и сервера 320. БД 330 служит для хранения данных, представляющих собой: команды для осуществления процедуры генерирования синтаксически и семантически верных команд, описанные в разделе РАСКРЫТИЕ ИЗОБРЕТЕНИЯ настоящей заявки; документации СУБД, текстовых БНФ, получаемых рБНФ, текстовых СП, получаемых рСП и других данных, необходимых для функционирования системы.