数据模型和对象模型有啥区别?

Posted

技术标签:

【中文标题】数据模型和对象模型有啥区别?【英文标题】:What's the difference between data model and object model?数据模型和对象模型有什么区别? 【发布时间】:2011-01-27 14:36:58 【问题描述】:

CWM 是数据建模

UML 是对象建模。

谁能解释一下外行可以理解的区别?

【问题讨论】:

UML 是统一建模语言,不仅仅是对象建模——en.wikipedia.org/wiki/Unified_Modeling_Language 但我们明白了,对吧?有时这足以精确 【参考方案1】:

对象模型:处理系统的面向对象的“蓝图”。这包括类图(您将要创建的类)、这些类之间的关系、类中的方法、属性等。

数据模型:处理数据库级别的实体。就像 OM 中的类将如何存储在数据库中,在哪些表中等等。所以 DM 处理表模式,不同表(PK、FK)之间的关系等。

DM 没有复杂的 OO 特性,如多态性、继承、重载等,这些特性通常在 OM 中列出。

作为一个粗略的例子,OM 中的两个类可以存储(映射)到 DM 中的单个表中,就像 Employee 和 Manager 可以存储在单个 DB 表中一样。

【讨论】:

可以根据您的经验推荐一个可以最好地完成这项工作的工具吗? 我在 OM 和 DM 中都使用 MS Visio 企业架构师 我不认为数据模型只是数据库和程序之间的耦合。他们还将程序与其他数据流和源耦合,例如通过网络提供的 API 和从文件中以序列化格式(例如 JSON)加载的资产。对我来说,数据模型只是程序对外部数据源的对象表示。【参考方案2】:

数据建模处理数据库结构的设计和创建,即。数据的存储方式。

对象建模处理应用程序如何与从外部源接收的信息进行交互,例如最终用户、数据库、Web 服务等。

例如,假设您正在跟踪销售部门的客户历史记录。该部门需要客户的姓名、地址、电话、电子邮件和购买历史记录。

在数据模型中,您定义将存储每条数据的表和字段。在该定义中,您可以包含最大长度、数据类型或是否需要数据等信息。

在对象模型中,除了强制执行您在数据模型中设置的规则外,您还可以添加其他行为,例如确保电子邮件地址的格式正确,或者将客户的首字母大写和姓氏。这些类型的规则往往比数据模型中设置的规则更复杂和详细。

无论如何,对象模型的目的是简化应用程序本身的数据管理,并在数据发送到数据库之前对数据执行更高级别的验证。

【讨论】:

可以根据您的经验推荐一个可以最好地完成这项工作的工具吗?

以上是关于数据模型和对象模型有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

浏览器对象模型和文档对象模型有啥区别?

机器学习“判定模型”,“生成模型‘有啥区别?

集成模型和平均模型有啥区别?

ER图和数据库模型图有啥区别呢?

Core Data 中的可变和不可变托管对象模型有啥区别?

数据建模和领域建模有啥区别?