Казанский (приволжский) федеральный университет высшая школа информационных технологий и




Скачать 309.66 Kb.
Название Казанский (приволжский) федеральный университет высшая школа информационных технологий и
страница 5/8
Тип Реферат
rykovodstvo.ru > Руководство эксплуатация > Реферат
1   2   3   4   5   6   7   8

2.2 Структура базы данных




В СУБД Neo4j используется механизм графового представления документов. Все объекты в базе данных делятся на 2 типа: вершины (Node) и отношения (Relationship). Каждый объект имеет свой тип. Как вершины, так и отношения имеют первичные ключи (ID), а также дополнительный набор полей и свойств в формате JSON7.

Для хранения информации об авиаперелетах нам понадобятся следующие сущности:

  • Аэропорт (Airport) - хранит информацию об аэропорте вылета/прилета

  • Рейс (Flight) - хранит информацию об авиарейсе

Сущность Flight в данном случае можно представить как отношение [4], а Airport как вершину графа авиаперелетов. Получим следующую структуру:

(departure: Airport) - [f: Flight] -> (arrival: Airport)


Рис. 10. Отношение Airport-Flight
Иногда при покупке авиабилетов для пользователя не так важны аэропорты вылета и(или) прилета, сколько города, в которых они расположены. Для реализации поиска рейсов с указанием городов создадим дополнительно сущности:

  • City - хранит информацию о городе вылета/прилета

  • Located - хранит принадлежность аэропорта к определенному городу

Обновленная структура сущностей теперь выглядит так:

(departureCity: City) <- [l: Located] - (departure: Airport) - [f: Flight] -> (arrival: Airport) - [l: Located] -> (arrivalCity: City)



Рис. 11. Отношение City-Located-Airport-Flight
Таким образом, разработана структура сущностей для базы данных Neo4j, которая будет использована в дальнейшем для хранения информации об авиарейсах и осуществления поиска маршрутов.

Глава 3. РАЗРАБОТКА ПРОГРАММНОЙ ЧАСТИ ПРИЛОЖЕНИЯ

3.1 Слой DAO




Существует несколько способов для доступа к базе данных Neo4j с помощью программных средств, наиболее распространенными из них являются:

  • Использование Neo4j REST API

  • Подключение через Neo4j Java driver

  • Реализация нативного Neo4j Java API

  • Использование библиотеки JCypher

  • Использование библиотеки Spring Data Neo4j


Для получения наиболее высокой скорости выполнения запросов с сохранением удобства написания и читаемости кода был разработан подход, комбинирующий доступ к БД Neo4j как посредством драйвера Neo4j Java Driver, так и с помощью библиотеки открытого стека JCypher.

Реализованы два абстрактных класса-репозитория: JCypherRepository и Neo4jDriverRepository.




3.1.1 JCypherRepository




JCypherRepository - абстрактный класс-репозиторий для доступа к БД Neo4j посредством библиотеки JCypher. Структуру класса можно изобразить в виде схемы (рис. 12).



Рис. 12. Класс JCypherRepository
Ключевой особенностью библиотеки JCypher является возможность использования встроенного DSL для построения запросов на языке Cypher, а также встроенный механизм для маппинга объектов Neo4j в доменные Java объекты. Порядок взаимодействия компонентов библиотеки можно изобразить на схеме (рис. 13).


Рис. 13. Структура взаимодействия JCypher
В качестве контекста для подключения к Neo4J JCypher использует объект IDBAccess.

@Bean

public IDBAccess idba() {

Properties props = new Properties();

props.setProperty(DBProperties.SERVER_ROOT_URI, boltUrl);

AuthToken authToken = AuthTokens.basic(login, password);

return DBAccessFactory.createDBAccess(DBType.REMOTE, props, authToken);

}
Далее, необходимо создать объект класса IDomainAccess. Данный объект будет хранить информацию о контексте подключения, а также о типе сущности Neo4j для последующего маппинга полей. Для этого, определим аннотацию @Neo4jEntity. Классы, помеченные данной аннотацией, будут считаться сущностями для маппинга с помощью JCypher.

После инициализации репозитория воспользуемся классом GenerycTypeResolver [5], поставляемым с фреймворком Spring8, для определения класса, переданного в репозиторий посредством механизма Java Generics, и последующей инициализации объекта IDomainAccess (рис. 14).



