我有作业,我应该绘制一个类图和数据模型。我写了类图。我不知道如何处理数据模型。 有什么区别?
根据互联网上的文字,他们在我看来,即:类图和数据模型是一回事。
class diagrams
和data models
之间有什么区别。
答案 0 :(得分:6)
统一建模语言,您可能已经知道,是一种用图表描述系统的方法。它们不仅涉及软件,还涉及硬件,经济,日常用品,实际上任何东西,尽管它们更常用于软件系统。
类图详细说明了如何将系统拆分为离散对象,这些对象如何相互关联以及它们可能具有的任何已知接口。类图中的每个类都可以同时保存数据和函数。
例如,Car类有一个引擎,一个方向盘类和多个链接到它的Wheel,Door,Seat和Pedal类。在所有这些中,类图是静态的。
我不确定数据模型的含义。
我见过用于建模数据库表的类图,通常它们没有任何功能元素,只显示数据表如何相互关联。
有些人认为需要对数据图的UML标准进行补充,但尚未批准。
这是因为表之间的数据,关键关系和约束的持久性很难用标准类图进行建模,并且大多数UML工具都会对标准进行调整以实现此目的。
然后有“数据流图”,它们实际上是活动图,用于显示系统内进程之间的数据流。
现在,如果我们回到类图并假设数据图用于建模数据库,那么您会注意到可能会忽略的一些差异。
类图上的类可以包含数据属性(代码变量等)和功能属性(方法,过程,函数等),但类的这些元素也可以具有访问属性(私有,公共等)。类图也可以显示继承性,例如一辆大众汽车是一辆汽车,福特也是如此,两者都将继承汽车,这可以展示出来。
数据库意义上的数据图将显示数据项(数据库表中的列/字段),但访问属性(公共,私有等)的概念或继承的概念没有意义,因此无法显示。
这是因为它不对具有数据和功能的离散对象建模,而是对与这些对象关联的数据建模。例如,Car表可以具有到制造商表的关系链接,其中存储了Volkswagon和Ford的值。它可能有一个Wheels列,但这只会显示轮子的数量。数据库的存储过程存在于与数据相关的级别 - 它们利用数据,但不受它们从中获取数据的数据表的控制或拥有。
我可能没有很好地解释自己,但我希望我帮助过。
答案 1 :(得分:1)
Datamodeling不是专注于对象方法的UML。
说过你可以在对象级别的类图中进行建模,并使用Java代码中的Hibernate注释创建数据库。 我的意思是您创建代码并同时添加持久性注释。这将在部署时创建您的数据库。
如果您使用Omondo Persistence配置文件,那么不应该是数据模型的UML也可以在部署级别创建数据。这意味着您可以在对象级别建模并创建数据库。非常强大的方法,因为数据创建阶段现在与对象连接在一起这仍然是一项倡议,但如果大公司采用这种方法,它可能成为一种标准,对我来说,这是我在推荐的Java编写时的最佳实践之一。
答案 2 :(得分:1)
通常,数据模型定义数据库的实现方式。这些图是实体图。类模型是系统中对象之间的功能关系。类有数据但不是数据模型。设计具有类模型和数据模型。举个简单的例子,为客户提供数据模型。该数据模型是我们客户数据库的设计。存在类模型设计以实现如何处理客户订单。数据模型是数据库设计者使用的。类模型是软件设计者用于实现订购业务功能的模型。数据模型和类模型都有图表。他们使用不同的符号和规则。类图与实体图。两种不同的图表。