领域模型和数据模型有什么区别?
一个数据模型是一个只描述数据及其关系的设计模型。该模型包含实体,但是它们是根据它们拥有的数据而不是它们对数据的操作或责任来描述的。
另一方面,领域模型是在问题领域分析中使用的概念模型。它以实体的形式描述了领域中的关系、数据和行为。它描述了这些实体的职责,以便更好地理解问题领域。
顺便说一下,一本很好并且非常简短的UML介绍书是:
一个数据模型专注于数据库架构的定义,包括表、列和关系。
一个领域模型专注于业务领域,包括概念(对象的类别),行为(方法/逻辑)和关系。
在两种情况下,基数用于关系(例如1:1、1:多、0:多等)。
也就是说,您希望数据模型和领域模型紧密相关,即具有名称、...和邮寄地址、...的人与具有名称列和对邮寄地址表条目的FK关联的PERSON表相关。必须决定逻辑托管位置--在软件系统中的对象还是通过存储过程、触发器等在DB中。
我认为为后人提供一些澄清是很重要的。
数据模型是一种设计,用于构建和表示信息。通过结构,我指的是像“第五范式”这样的问题。通过表示,我指的是选择计算机序列化,例如整数、浮点数或字符串。
术语领域模型实际上有两个混淆的含义。
UML和OWL语言都可以用于表示任何一种领域模型。两者都可以被视为分析模型,因为它们用于分析一个领域。其中一个用于理解领域中的事物,另一个用于收集构建特定软件或数据库系统所需的要求。两者都是必要的,不幸的是,它们通常被混淆在一起,以至于构建分析模型的人们对他们正在建模的内容感到困惑!
我认为领域模型和数据模型现在几乎是相同的,因为有了新的自上而下建模技术。我的意思是,你可以在类图中建模,只需在图中添加数据库构造型。如果你使用我使用的工具,那么你的ejb3注释将立即与你的代码同步。下一步只需要使用映射器创建你的数据库。这项技术仅适用于Java。