Введение

Базы данных графов основаны на теории графов, многовековом изучении графов. Графики — это математические структуры, используемые для моделирования отношений между объектами и, по сути, обеспечивающие абстракции реального мира. Графики позволяют визуализировать сложные концепции и сильно взаимосвязанные данные, предоставляя ценную информацию, которая в противном случае может быть не очевидна. Структуры данных графа обеспечивают простой способ представления богатых взаимосвязей в наборах данных с высокой степенью связи, а также для случаев использования, когда они имеют явные преимущества по сравнению с другими типами баз данных.

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

Различия между графовыми и реляционными базами данных

Реляционные базы данных хранят данные в строго структурированных таблицах, состоящих из столбцов и строк, и являются одними из наиболее распространенных структур баз данных. Мы называем эту структуру схемой базы данных. Проще говоря, схема — это план построения базы данных, который накладывает ограничения целостности на базу данных.

Компьютерная память стоила очень дорого 50 с лишним лет назад; тогда парадигма реляционной базы данных была очень выгодной, поскольку она позволяла избежать дублирования данных путем объединения таблиц, что часто называют «нормализованной» формой. Эта форма моделирования данных имела свою цену как с точки зрения вычислений (объединение таблиц требует больших вычислительных ресурсов), так и с точки зрения гибкости моделирования, но в то время компромисс того стоил.

Базы данных NoSQL становятся все более популярными, отчасти из-за необходимости преодоления вычислительных ограничений, которые реляционные БД налагают для крупномасштабных приложений. Они также предоставляют более гибкие формы моделирования данных.

Из-за жесткости своей организации реляционные базы данных требуют, чтобы разработчики и приложения строго структурировали данные, используемые в их приложениях. Их строгая табличная структура делает их хорошим выбором для записей с несложными отношениями и отлично подходит для обработки и хранения транзакций. Реляционная модель обеспечивает интуитивно понятный и простой способ представления данных в таблицах. В реляционной базе данных каждая строка таблицы представляет собой запись с уникальным идентификатором, называемым ключом. Столбцы таблицы содержат атрибуты данных, и каждая запись обычно имеет значение для каждого атрибута, что упрощает установление отношений между точками данных. [2], [4]

В отличие от реляционных баз данных, которые имеют несбалансированное внимание к сущностям в модели данных, графовые модели данных также признают отношения между сущностями столь же важными, как и сами сущности. [1]

Для реляционных баз данных идеально подходят вопросы, не требующие широких связей внутри данных, которые могут использовать один критерий фильтрации или индекс. Поскольку эти проблемы не связаны с отношениями внутри данных, база данных графов не даст дополнительных преимуществ и, вероятно, внесет ненужную сложность. Кроме того, реляционные базы данных имеют преимущества в некоторых областях по сравнению с графовыми базами данных, например, выполнение крупномасштабных агрегаций всякий раз, когда шаблоны доступа естественным образом согласуются со структурой реляционной базы данных.

Графические базы данных: что это такое и почему они так важны?

База данных графа — это механизм хранения данных, который использует базовые структуры графа вершин и ребер вместе с технологией сохраняемости и языком запросов обхода для оптимизации хранения и извлечения высокосвязанных данных. Базы данных графов построены на идее, что отношения между сущностями так же важны, а иногда даже важнее, чем сами сущности. Обращаясь с сущностями и отношениями с одинаковой важностью, мы можем представлять и рассуждать о реальных отношениях более точно и легко, чем с другими технологиями баз данных. Кроме того, разработчики могут проектировать графовые базы данных с учетом меняющихся данных. Это проще, поскольку они не требуют соблюдения строгой схемы, как это делают реляционные базы данных.

Как обсуждалось ранее, графы и графовые модели данных имеют четко определенные отношения между сущностями. Четко определенная связь в графе требует имени для связи, понимания того, как эта связь соединяет объекты, и любых потенциальных атрибутов, необходимых для определения этой связи. Эта способность как сущностей, так и отношений иметь свойства подчеркивает фундаментальное различие между реляционной базой данных и графовой базой данных. [4]

Когда использовать графическую базу данных

Три основные области, в которых графовые базы данных имеют явное преимущество перед реляционными базами данных, — это работа с рекурсивными запросами, различными типами результатов и поиском путей.

