如果关系型数据库的正式设计方法是实体关系图,那么非关系型数据库的设计方法是什么?

4

我对数据库设计还很陌生。据我所学,我们使用实体关系图来帮助设计关系型数据库。

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


实体关系图是一种用于设计关系数据库的工具之一。它们并不是唯一的方法,甚至不一定是最好的方法。在ER建模和ER图出现之前,关系数据库已经存在了很长时间。 - nvogel
3个回答

5
我认为你可以使用实体关系图。仅因为你的数据库处理数据实体之间的关系的方式与关系型数据库管理系统不同,并不意味着你的数据没有关系,只是这些关系是在应用程序中而不是非关系型数据库管理系统中实现的。我认为理解要存储在数据库中的每个条目的信息仍然是有价值的。
如果你想要更加定制化的内容,那么问题在于"NoSQL是许多不同的数据库架构的总称。在确定最佳设计方法之前,你可能需要确定你期望使用哪种NoSQL数据库。我认为在任何一种数据库中,你都需要了解实体具有哪些属性,即使你使用的数据库允许比经典的SQL数据库更灵活的方式(例如,键/值对的可变集合)。

实际上,有很多关系型的NoSQL数据库。比如,图形数据库几乎只能存储关系。 - Jörg W Mittag
1
Jörg,图形数据库不是关系型数据库。它们是非常不同的东西。一般来说,图形数据库不支持关系,而关系型数据库不允许数据项之间的导航或“链接”。事实上,图形模型比关系模型更不普遍。 - nvogel
如果一条边不是顶点之间的关系,那它是什么呢? @dportas - Jörg W Mittag
4
@Jörg,一个边可以代表一种关系,但它并不是一种关系。关系是构成关系数据库的基础,而不是关系。http://mathworld.wolfram.com/Relation.html 一个图可以被表示为二阶或更高阶的关系,但这并不是图数据库实际使用的表示方式,因此它们不是关系型数据库。 - nvogel
@dportas:我每天在SO上都看到这种情况,即他们说“relation”时实际上是指“relationship”:( - onedaywhen

1

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

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

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


0

对于键值存储使用哈希映射表,对于图形数据库使用图形结构...这些模型应该是相当直接的,但它们是否像ER模型一样有用还存在疑问。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接