【发布时间】:2011-01-10 17:04:13
【问题描述】:
我是数据库设计的新手。据我所知,我们使用实体关系图来帮助设计关系数据库。
如果关系数据库的正式设计方法是 ERD,那么 NOSQL 数据库的方法是什么?
【问题讨论】:
-
实体关系图是一种可用于设计关系数据库的工具。它们不是唯一的方法,甚至不一定是最好的。关系数据库早在 ER 建模和 ER 图之前就发明了。
标签: database-design nosql
我是数据库设计的新手。据我所知,我们使用实体关系图来帮助设计关系数据库。
如果关系数据库的正式设计方法是 ERD,那么 NOSQL 数据库的方法是什么?
【问题讨论】:
标签: database-design nosql
我认为您可能会使用实体关系图。仅仅因为您的数据库不像 RDBMS 那样处理数据实体之间的关系并不意味着您的数据没有关系,只是这些关系是在应用程序中实现的,而不是在(非 R)数据库管理系统。我认为了解您要存储在数据库中每个条目中的信息仍然值得。
如果您想要更量身定制的东西,那么问题在于"NoSQL" is an umbrella term for a lot of different DB architectures。在确定最佳设计方法之前,您可能需要确定您希望使用哪种 NoSQL 数据库。我认为在其中几乎任何一个中,您都会想了解您的实体具有哪些属性,但是,即使您使用的 DB 比经典 SQL DB 具有更大的灵活性(例如键/值对的变量集)
【讨论】:
对于图形数据库,实体关系模型(或其面向对象的表亲,类关联模型)非常匹配:匹配非常好,以至于我认为图形数据库在本地执行这样的模型。
所有其他类型的数据库(包括关系数据库)都要求开发人员“做一些额外的工作”来将模型映射到数据库。例如。对于 SQL 数据库,额外的东西相对较小(例如,将 N-N 关系映射到额外的表、继承的解决方法)。相反,哈希表的额外内容相当大(属性序列化、关系的手动管理等)
当然,不同的图数据库也有不同的无缝连接。我参与了一个名为 InfoGrid 的图形数据库,其中从高级模型到代码的步骤是通过代码生成器自动完成的。
【讨论】:
对于键值存储使用哈希图,对于图形数据库使用图形...这些模型应该非常简单,但它们是否与 er 模型一样有用是值得怀疑的。
【讨论】: