В чем разница между графовыми и ключ-значение БД

«В чем разница между графовыми и ключ-значение БД» — вопрос из категории Базы данных, который задают на 27% собеседований Системный Аналитик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Графовые БД хранят данные в виде узлов (сущностей) и связей между ними (ребер), что идеально для сложных взаимосвязей (соцсети, рекомендации). Пример Neo4j:

CREATE (user:User {name: "Alice"})-[:FRIENDS_WITH]->(friend:User {name: "Bob"})

Ключ-значение БД (Redis, DynamoDB) — простейшая модель, где данные хранятся как пары ключ-значение. Быстры для простых запросов, но не поддерживают связи:

SET user:1 "Alice"
GET user:1

Ключевые отличия:

  • Структура: графы — связи, K/V — плоская структура
  • Запросы: графы — обход связей, K/V — точечный доступ
  • Use-case: графы — сложные отношения, K/V — кэш, сессии