UML领域建模

11

领域模型和数据模型有什么区别?

4个回答

10

一个数据模型是一个只描述数据及其关系的设计模型。该模型包含实体,但是它们是根据它们拥有的数据而不是它们对数据的操作或责任来描述的。

另一方面,领域模型是在问题领域分析中使用的概念模型。它以实体的形式描述了领域中的关系、数据和行为。它描述了这些实体的职责,以便更好地理解问题领域。

顺便说一下,一本很好并且非常简短的UML介绍书是:

UML Distilled:标准对象建模语言简明指南


数据模型可以存在于概念层、逻辑层和物理层。我认为概念数据模型是领域模型的子集,某些方法论中它们可能是相同的(同构?)。 - MikeAinOz
2
+1 @MikeAinOz。同样,领域模型不一定只是概念性的。领域驱动设计的核心原则是,一个真实、活生生、完全执行的领域模型是解决方案的中心。 - sfinnie
+1 是我要说的。我总是将数据模型与物理相关联,将领域描述为在可观察级别上描述问题区域(即用户如何看待与之交互的项目等应用程序)。 - Bryce Fischer

3

一个数据模型专注于数据库架构的定义,包括表、列和关系。

一个领域模型专注于业务领域,包括概念(对象的类别),行为(方法/逻辑)和关系。

在两种情况下,基数用于关系(例如1:1、1:多、0:多等)。

也就是说,您希望数据模型和领域模型紧密相关,即具有名称、...和邮寄地址、...的人与具有名称列和对邮寄地址表条目的FK关联的PERSON表相关。必须决定逻辑托管位置--在软件系统中的对象还是通过存储过程、触发器等在DB中。


我完全同意这篇文章。我的回答涉及到我在公司中使用的一种实现技巧。我们也采用这种方法,因为我们有Hibernate专家。如果我们没有这种专业知识,我不确定我们是否会采用相同的自上而下建模数据库的方法。 - UML GURU

0

我认为为后人提供一些澄清是很重要的。

数据模型是一种设计,用于构建和表示信息。通过结构,我指的是像“第五范式”这样的问题。通过表示,我指的是选择计算机序列化,例如整数、浮点数或字符串。

术语领域模型实际上有两个混淆的含义。

  • 实体特征模型是对现实或想象中的事物的基本特征建立的模型。在这种模型中,类表示人类的概念化,实例是世界上的东西。例如,“人”类将具有包括你和我在内的实例,“人”类的一个实体特征可能是每个人都有一个母亲。这种模型通常被称为“概念本体论”或“概念模型”,旨在提供意义。
  • 信息要求模型是关于世界上事物所需存储信息的模型,通常与某些系统相关。在这种模型中,类代表必须存储的与世界上事物“有关”的信息。例如,“人”类将具有代表有关你和我的必需信息的实例,如名字,姓氏,出生日期,当前身高和当前体重。这种信息通常不包括所有实体特征,例如我们的母亲,因为对于特定系统而言,不需要该信息。这种模型通常被称为“信息模型”、“概念数据模型”或“操作本体论”。

UML和OWL语言都可以用于表示任何一种领域模型。两者都可以被视为分析模型,因为它们用于分析一个领域。其中一个用于理解领域中的事物,另一个用于收集构建特定软件或数据库系统所需的要求。两者都是必要的,不幸的是,它们通常被混淆在一起,以至于构建分析模型的人们对他们正在建模的内容感到困惑!


-1

我认为领域模型和数据模型现在几乎是相同的,因为有了新的自上而下建模技术。我的意思是,你可以在类图中建模,只需在图中添加数据库构造型。如果你使用我使用的工具,那么你的ejb3注释将立即与你的代码同步。下一步只需要使用映射器创建你的数据库。这项技术仅适用于Java。


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