Базы данных Graph работают исключительно хорошо при обработке рекурсивных операций. Это та область, в которой реляционные базы данных испытывают затруднения, требуя написания и обслуживания сложных запросов. Благодаря богатому представлению отношений и языкам запросов, оптимизированным для обработки сильно связанных данных, графовые базы данных намного эффективнее справляются с такими типами запросов. Это особенно верно, когда мы должны сделать большое количество объединений, но точно не знаем, сколько. В общем, если рекурсивный подход помогает ответить на ваш вопрос, то графовая база данных, вероятно, является лучшим инструментом для этой работы. [4]

Еще одна область, в которой графовые базы данных имеют преимущество перед реляционными базами данных, — это работа с объединениями разрозненных данных. Реляционные базы данных указывают, что возвращаемые результаты содержат согласованный набор столбцов, что может привести к большому количеству пустых значений. Базы данных графов, с другой стороны, гибки с разрозненными данными. Базы данных Graph хранят данные так же, как базы данных типа "ключ-значение", где нет необходимости хранить нулевые значения или заполнять свойства значениями по умолчанию. [4]

Языки графовых запросов, такие как openCypher и Gremlin, обладают функциями, которые идеально подходят для задач, требующих просмотра сущностей, их взаимосвязей, взаимосвязей инцидентов и смежных сущностей. Высокосвязанные данные, используемые в маршрутизации, управлении зависимостями, анализе социальных сетей или кластерном анализе, хорошо подходят для графовых баз данных. Нативная конструкция в структурах данных графа, которую мы можем использовать, которую нельзя найти в других типах баз данных, — это их возможности поиска путей. Алгоритмы поиска пути анализируют все потенциальные связи между объектами и определяют оптимальный набор шагов или путь, соединяющий один объект с другим. Кроме того, сопоставление шаблонов на основе отношений сущностей — еще один отличный пример варианта использования графовой базы данных. Базы данных графов делают это так часто, что языки запросов графов имеют встроенные функции именно для таких запросов. [4], [5]

Примеры использования графических баз данных

Есть много распространенных вариантов использования, которые выигрывают от использования графовых баз данных по сравнению с реляционными базами данных. К ним относятся:

· Обнаружение мошенничества. Неявный сговор становится очевидным благодаря системе, предназначенной для управления связанными данными.

· Механизмы рекомендаций в режиме реального времени — заинтересованные стороны могут видеть, как пользователи взаимодействовали с определенным элементом (музыкой, фильмами и т. д.), и немедленно визуализировать другие, непосредственно связанные элементы, с которыми они могут взаимодействовать.

· Управление основными данными — специалисты по MDM получают возможность просматривать в режиме реального времени все свои операционные данные на 360°.

· Сетевые и ИТ-операции — базы данных Graph позволяют пользователям подключать несколько инструментов мониторинга и получать критическое представление о взаимосвязях между различными операциями сети или центра обработки данных.

· Управление идентификацией и доступом — обеспечивает менеджеров IAM взаимосвязанным представлением все более сложных ролей, групп, продуктов и авторизаций в их организации.

Эти примеры дают лишь небольшое представление о многих случаях использования, в которых использование графовой базы данных может быть выгодным. [2], [3]

Заключение

Базы данных графов — мощный инструмент для нашего все более связанного и управляемого данными мира. Благодаря тому, что они способны отображать такие богатые взаимосвязи, встроенные в данные, графовые базы данных революционизируют наши представления о хранении и извлечении данных. Они обеспечивают гибкость и масштабируемость при отображении этих сложных взаимосвязей, что делает их отличным вариантом для таких случаев использования, как обнаружение мошенничества, рекомендательные механизмы и управление основными данными.

Рекомендации

[1] Бехбергер, Дэйв и Джош Перриман. Графические базы данных в действии. Публикации Мэннинга, 2020.

[2] Госнелл, Дениз Кесслер и Матиас Брохелер. Практическое руководство по графическим данным. О'Рейли Медиа, Инк., 2020.

[3] Neo4j, Inc. Когда подключенные данные имеют наибольшее значение. Нео4дж. 2021.
https://neo4j.com/use-cases/

[4] Пайода. Что и почему графические базы данных. Пайода. 2021. https://www.payoda.com/what-and-why-of-graph-databases/.

[5] Amazon Web Services Inc. Создайте свое первое графическое приложение с помощью Amazon Neptune. Amazon Web Services Inc., 2008–2023 гг. https://catalog.us-east-1.prod.workshops.aws/workshops/2ae99bf2-10df-444f-a21f-8ad0537a9bdd/en-US/workshop2/gremlin/model