Трансляция запросов с языка sql в язык Mongo QL - Николай Константинович Самойлов (Вестник ВГУ. Серия: Системный анализ и информационные технологии, 2019)
Для хранения нечётких значений часто используются реляционные СУБД, но при этом возникают проблемы размещения таких данных в табличной форме. Кроме того, появляется проблема хранения как чётких, так и нечётких данных, относящихся к одной предметной области, в одном столбце реляционной таблицы. В данной статье рассматривается механизм хранения чётких и нечётких значений и лингвистических переменных в документоориентированной СУБД Mongo. Данные хранятся в коллекции как GeoJSON геометрия, для различных вариантов данных используются различные геометрии. Описана возможность хранения в документах коллекции чётких скалярных значений, наборов чётких значений, интервалов чётких значений и нечётких значений. Для обработки данных посредством запросов языка SQL описывается контекстно-свободная грамматика подмножества языка SQL, по которой генерируются лексический анализатор и синтаксический анализатор. Для формирования структуры абстрактного синтаксического дерева реализована соответствующая объектная модель. Разработано приложение транслятора, которое позволяет преобразовывать SQL-запросы по чётким и нечётким данным в запросы на языке Mongo QL. Предложен алгоритм процесса трансляции нечётких запросов, описана геометрическая интерпретация операций сравнения данных. В примерах приведены варианты операций нечёткого сравнения для различных вариантов значений.