Details

Title Сервис автоматической генерации программных веб-интерфейсов для документоориентированных баз данных на основе подхода «запрос по образцу»: выпускная квалификационная работа бакалавра: направление 02.03.03 «Математическое обеспечение и администрирование информационных систем» ; образовательная программа 02.03.03_01 «Интеллектуальные информационные системы и обработка данных» = A service for automaticallygenerating software web interfaces for document-oriented databases based on the"query by example" approach
Creators Гавшин Артём Алексеевич
Scientific adviser Щербаков Николай
Organization Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности
Imprint Санкт-Петербург, 2026
Collection Выпускные квалификационные работы ; Общая коллекция
Subjects mongodb ; graphql ; rest api ; query by example ; интроспекция базы данных ; динамическая генерация схемы ; конструктор запросов ; документоориентированная субд ; веб-приложение ; go ; database introspection ; dynamic schema generation ; query constructor ; document-oriented dbms ; web application
Document type Bachelor graduation qualification work
Language Russian
Level of education Bachelor
Speciality code (FGOS) 02.03.03
Speciality group (FGOS) 020000 - Компьютерные и информационные науки
DOI 10.18720/SPBPU/3/2026/vr/vr26-2127
Rights Доступ по паролю из сети Интернет (чтение)
Additionally New arrival
Record key ru\spstu\vkr\42889
Record create date 8/21/2026

Allowed Actions

Action 'Read' will be available if administrator prepare required files

Group Anonymous
Network Internet

Объект исследования — процесс организации программного доступа к данным в информационных системах, использующих документов ориентированные базы данных. Цель работы — разработка веб-приложения, обеспечивающего динамическое формирование REST- и GraphQL интерфейсов доступа к данным MongoDB на основе интроспекции структуры коллекций и использования подхода Query By Example. В работе проанализированы существующие подходы к построению API (REST, GraphQL, low-code-платформы), рассмотрены особенности документов ориентированной модели данных MongoDB и подход Query By Example. Спроектирована архитектура модульного монолитного веб-приложения, включающего модуль автоматической интроспекции коллекций, модуль динамической генерации GraphQL-схемы во время выполнения, web интерфейс конструктора запросов и реестр сохранённых REST-эндпоинтов. Реализован программный прототип на языке Go с использованием стандартной библиотеки net/http, СУБД MongoDB, библиотек mongo-driver v1.13.1 и graphql-go v0.8.1. Система поддерживает операции выборки, подсчёта, получения уникальных значений, агрегации (sum, avg, min, max), межколлекционного соединения ($lookup), вставки документов, а также фильтрацию, сортировку, пагинацию и анализ плана выполнения запросов (explain). Апробация проведена на тестовых данных (4 коллекции, 72 документа) и коллекции из 100 000 документов. По результатам интроспекции автоматически сгенерировано 57 операций GraphQL. Подтверждена корректность всех реализованных сценариев доступа к данным. Анализ производительности показал, что индексированный запрос на коллекции из 100 000 документов выполняется за 2 мс (IXSCAN), неиндексированный — за 57 мс (COLLSCAN). Область применения — ускорение разработки прикладных интерфейсов доступа к данным MongoDB, прототипирование backend-функциональности, поддержка интеграционных сценариев.

The object of research is the process of organizing programmatic data access in information systems using document-oriented databases. The goal of the work is to develop a web application that provides dynamic formation of REST and GraphQL data access interfaces for MongoDB based on collection structure introspection and the Query By Example approach. The work analyzes existing approaches to API construction (REST, GraphQL, low-code platforms), examines the features of the MongoDB document-oriented data model, and the Query By Example approach. The architecture of a modular monolithic web application has been designed, including an automatic collection introspection module, a runtime dynamic GraphQL schema generation module, a web-based query constructor interface, and a registry of saved REST endpoints. A software prototype has been implemented in Go using the standard net/http library, MongoDB, mongo-driver v1.13.1 and graphql-go v0.8.1 libraries. The system supports find, count, distinct, aggregation (sum, avg, min, max), cross collection join ($lookup), document insertion operations, as well as filtering, sorting, pagination, and query execution plan analysis (explain). Testing was conducted on sample data (4 collections, 72 documents) and a collection of 100,000 documents. As a result of introspection, 57 GraphQL operations were automatically generated. The correctness of all implemented data access scenarios has been confirmed. Performance analysis showed that an indexed query on a 100,000-document collection executes in 2 ms (IXSCAN), while an unindexed query takes 57 ms (COLLSCAN). Application areas include accelerating the development of data access interfaces for MongoDB, backend functionality prototyping, and integration scenario support.

Network User group Action
ILC SPbPU Local Network All
Internet Authorized users SPbPU
Internet Anonymous
...