Графические базы данных: как они работают?
15 ноября 2022 г.Чтобы понять, как работают графовые базы данных, давайте сначала дадим определение. База данных графа является типом баз данных NoSQL, в которых вместо таблиц или документов хранятся узлы и связи. Данные хранятся без ограничения заранее определенной модели, обеспечивающей гибкость. Вышеупомянутые базы данных NoSQL часто воспринимаются как «без SQL». вообще, но на самом деле это «не только SQL». В базах данных SQL данные хранятся только в таблицах. Используя NoSQL, вы можете хранить 4 типа баз данных: документ, ключ-значение, широкий столбец и график.
* Примеры баз данных SQL: MySQL, PostgreSQL, OrientDB, MariaDB, CouchDB * Примеры баз данных NoSQL: MongoDB, Apache Cassandra, Neo4j, Redis, DynamoDB, HyperTable
На самом деле, сейчас так много баз данных, что становится трудно выбрать. Однако существуют списки лучших или лучших баз данных с описанием функций и вариантов использования.
Зачем использовать графическую базу данных?
Базы данных Graph по своей природе мультиреляционны, в отличие от реляционных баз данных (SQL). Это также кажется более практичным, поскольку данные отображаются интуитивно понятным способом. Отношения уже сохранены в базе данных, поэтому их не нужно вычислять. Базы данных графов могут хранить большие объемы, быть быстрыми и поддерживать разнообразие текущих данных. Если вы хотите разработать приложение для социальных сетей или приложение для сообщества, графовая база данных будет наиболее разумным выбором. База данных не только будет обрабатывать большое количество пользователей, но и формировать отношения между ними. Для любого приложения, связанного с социальными сетями, подойдет графовая база данных.
Кроме того, графовая база данных идеально подходит для больших данных в реальном времени, поскольку вы можете легко добавлять новые узлы и отношения между узлами. Однако это не влияет на производительность. Базы данных NoSQL и базы данных графов, в частности, более эффективны, поскольку они не база данных/">необходимо загрузить или коснуться несвязанных данных для данного запроса.
Наиболее популярные варианты использования графовых баз данных:
- Социальные сети
- Карта цепочки поставок
- График знаний ИИ/машинное обучение
- Сопоставление сети/операций
- Любой тип аналитики
- Системы рекомендаций в розничной торговле.
- Телекоммуникационные приложения
- Конфиденциальность данных, риски и соответствие требованиям
- Управление сетью и ИТ
Обнаружение мошенничества
Компоненты графической базы данных
В каждой базе данных графа есть три основных компонента: узлы, свойства и ребра (или отношения). Узлы простыми словами — это сущности или некоторые объекты в домене, такие как пользователи, местоположения и прочее. Свойства добавляются к узлам, чтобы добавить больше контекста. В некоторых случаях ребра также имеют свойства. А ребра соединяют узлы и показывают тип соединения. Взгляните на изображение:
К краям или взаимосвязям могут быть присоединены значения. Здесь это «Follows», но может быть более одного значения. Еще одним дополнением являются метки, которые определяют (классифицируют), к какому типу узлов они относятся (Студент и Учитель). Таким образом, несколько узлов вместе образуют своего рода экосистему интеллект-карт.
Основные функции Neo4j
Это не была бы такая популярная база данных графов, если бы у нее не было уникальных функций. Во-первых, Neo4j — это нативная графовая база данных. Это означает, что базовая архитектура хранения данных не основана на таблицах. Этот тип модели данных на самом деле представляет собой высокосвязный граф. А при выполнении запроса в Neo4j вам не нужно индексировать каждый раз, когда вы делаете прыжок, как в реляционных базах данных.
Язык запросов Cypher довольно прост. Это декларативный язык, в котором круглые скобки и отношения представляют узлы в виде стрелок и квадратных скобок. Ниже приведен пример запроса Neo4j. Он демонстрирует запрос какие соседние игры имеют наибольшее количество общих характеристик с выбранной (т. е. искомой) игрой. .
Самая красивая часть — это код:
MATCH p=(game:Game)--(characteristic:ConceptEntry)
WHERE game.uid = 'game-borderlands_2' OR game.uid = 'game-fallout_3'
RETURN p
Три строки выполняют впечатляющую работу по поиску необходимых данных.
Популярные графические базы данных
Теперь давайте рассмотрим примеры графовых баз данных и их сильные стороны.
- Neo4j — вероятно, самая известная база данных графов. Он выглядит простым и удобным для пользователя и в то же время мощным. Команды языка запросов относительно легко освоить. Самое главное в Neo4j — это то, что он четко представляет связанные данные. Просто взглянув на него, вы поймете отношения между многими узлами. Neo4j предоставляет только услуги, связанные с типом базы данных графа. Можно сказать, что Neo4j выигрывает по популярности и отработанному функционалу.
- ArangoDB – это многофункциональный инструмент, разработанный специально для поддержки различные типы баз данных NoSQL. Если для проекта или бизнеса требуется несколько баз данных одновременно, ArrangoDB будет большим подспорьем. Что еще более уникально в этом сервисе, так это то, что он позволяет сочетать SQL и NoSQL в одном проекте.
- Apollo была базой данных, но разрослась и теперь представляет собой экосистему инструментов, расширений библиотек и т. д. Это хорошо совместим с платформами Javascript и поддерживает сторонние расширения. Итак, основное отличие от других — повышенный уровень интеграций. Некоторые важные вещи — это автоматизация различных процессов, GraphQL и возможности его использования, а также непрерывный процесс разработки (да, он все еще активно развивается). Он новее, чем первые два, так что есть куда стремиться.
Подведение итогов
Теперь, когда вы так много знаете о графовых базах данных, вы можете быть в восторге от мощных наборов данных. Его можно использовать в отраслях с большими объемами данных и их различными типами. Конечно, каждый проект уникален и имеет разную бизнес-логику. Итак, перед выбором взвесьте все за и против графовых баз данных. Теперь вы знаете, как работают графовые базы данных и как их использовать. В разработке программного обеспечения нет окончательного ответа на такие вопросы: какая база данных лучше? какой язык программирования круче? Контекст имеет значение, поэтому выбирайте с умом.
Оригинал