[Knowledge Graph] 3.1 - Что такое графовая база данных? Что такое Neo4j?

база данных

Что такое графовая база данных? Даже друзья с профессиональным опытом могут мало знать о графовых базах данных. База данных графов — это новый тип базы данных NoSQL, основанный на теории графов.

Недостатки реляционных баз данных

  • С непрерывным расширением использования реляционных баз данных также возникают некоторые проблемы, которые она никогда не сможет решить, наиболее важными из которых являются некоторые дефекты и проблемы в моделировании данных, а также горизонтальное масштабирование на больших объемах данных и нескольких серверах.

  • Развитие Интернета привело к некоторым новым трендовым изменениям: экспоненциальный рост объема данных, генерируемых пользователями, системами и датчиками, постоянное увеличение объема данных, хранение и обработка больших данных; Актуальность проблемы в условиях Интернета в новую эпоху становится все более актуальной в связи с масштабным подъемом и процветанием Интернет+, социальных сетей и интеллектуальных рекомендаций.

Модели данных для баз данных NoSQL

  • NoSQL (не только SQL, не только SQL) — это очень широкий класс решений для сохраняемости, которые не следуют модели реляционной базы данных и не используют SQL в качестве языка запросов. Его хранилище данных не требует фиксированной схемы таблицы, часто избегает использования операций SQL JOIN и, как правило, обладает характеристиками горизонтальной масштабируемости.

  • Базы данных NoSQL можно разделить на 4 категории в соответствии с их моделями данных: хранилища ключей-значений; базы данных столбцов (реализации BigTable); хранилища документов; базы данных графов.

Почему стоит выбрать графовую базу данных и Neo4j для графа знаний?

  • Более быстрые операции с базой данных. Конечно, есть обязательное условие, то есть объем данных большой, много таблиц требуется хранить в MySql, и много связей между таблицами (то есть много операций нужно для соединения таблиц).

  • Данные более интуитивны, а соответствующие операторы SQL также проще написать (Neo4j использует язык Cypher, который сильно отличается от традиционного SQL).

  • более гибкий. Независимо от того, какие новые данные необходимо сохранить, это один и тот же узел и ребро, необходимо учитывать только атрибут узла и атрибут ребра. В MySql это означает новую таблицу, и следует также учитывать связь с другими таблицами.

  • Скорость операций с базой данных существенно не уменьшается с размером базы данных. Этому способствует специальная структура хранения данных Neo4j и специально оптимизированные графические алгоритмы.

Каковы характеристики графовых баз данных?

  • содержит узлы и ребра;

  • На узлах есть атрибуты (пары ключ-значение);

  • Ребра имеют имена и направления и всегда имеют начальный и конечный узлы;

  • Ребра также могут иметь атрибуты.

Использование Neo4J в вашем проекте

  • Поддержка транзакций. Neo4J требует, чтобы каждое изменение данных выполнялось в рамках транзакции для обеспечения согласованности данных.

  • Мощные возможности поиска графики. Neo4J позволяет пользователям управлять базами данных с помощью языка Cypher. Язык специально разработан для управления базами данных графов, поэтому он может очень эффективно работать с базами данных графов. В то же время Neo4J также предоставляет клиентов для ряда популярных языков на текущем рынке, чтобы разработчики, использующие эти языки, могли быстро работать с Neo4J.

  • Имеет определенную способность горизонтального расширения. Поскольку узел в графе часто имеет отношения с другими узлами, зачастую нецелесообразно разбивать граф на ряд решений Sharding. Таким образом, схема горизонтального расширения, предоставляемая в настоящее время Neo4J, в основном представляет собой сегментацию чтения и записи с помощью реплики чтения. В свою очередь, поскольку один экземпляр Neo4J может хранить миллиарды узлов и взаимосвязей, этой возможности горизонтального масштабирования достаточно для обычных корпоративных приложений.

использованная литература

Следующий

3-2. Настройка и использование Neo4j