数据模型和对象模型有啥区别?
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 服务等。
例如,假设您正在跟踪销售部门的客户历史记录。该部门需要客户的姓名、地址、电话、电子邮件和购买历史记录。
在数据模型中,您定义将存储每条数据的表和字段。在该定义中,您可以包含最大长度、数据类型或是否需要数据等信息。
在对象模型中,除了强制执行您在数据模型中设置的规则外,您还可以添加其他行为,例如确保电子邮件地址的格式正确,或者将客户的首字母大写和姓氏。这些类型的规则往往比数据模型中设置的规则更复杂和详细。
无论如何,对象模型的目的是简化应用程序本身的数据管理,并在数据发送到数据库之前对数据执行更高级别的验证。
【讨论】:
可以根据您的经验推荐一个可以最好地完成这项工作的工具吗?以上是关于数据模型和对象模型有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章