АННОТАЦИЯ 3
Перечень условных обозначений, символов, сокращений, терминов 4
Введение 5
1 Анализ Neo4j и инструментов для работы с СУБД 7
1.1 Особенность графовых баз данных 7
1.2 Общие сведения о Neo4j 8
1.3 Анализ функциональных возможностей Neo4j Desktop 8
2 Формализация требований и первичное проектирование 12
2.1 Модель предметной области 12
2.2 Функциональные требования 13
2.2.1 Основные функциональные требования для работы с графом ... 13
2.2.2 Функциональные требования для фильтрации графа 14
2.2.3 Требования к инициализации работы 15
2.3 Элементы управления 17
2.3.1 Выбор элементов управления 17
2.3.2 Состояния поля 19
2.4 Нефункциональные требования 22
3 Проектирование 23
3.1 Инструменты разработки 23
3.2 Структура проекта 24
3.3 Взаимодействие с Neo4j базами данных 26
3.4 Отрисовка графа 28
3.5 Слой представления 32
4 Реализация 35
4.1 Подключение к базе данных 35
4.1.1 Проверка соединения 35
4.1.2 Ввод данных для подключения 37
4.1.3 Проверка прав пользователя 38
4.2 Настройки приложения 38
4.3 Интерактивное поле 39
4.3.1 Отрисовка 39
4.3.2 Монтирование модальных окон 42
4.3.3 Превью 43
4.4 Отправка запроса 46
4.5 Фильтрация 48
4.5.1 Отображение части графа 48
4.5.2 Типы фильтрации 49
4.6 Экспорт в PNG 49
4.7 Сборка приложения 50
Заключение 52
Список использованных источников и литературы 53
Приложение А 55
В настоящее время реляционные базы данных имеют широкое применение при разработке программного обеспечения. С целью удобства их администрирования, было разработано большое количество инструментов. Так, уже вовсе необязательно использовать язык запросов SQL, чтобы вносить изменения в базы данных, построенные с использованием таких СУБД, как MySQL, PostgreSQL, Oracle и прочих. Это было достигнуто благодаря инструментам администрирования баз данных, предоставляющим возможность работать с реляционными базами данных через пользовательский интерфейс, манипулируя интерактивными таблицами. Примерами таких инструментов могут быть DataGrip от JetBrains [6] или DBeaver [7], которые широко используются разработчиками.
Однако несмотря на то, что реляционные базы данных зарекомендовали себя и применяются для решения большого количества бизнес-задач, вовсе не всегда именно их применение является самым оптимальным. Поэтому для оптимизации решения нестандартных задач для хранения и обработки данных, применяются не реляционные базы данных. Всего существует большое множество различных NoSQL баз данных, каждые из которых применяются для своей специфической области. Но в контексте данной работы, интерес представляет лишь одна из их разновидностей - графовые базы данных. Графовые базы данных предназначены для работы с данными, представленными в виде графовой структуры, состоящей из вершин и связей. Они эффективно решают задачи, связанные с анализом связей в данных. Их область применения крайне широка: от построения рекомендательных сетей до моделирования молекулярных взаимосвязей в медицине.
Согласно рейтингу DB-Engines ranking, самой широко используемой графовой СУБД с большим отрывом является Neo4j, занимающая 22 место в общем списке на момент написания текущего раздела данной работы [8]. Такая популярность обусловлена мощностью и гибкостью этой СУБД. Но проблемой при работе с Neo4j является ограниченный инструментарий. Основное приложение для работы с данной СУБД - Neo4j Desktop, предоставляет возможность просмотра визуализированных графов, однако внесение любых изменений в структуру требует написания команд на декларативном языке запросов Cypher. Из этого возникает две проблемы. Первая - повышенный порог входа в использовании Neo4j. Вторая - неудобство при работе с графами. Инструментарий, подобный ранее упомянутым DataGrip и DBeaver, но предназначенный для графовых СУБД, не предлагается ни разработчиками Neo4j, ни рынком проприетарного программного обеспечения, ни сообществом.
Таким образом, целью данной работы стала разработка системы, позволяющей работать с графовыми базами данных Neo4j через визуальное редактирование, без необходимости написания запросов на языке Cypher. Из этого следует, что все операции по модификации должны быть доступны исключительно через пользовательский интерфейс.
Для достижения данной цели был сформулирован список задач, с которым можно ознакомиться ниже.
1. Анализ Neo4j и инструментов для работы с СУБД.
2. Формализация требований.
3. Проектирование архитектуры.
4. Реализация системы.
В результате выполнения выпускной квалификационной работы была достигнута такая цель, как создание системы для работы с СУБД Neo4j через визуальное редактирование графов. Для выполнения данной цели были поставлены и достигнуты следующие задачи.
1. Анализ Neo4j и инструментов для работы с СУБД.
2. Формализация требований.
3. Проектирование архитектуры.
4. Реализация системы.
Благодаря разработанной системе, пользователи смогут работать с Neo4j базами данных без необходимости написания запросов на языке Cypher. Через визуальное редактирование графов доступны все CRUD операции. А также интерфейс включает в себя возможности фильтрации графа по разным параметрам. Таким образом, работа с СУБД станет более удобной и доступной как для опытных разработчиков, так и для неспециалистов в сфере.
Браузерное расширение опубликовано в магазин расширений Google Chrome под названием Neo4Ease IDE. Оно доступно по адресу:
https://chromewebstore.google.com/detail/neo4ease- ide/cdhpcdadfnlhpalgij fj fekngomndepj