从类图到数据库关系图

时间:2011-03-04 22:24:42

标签: database class uml relational-database

您能否向我推荐一本教程或书籍,将类图转换为关系数据库图。 反之亦然,如果存在此类参考,请发布。

5 个答案:

答案 0 :(得分:3)

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

大多数转换规则都很简单(class-> table,attribute - > column,association - > foreign key,...)但是你可以使用带有继承和关联类的UML图来看看它是如何实现的已翻译。

答案 1 :(得分:3)

类图表示使用对象模型的系统。关系数据库图表示使用关系模型的数据系统。这两种模型呈现相同系统的方式之间存在显着差异。数据模型不会对行为进行建模。它只对数据建模。

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

你在SO中看到的大多数E-R图表都是伪装成ER图的关系图。在真正的ER图中,不存在外键,多对多关系可以图示为单行,并且诸如gen-spec模式之类的东西看起来与它们在类图中的方式大致相同。事实上,ER图可以被视为对象世界仅在数据世界中的投影。

如果你将ER建模作为一种与关系建模不同的活动来学习,从而得到一个不同的模型,你会发现将类图转换成ER图非常容易。

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

ER模型中所谓的“属性”(可能是类模型中的“属性”)在关系模型中成为“列”。

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

答案 2 :(得分:2)

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

效果很好!!

答案 3 :(得分:2)

有一篇很好的文章解释了这种转变:Database Modelling in UML

答案 4 :(得分:1)

使用Enterprise Architect,您可以使用其MDA(模型驱动架构)转换自动将类模态生成到关系数据库模型中。这样可以省去手动重新完成所有图表的工作。

有关MDA Transformations

的更多信息