Рис. 14. Инициализация IDomainAccess
Описанные выше действия позволяют нам автоматически инициализировать контекст для доступа к БД Neo4j посредством DSL JCypher. Для этого воспользуемся следующими методами:

  • query() - Данный метод создает объект DomainQuery, который впоследствии может быть использован для выполнения запроса к базе данных.

  • match(query) - Метод принимает на вход созданный ранее объект DomainQuery и создает на основе него объект класса DomainObjectMatch, который служит для построения запросов к базе данных с использованием JCypher DSL.


1   2   3   4   5   6   7   8

Похожие:

Казанский (приволжский) федеральный университет высшая школа информационных технологий и icon Казанский (приволжский) федеральный университет высшая школа информационных технологий и
Автоматизация построения интерактивной 3D-карты «Паспорт безопасности» в образовательных учреждениях
Казанский (приволжский) федеральный университет высшая школа информационных технологий и icon Казанский (приволжский) федеральный университет высшая школа информационных технологий и
Разработка мобильного клиента на ос андроид для системы предсказания характеристик химических веществ и реакций
Казанский (приволжский) федеральный университет высшая школа информационных технологий и icon Казанский (приволжский) федеральный университет высшая школа информационных технологий и
С каждым годом появляется огромное количество разнообразного нового функционала для мобильных устройств, которые сегодня во много...
Казанский (приволжский) федеральный университет высшая школа информационных технологий и icon Казанский (приволжский) федеральный университет высшая школа информационных технологий и
Деркачев Н. В., Деркачев В. И., Быльев Ю. В., Медведева А. Н., Афанасьев Р. В. Расчет зон разрушений зданий и сооружений при взрывах...
Казанский (приволжский) федеральный университет высшая школа информационных технологий и icon Казанский (приволжский) федеральный университет высшая школа информационных технологий и
Казани побывало 2 миллиона туристов [2]. Численность туристов будет продолжать расти, так как уже летом 2018 года Казань примет 21-ый...
Казанский (приволжский) федеральный университет высшая школа информационных технологий и icon Казанский (приволжский) федеральный университет высшая школа информационных технологий и
Примерами таких компаний являются интернет магазины; предприятия, в которых есть специальный системы, работающие в режиме реального...
Казанский (приволжский) федеральный университет высшая школа информационных технологий и icon Национальный исследовательский университет "Высшая школа экономики"...
Разработка предметно-ориентированного языка описания структуры и содержания электронных документов
Казанский (приволжский) федеральный университет высшая школа информационных технологий и icon Фгаоувпо «казанский (приволжский) федеральный университет» утверждаю...
Вопросы экзамена по специальности 12. 00. 08 – Уголовное право и криминология; уголовно-исполнительное право
Казанский (приволжский) федеральный университет высшая школа информационных технологий и icon Уважаемые абитуриенты, планирующие поступать в кфу в 2017 году! Спасибо,...
Казанский (Приволжский) Федеральный Университет – один из лучших классических университетов России
Казанский (приволжский) федеральный университет высшая школа информационных технологий и icon Правила внутреннего распорядка общежитий Общие положения
Правила) федерального государственного автономного образовательного учреждения высшего профессионального образования «Казанский (Приволжский)...
Казанский (приволжский) федеральный университет высшая школа информационных технологий и icon Руководство пользователя электронной торговой площадки федерального...
Федеральное государственное автономное образовательное учреждение высшего профессионального образования
Казанский (приволжский) федеральный университет высшая школа информационных технологий и icon О центре информационных технологий
Центр информационных технологий (далее — цит) является структурным подразделением федерального государственного бюджетного образовательного...
Казанский (приволжский) федеральный университет высшая школа информационных технологий и icon Учебно-методическое пособие к лабораторным занятиям по курсу «Основы кристаллооптики»
Практическое руководство по работе с поляризационным микроскопом для исследования петрографических объектов: Учебно-методическое...
Казанский (приволжский) федеральный университет высшая школа информационных технологий и icon Отчет о самообследовании программы высшего образования по направлению...
«микробиология», специализация «микробиология» и «молекулярная биология», реализуемого в федеральном государственном образовательном...
Казанский (приволжский) федеральный университет высшая школа информационных технологий и icon Отчет о самообследовании программы подготовки специалистов среднего...
«Автоматизация технологических процессов и производств (в строительстве)», реализуемой в федеральном государственном образовательном...
Казанский (приволжский) федеральный университет высшая школа информационных технологий и icon Отчет о самообследовании программы подготовки специалистов среднего...
«Автоматизация технологических процессов и производств (в машиностроении)», реализуемой в федеральном государственном образовательном...

Руководство, инструкция по применению






При копировании материала укажите ссылку © 2024
контакты
rykovodstvo.ru
Поиск