Это несколько абстрактный и общий вопрос. Меня интересуют присущие (а также специфичные для реализации) свойства разных подходов к сохранению неструктурированных данных как с множеством внутренних ссылок (по графику), так и с множеством свойств (JSON-like).
-
Так как граф является надмножеством дерева, вы можете посмотреть на графические DB (например, Neo4j) в виде надмножества DB-документов (например, MongoDB). То есть, DB графа обеспечивает все функциональные возможности документа DB плюс дополнительно также позволяет циклы или имеет собственный тип указателя, поэтому вам не нужно вручную разыскивать внешние ключи/идентификаторы. Итак, есть ли какой-то переломный момент, который вы достигаете, добавляя больше ссылок на свои объекты/ресурсы, где вам лучше с помощью графической базы данных, но раньше было лучше с хранилищем документов? Имеются ли преимущества для документирования БД (пространство для хранения, производительность?) Или вы всегда должны идти с графическим DB на случай, если вам понадобится больше ссылок в будущем?
-
Аналогично, как сравнивают DB-диаграммы и трипрессторы (например, хранилища RDF)? Графические DB (где узлы и ребра имеют свойства) кажутся суперсетными простыми трипрессорами. Итак, для каких проблем (если таковые имеются) лучше выполнять триплестры, скажем Neo4j? (Одно из преимуществ хранилищ RDF заключается в том, что существует стандартизованный язык запросов - SPARQL - хотя, похоже, много людей, которым не нравится SPARQL, и, таким образом, назвал бы это недостатком.)
Я предполагаю, что мой вопрос: модель графа (со свойствами), кажется, способна аккуратно выражать все виды данных, что является уловкой, когда вы входите в реальность? Я полагаю, что уловка графических DB - это производительность, поэтому я хотел бы увидеть некоторые цифры или эмпирические правила о том, какие замедления ожидать при загрузке, запросе и изменении данных, а также памяти и постоянных требованиях к хранению (по сравнению с документом и тройные магазины). Что же касается горизонтальной масштабируемости? У меня сложилось впечатление, что игровое поле достаточно ровное.
Считаете ли вы возможным, что графики с их выразительностью станут новой моделью хранения по умолчанию для проектов, которые не имеют сверхбольших данных, или мы обречены на десятилетие Polyglot Persistence с RDBMS, магазинами JSON и графическими DB, живущими друг с другом, которые должны быть интегрированы с еще большим количеством кода клея?