“图表数据库 - 转换a-> RDBMS“
Neo4j网站似乎暗示无论你在RDBMS中做什么,你都可以在Neo4j中做到。
在选择Neo4j作为RDBMS的替换之前,我需要回答一些疑问。
我对Neo4j感兴趣
这是一个NoSQL解决方案,我感兴趣的是它的功能,而不是高性能。
问题:Neo4j是否存在任何可能导致不适合作为RDBMS替代品的问题?
我特别关注这些:
答案 0 :(得分:2)
这是一个非常广泛的主题,涵盖从建模和实施到IT和支持的所有内容。在这里回答所有这些问题是不可能的,特别是没有关于你情况的细节。但是,您似乎正在探索各种选择和途径。所以,我只是将一些一般的食物传递给思想,因为有人实施了许多系统。
每个人似乎都认为他们的新数据库范例是关系数据库的替代品。所以,把这些说法带上一粒盐。
我喜欢用3种基本模型来思考:关系型,文档型和图形式。根据您的问题空间,这些中的一个或更多是正确的答案。除了关系之外,我不会做任何财务交易(基于SQL)。如果要构建CMS,则可以使用Document DB。如果我的应用程序是建模网络(道路,人员,连接,网络等),我使用Neo4J。
就生产质量而言,每个类别都有坚实的选择。关系有一堆。对于文档数据库,我会使用MongoDB或更高级别的JCR系统,如Apache Jackrabbit。对于图形,我只有Neo4j的经验,对我来说它是坚如磐石的。
无论你做什么,都不要误以为“我们有一种解决你所有问题的技术”。它不在那里,它缩小了你的想法。
答案 1 :(得分:1)
我现在已经确信Neo4j是关系数据库的良好替代品。
但是
虽然它支持复制并且Neo明确地将其作为大数据产品推销,但我无法证实它具有足够的可扩展性,而且我没有研究安全方面。
在最近的版本中(比上面的问题更年轻),可以在标签上定义索引,这些索引就像关系数据库中的表上的索引一样,允许进行O(log(n))查找。
(fyi:Neo4j没有桌子,但每个节点(〜=行)可以有不同的标签,与gmail标签相比。这更灵活:你不必选择是否把汽车和自行车放入一个用于车辆桌子或不用:自行车将同时具有:车辆和:自行车标签。)
回答原始问题: Neo4j几乎不支持架构实施。 Neo建议在您的数据库上实现自动一致性测试,您可以在验证测试实例上作为发布周期的一部分运行。
答案 2 :(得分:0)
使用像oracle这样的企业数据库将为您提供许多可能或可能不属于neo的功能。其中包括:
如果您要自己在代码中实现应用程序的大部分功能,并且不需要rdbms提供的结构和高级功能,或者如果您的数据结构更适合基于图形的数据库,那么所有意味着试验新。有一个原因,大多数企业应用程序使用传统的rdbms服务器之一,但未来可能并非总是如此