Ответ
Графовые БД хранят данные в виде узлов (сущностей) и связей между ними (ребер), что идеально для сложных взаимосвязей (соцсети, рекомендации). Пример 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 — кэш, сессии