【问题标题】:If formal design approach to Relational Database is Entity-Relationship Diagram, what is the approach for NOSQL Database?如果关系数据库的正式设计方法是实体关系图,那么 NOSQL 数据库的方法是什么?
【发布时间】:2011-01-10 17:04:13
【问题描述】:

我是数据库设计的新手。据我所知,我们使用实体关系图来帮助设计关系数据库。

如果关系数据库的正式设计方法是 ERD,那么 NOSQL 数据库的方法是什么?

【问题讨论】:

  • 实体关系图是一种可用于设计关系数据库的工具。它们不是唯一的方法,甚至不一定是最好的。关系数据库早在 ER 建模和 ER 图之前就发明了。

标签: database-design nosql


【解决方案1】:

我认为您可能会使用实体关系图。仅仅因为您的数据库不像 RDBMS 那样处理数据实体之间的关系并不意味着您的数据没有关系,只是这些关系是在应用程序中实现的,而不是在(非 R)数据库管理系统。我认为了解您要存储在数据库中每个条目中的信息仍然值得。

如果您想要更量身定制的东西,那么问题在于"NoSQL" is an umbrella term for a lot of different DB architectures。在确定最佳设计方法之前,您可能需要确定您希望使用哪种 NoSQL 数据库。我认为在其中几乎任何一个中,您都会想了解您的实体具有哪些属性,但是,即使您使用的 DB 比经典 SQL DB 具有更大的灵活性(例如键/值对的变量集)

【讨论】:

  • 其实关系型 NoSQL 数据库有很多。例如,图形数据库几乎可以存储关系。
  • Jörg,图数据库不是关系数据库。它们是非常不同的东西。图数据库通常不支持关系,而关系数据库不允许导航或数据项之间的“链接”。事实上,图模型不如关系模型通用。
  • @dportas:如果边不是顶点之间的关系,那么它是什么
  • @Jörg,边可能代表关系,但它肯定不是关系。关系是关系数据库的组成部分,而不是关系。 mathworld.wolfram.com/Relation.html 图可以用 2 级或更高阶的关系表示,但这不是图数据库实际使用的表示,因此它们不是关系的。
  • @dportas:我每天都在 SO 上看到这个,即当他们的意思是“关系”时说“关系”:(
【解决方案2】:

对于图形数据库,实体关系模型(或其面向对象的表亲,类关联模型)非常匹配:匹配非常好,以至于我认为图形数据库在本地执行这样的模型。

所有其他类型的数据库(包括关系数据库)都要求开发人员“做一些额外的工作”来将模型映射到数据库。例如。对于 SQL 数据库,额外的东西相对较小(例如,将 N-N 关系映射到额外的表、继承的解决方法)。相反,哈希表的额外内容相当大(属性序列化、关系的手动管理等)

当然,不同的图数据库也有不同的无缝连接。我参与了一个名为 InfoGrid 的图形数据库,其中从高级模型到代码的步骤是通过代码生成器自动完成的。

【讨论】:

    【解决方案3】:

    对于键值存储使用哈希图,对于图形数据库使用图形...这些模型应该非常简单,但它们是否与 er 模型一样有用是值得怀疑的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-30
      • 1970-01-01
      • 2021-11-11
      相关资源
      最近更新 更多