顺便说一句 - 参考数据建模,我指的是逻辑或概念数据模型 - 而不是物理模型。
在工作讨论中提出了这个问题;我自然而然地跳到维基百科以获得一些基本的定义 - 希望他们可以澄清差异 - 但他们没有......
概念架构或概念数据模型是概念及其概念的映射 关系。
逻辑数据模型看起来非常相似(来自此定义):
系统中的逻辑数据模型(LDM) 工程是一种表现形式 组织的数据,组织在 术语实体和关系 独立于任何特定数据 管理技术。
其中-AS ...
域模型或域对象模型 (DOM)解决问题和软件 工程可以被认为是一种 系统的概念模型 描述了各种实体 参与该系统和他们的 关系。
领域模型与概念数据模型之间的差异似乎特别模糊。
增加这种混淆的一个原因是(从我所看到的)域模型通常使用UML类图建模 - UML类图中的类实体支持方法 - 我们的同事坚持认为域模型不得包含“操作”。我可以使用UML类图的子集来理解域建模器 - 但假设人们在使用它们所使用的工具支持它时不会包含“操作”,这不是很危险吗?
答案 0 :(得分:11)
好问题,问题在于它取决于术语的定义,我认为它们根据来源略有不同。 我同意之前的回答 - 域模型用于描述问题域,至少是开发解决方案所需的部分。您描述了所有各种实体,它们的关系和它们的行为。我认为这也是Domain Driven设计视角的观点。 另一方面,数据模型用于描述系统中的数据以及它们之间的关系或关联。这对于描述需要存储在系统中的内容非常有用,并且可能还提供了提示。我认为数据模型适用于您的“无操作”规则,因为它们在这方面并不重要。
答案 1 :(得分:5)
域建模(在域驱动设计意义上)是关于对域概念的行为建模,而数据建模主要关注...数据。
这并不意味着Domain Modeling会忽略数据结构。它只是更加强调操作以及它们如何用于解决问题。
除了领域驱动设计领域建模技术之外,我不太了解,但DDD(除了建模数据和行为之外)还涉及一致性边界(聚合)的显式建模。
答案 2 :(得分:2)
这是一个旧帖子,但这里有一个稍微改进的答案,以澄清这里发布的其他一些内容。
'域'的概念(以及其他类型的模型,例如概念,逻辑和物理)与用于表示模型的技术(例如,ERD,UML等)正交。域模型与概念模型基本相同,但不同的设计方法可能会略有不同的术语和定义。虽然使用UML或ERD描述实体及其关系(或UML中的类/方法)来绘制域模型很常见,但这仅适用于对系统管理的信息进行建模 - 逻辑上,域的概念建模(或概念建模,逻辑建模或物理建模等)可以应用于任何问题情况和解决方案。根据问题的性质和解决问题的方法,可以使用其他建模技术来实现相同的目标。
简而言之,域建模和概念建模基本上是相同的,除了毛发分裂定义。该概念适用于建模者尝试沟通的 。数据建模(即ERD)或面向对象建模(即UML)的概念是指建模者传达它的 。
答案 3 :(得分:0)
我想说一个域模型描述了给定域上的问题(我们想要管理/解决的问题)。数据模型将描述解决方案(我们将如何解决它)到域模型中描述的问题。
但是,我们确实在浑水中......