<分区>
我已经创建了我的应用程序的类图,我想知道是否可以基于类图创建关系数据库图。如果可能的话,是否也可以反过来做?
<分区>
我已经创建了我的应用程序的类图,我想知道是否可以基于类图创建关系数据库图。如果可能的话,是否也可以反过来做?
最佳答案
类图表示使用对象模型的系统。关系数据库图表示使用关系模型的数据系统。这两种模型呈现同一系统的方式存在显着差异。数据模型不会对行为进行建模。它仅对数据建模。
但是,有一种建模系统介于类图和关系图之间。它称为 E-R 图,其中 E-R 是 Entity-Relationship 的缩写。在 E-R 模型中,整个主题被分解为“实体”,可以是人、地点或具有身份的事物。它们甚至可以是无形的东西,比如银行账户。关系涉及两个或多个实体,及其关于构成数据库中大部分数据的关系的断言。数据值是属性的实例,属性描述实体或实体之间的关系。
您将在 SO 中看到的大多数 E-R 图实际上是伪装成 ER 图的关系图。在真正的 ER 图中,不存在外键,多对多关系可以用一条线表示,并且诸如 gen-spec 模式之类的东西看起来与它们在类图中的表现非常相似。事实上,ER 图可以看作是对象世界到数据世界的投影。
如果您将 ER 建模作为与关系建模不同的事件来学习,从而产生不同的模型,您会发现将类图转换为 ER 图相当容易。
从那里开始,将 ER 图转换为关系图几乎是机械的。每个实体都有一张表,多对多关系有自己的表。继承和关联得到特殊对待,等等。在 ER 建模的世界中被视为抽象的关系变成了外键。就 ER 模型中实体的关键属性而言,每个表的主键变得显而易见。
而在 ER 模型中称为“属性”的东西(在类模型中可能是“属性”)在关系模型中变成了“列”。
有一些奇特的工具可以在同一个工具中管理对象模型、ER 模型和关系模型,并且可以为您在这些模型之间移动。其中之一,“数据架构师”在几年前非常好但非常昂贵。
关于database - 是否可以将类图转换为关系数据库图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5199950/