这是一个有点抽象和笼统的问题。我对使用大量内部引用(类似图形)和大量属性(类似 JSON)的不同方法的固有(以及特定于实现)属性来保存非结构化数据感兴趣。
由于图是树的超集,您可以将图 DB(例如 Neo4j)视为文档 DB(例如 MongoDB)的超集。也就是说,图形数据库提供了文档数据库的所有功能,另外还允许循环或具有本机指针类型,因此您不必手动取消引用外键/ID。那么,当您向对象/资源添加更多引用时,您是否会遇到一些转折点,您最好使用图形数据库,但以前使用文档存储更好?文档数据库(存储空间、性能?)是否有优势?还是应该始终使用图形数据库以防万一将来需要更多参考?
同样,图数据库和三元存储(例如 RDF 存储)如何比较?图 DB(其中节点和边具有属性)似乎是简单三元组的超集。那么对于什么问题(如果有的话)执行三元存储实际上更好,比如 Neo4j?(RDF 存储的一个优点是有一种标准化的查询语言——SPARQL——尽管似乎有很多人不喜欢 SPARQL,因此将其称为缺点。)
我想我的问题是:图模型(带有属性)似乎能够巧妙地表达各种数据,当你进入现实时有什么问题?我认为图形数据库的关键在于性能,所以我希望看到一些数字或经验法则,了解加载、查询和修改数据以及内存和持久存储要求时会出现什么样的减速(与文档相比)和三重商店)。水平可扩展性又如何?我的印象是那里的比赛场地相当公平。
您是否认为具有可表达性的图有可能成为没有超大数据的项目的新默认存储模型,或者我们注定要十年多语言持久性与 RDBMS、JSON 存储和 Graph DB 并存必须与更多胶水代码集成?