database - RDBMS 能做什么 Neo4j(和图形数据库)做不到的事情?

标签 database nosql rdbms neo4j graph-databases

“A Graph Database –transforms a–> RDBMS”

Neo4j 站点似乎暗示您可以在 RDBMS 中做的任何事情,也可以在 Neo4j 中做。

在选择 Neo4j 作为 RDBMS 的替代品之前,我需要回答一些疑问。


我对 Neo4j 感兴趣

  • 能够快速修改数据“架构”
  • 能够自然地表达实体而不是关系和规范化
  • ...这会产生高度表达的代码(比 ORM 更好)

这是一个 NoSQL 解决方案,我感兴趣的是它的功能,而不是高性能。


问题:Neo4j 是否存在任何可能使其不适合作为 RDBMS 替代品的问题?

我特别关心这些:

  • 是否有任何DB 功能 我必须在应用程序逻辑 中实现? (例如,你必须在应用层为一些NoSQL DB实现连接)
  • 字段是否“索引”以允许比 O(n) 更快的查找?
  • 如何处理热备份和复制?
  • “改变”架构或让具有不同版本架构的实体共存有任何问题吗?

最佳答案

这是一个非常广泛的主题,涵盖从建模和实现到 IT 和支持的方方面面。在这里不可能真正回答所有这些问题,尤其是在没有详细说明您的情况的情况下。但是,您似乎正在探索各种选择和途径。因此,作为实现了多个系统的人,我将传递一些一般性的思考。

似乎每个人都认为他们的新数据库范例是关系数据库的替代品。因此,请对这些说法持保留态度。

我喜欢从 3 种基本模型的角度来思考:关系、文档和图形。根据您的问题空间,其中一个或多个是正确答案。除了关系(基于 SQL),我不会做任何金融交易。如果您正在构建 CMS,那么文档数据库是最佳选择。如果我的应用程序是建模网络(道路、人、连接、网络等),我会使用 Neo4J。

就制作质量而言,每个类别都有可靠的选择。关系有一堆。对于文档数据库,我会选择 MongoDB 或更高级别的 JCR 系统,如 Apache Jackrabbit。对于绘图,我只有 Neo4j 的经验,它对我来说非常可靠。

无论您做什么,都不要相信“我们拥有解决您所有问题的一项技术”的炒作。它不存在,它会缩小你的思维范围。

关于database - RDBMS 能做什么 Neo4j(和图形数据库)做不到的事情?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8872155/

相关文章:

ruby-on-rails - Rails 控制台中的 Postgres 连接过多

sql - 有没有不依赖 SQL 的 DBMS?

mysql - 我可以将 2 个不同的查询(返回单个记录)合并到一个返回单个记录的查询中吗?

php - 'No SQL' Cloud DB入门,学哪个比较好???

hadoop - 配置单元到RDBMS增量导出

mysql - 在数据库模式设计方面需要帮助以获取打印厂产品选项

database - 用户要求非规范化数据库

php - 在数据库中存储 PHP session 数据的最佳实践是什么?

nosql - "Within X miles"在mongodb中搜索

mongodb - NoSQL 是否符合报告软件的要求?