Открыть сервис

Графовая база данных

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

Основные понятия

Графовая модель данных базируется на трёх ключевых компонентах:

Графовые базы данных, как правило, следуют одному из двух основных подходов к моделированию: модели свойств (Property Graph Model) или RDF-модели (Resource Description Framework). Модель свойств, используемая в Neo4j, Amazon Neptune, JanusGraph, поддерживает произвольные свойства у всех элементов. RDF-модель (используется в Virtuoso, Apache Jena) основана на триплетах «субъект — предикат — объект» и широко применяется в семантическом вебе и построении знаний.

История

Идея представления данных в виде графа восходит к математической теории графов XVIII века (работам Леонарда Эйлера). Однако первые программные реализации графовых структур появились лишь в 1960–1970-х годах, например, CODASYL-модель, основанная на навигации по записям и указателям. Она считается предшественником современных графовых СУБД.

Современный этап развития начался в конце 2000-х годов. Значительный толчок дал рост социальных сетей (Facebook, LinkedIn, Twitter), потребовавших быстрой обработки связей между миллионами пользователей. В 2007 году вышла первая версия Neo4j — наиболее популярной на 2025 год графовой базы данных. Neo4j популяризировала язык запросов Cypher, ориентированный на декларативное описание операций с графами.

В 2010-х годах появились распределённые графовые системы: JanusGraph (ранее Titan), ArangoDB (мультимодельная), TigerGraph и облачные сервисы Amazon Neptune, Microsoft Azure Cosmos DB (с поддержкой Gremlin), Google Cloud Memorystore for Graph. Крупные компании, включая IBM, Oracle, SAP, также внедрили графовые расширения в свои реляционные продукты (Graph Extensions, SQL/PGQ — Property Graph Queries).

В 2017 году был основан GraphQL (язык запросов для API) — не следует путать с графовой базой данных, хотя он также оперирует моделью графа на уровне API. В 2019 году консорциум W3C рекомендовал SPARQL — язык запросов к RDF-графам.

Классификация графовых баз данных

По способу обработки и хранения различают:

По способу развёртывания:

По модели данных:

Языки запросов

Для работы с графовыми базами используются специальные языки, в разной степени ориентированные на декларативное или процедурное описание:

Примеры применения

Графовые базы данных находят применение в областях, где важна высокая связность сущностей:

Социальные сети и рекомендательные системы

Финансы и борьба с мошенничеством

Управление сетями и телекоммуникации

Биология и фармацевтика

Логистика и транспорт

Достоинства и ограничения

Достоинства

Ограничения

Интересные факты

Источники

  1. Э. Бэтси. «Графовые базы данных в эпоху больших данных». — 2-е изд., 2022.
  2. Д. Робинсон, И. Вэббер, Э. Эйфрем, Дж. Харт. «Графовые базы данных: новые возможности для работы со связанными данными». — 3-е изд., O'Reilly Media, 2023.
  3. I. Robinson, J. Webber, E. Eifrem. «Graph Databases», 2nd Edition, O'Reilly, 2015.
  4. Документация Neo4j (neo4j.com).
  5. Стандарт openCypher (opencypher.org).
  6. ISO/IEC 39075:2024 (GQL standard).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →