首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以将类图转换为关系数据库图?

问是否可以将类图转换为关系数据库图?
EN

Stack Overflow用户
提问于 2011-03-05 06:24:42
回答 4查看 12.9K关注 0票数 9

我已经为我的应用程序创建了一个类图,我想知道是否可以基于这个类图创建一个关系数据库图。如果可能的话,是否也可以通过其他方式来完成呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-03-05 21:57:12

类图表示使用对象模型的系统。关系数据库图表示使用关系模型的数据系统。这两个模型呈现同一系统的方式有很大的差异。而且数据模型不会对行为进行建模。它只对数据进行建模。

然而,有一个介于类图和关系图之间的建模系统。它被称为E-R图,其中E-R是实体关系的缩写。在E-R模型中,整个主题被分析成“实体”,实体可以是具有身份的人、地点或事物。它们甚至可以是无形的东西,比如银行账户。关系涉及两个或多个实体,以及它对构成数据库中大部分数据的关系的断言。数据值是属性的实例,属性描述实体或实体之间的关系。

您将在中看到的大多数E-R图实际上都是伪装成ER图的关系图。在真正的ER图中,外键是不存在的,多对多关系可以用一条线来表示,像gen-spec模式这样的东西看起来和类图中的一样。事实上,ER图可以看作是对象世界到数据世界的投影。

如果您将ER建模作为与关系建模截然不同的活动来学习,从而得到不同的模型,那么您将发现将类图转换为ER图相当容易。

从那时起,将ER图转换为关系图几乎是机械的。每个实体都有一个表,多对多关系也有自己的表。继承和关联得到特殊对待,等等。在ER建模领域中被视为抽象的关系变成了外键。根据ER模型中实体的键属性,每个表的主键变得显而易见。

ER模型中的“属性”(可能是类模型中的“属性”)变成了关系模型中的“列”。

有一些奇特的工具可以在同一个工具中管理对象模型、ER模型和关系模型,并且可以在这些模型之间移动。其中之一,“数据架构师”非常好,但几年前非常昂贵。

票数 5
EN

Stack Overflow用户

发布于 2011-03-05 14:05:00

不确定您所说的“关系数据库图”是什么意思。如果你引用一个带有DDL语句的SQL脚本来为你的模型创建关系模式,那么你也许可以看到工具是如何进行这种转换的(例如,查看这个在线的UML to SQL代码生成器http://modeling-languages.com/content/uml2db-full-code-generation-sql-scripts-databases)

大多数转换规则都很简单(类>表,属性->column,关联->外键,...)但是您可以使用带有继承和关联类的UML图,看看这是如何转换的。

票数 3
EN

Stack Overflow用户

发布于 2011-03-06 20:02:17

我使用的另一个选项是在我的类图中添加数据库构造型。它在我的代码中生成Java持久性注释。最后,我使用Hibernate从Java代码生成代码。

它真的工作得很好!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5199950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档