Сравнение графов и реляционных баз данных

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

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

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

  • Графовые базы данных: организуют данные в виде узлов и ребер, явно хранят связи. Обход соединений эффективен и часто не зависит от общего размера набора данных.
  • Реляционные базы данных: Упорядочение данных в таблицах с строками и столбцами. Используйте операции JOIN для вывода связей во время запроса. Для высоко подключенных данных эти операции могут стать сложными и медленными.

Запросы связей: соединения и обходы

Запросы реляционной базы данных: Внешние ключи связывают данные в разных таблицах. Для получения связанных данных реляционные базы данных используют операции JOIN для объединения строк из нескольких таблиц. Для простых связей JOIN работают нормально. Но для глубоких или переменных по длине подключений они могут становиться дорогостоящими и сложными.

Запросы к базе данных Graph: Храните связи как края, чтобы можно было напрямую переходить от одного узла к другому. Графовые запросы могут эффективно перемещаться по нескольким прыжкам и сложным шаблонам. Языки запросов Graph, такие как язык запросов Graph (GQL), упрощают экспресс-обходы и сопоставления шаблонов.

Example:

GQL:

MATCH (p:Person)-[:friendsWith]->(friend)-[:purchased]->(o:Order)
WHERE p.name = 'Alice';
RETURN o

SQL (эквивалентно):

SELECT o.*
FROM Person AS p
JOIN Friends_With AS fw ON p.id = fw.person_id
JOIN Person AS friend ON fw.friend_id = friend.id
JOIN Purchased AS pur ON friend.id = pur.person_id
JOIN "Order" AS o ON pur.order_id = o.id
WHERE p.name = 'Alice';

Замечание

GQL — это стандартизированный язык запросов ISO для баз данных графов. Он предназначен для эффективного запроса и обработки структурированных графом данных. Та же международная рабочая группа, которая контролирует SQL, разрабатывает ее.

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

Графовые базы данных могут превосходить реляционные базы данных по производительности для запросов, включающих множество связей или неизвестных глубин, особенно для анализа глубоких связей или рекурсивных запросов. Реляционные базы данных превосходны в операциях над множествами и агрегировании благодаря нескольким десятилетиям оптимизации. В графе Microsoft Fabric движок запросов оптимизирован для обхода и сопоставления шаблонов в крупномасштабных графах, хранящихся в OneLake.

Рекомендации по масштабированию для графов и реляционных баз данных

  • Реляционные базы данных: Обычно масштабируется вертикально (большие компьютеры) и может горизонтально масштабироваться с помощью сегментирования и репликации. Сегментирование высокосоединенных схем является сложным и может привести к перекрестной сетевой нагрузке.
  • Базы данных Graph: Вертикальное и горизонтальное масштабирование. Распределённые графовые базы данных разделяют графы между компьютерами, стремясь сохранить связанные узлы вместе для эффективного обхода.

Использование графовой базы данных или реляционной базы данных

Используйте базу данных графа, если:

  • Ваши данные высоко связаны и имеют обилие связей (например, социальные сети, графы знаний и рекомендации).
  • Необходимо пройти неизвестное или переменное количество прыжков.
  • Схема развивается или частично структурирована.
  • Вы хотите интуитивно понятное моделирование для доменов, где отношения являются центральными.

Используйте реляционную базу данных, если:

  • Данные в основном табличные или соответствуют четко определенной структуре.
  • Запросы включают интенсивные агрегации или операции с большими наборами данных.
  • У вас есть инструменты или знания, согласованные с SQL.

Гибридные подходы с графами и реляционными базами данных

Во многих проектах используются оба типа баз данных: реляционная база данных для основных транзакционных данных и графовая база данных для специализированной аналитики или сетевых функций анализа. В Microsoft Fabric можно объединить граф с другими хранилищами данных в одной рабочей области, предоставляя реляционные и графовые возможности без перемещения данных между отдельными системами.