手工建立映射
这种方式适用于以下几种情况:
在已经存在的模型间建立映射。企业的信息系统是一个异构的环境,很多应用程序和数据库都是独立开发的,它们具有不同的模型,如果它们之间需要进行数据交互,则需要建立它们之间的映射,比如新的ERP系统中和企业原有的数据库间的映射。
数据库和程序由不同的组负责设计。大型的企业应用程序可能包含很多业务子系统,每个业务子系统只考虑如何实现它自己的业务需求,而数据库设计要从整体出发,考虑整个应用程序的需求。对于每个业务模块,需要定义它的逻辑模型和数据库模型间的映射。
在建立映射之前,我们需要给面向对象模型创建数据源,然后添加要映射的数据库模型。表1中可以映射的面向对象元素都有一个映射的定义窗口,比如下图所示的类的映射属性页。通过这个映射属性页,用户可以添加或者删除对应的数据库模型元素,这些元素只能是表1中该元素对应的类型。
像其他模型的元数据一样,PowerDesigner会把映射元数据存储在模型中,映射元数据通过快捷方式来记录对应的模型元素。如果对应的模型发生改变,比如表的名称发生改变,对于映射元数据没有影响。当用户需要得到对应元数据的属性的时候,PowerDesigner会解析快捷方式,找到目标元素,用户得到的是当前元素的信息,对比于文档或者表格,这种方式提高了一致性和可维护性。而且PowerDesigner提供了变更影响分析视图,它可以帮助用户在变更之前分析可能产生的影响,比如在改变列的类型之前,用户可以了解到是否会造成映射到此列的属性类型的不匹配。
也许用户认为这种操作方式太复杂,用户需要切换到每个面向对象的窗口来定义它的映射。从PowerDesigner 12开始,用户可以通过另外一种更加便捷的方式,映射编辑器,来定义元素间的映射关系。映射编辑器提供了一种All-In-One的操作方式,通过元模型和目标模型的树状视图,用户可以方便的通过托拽的方式来定义所有的映射。
模型自动生成
在很多时候我们要开发一个全新的系统,而数据库仅仅考虑这个系统的数据管理需求,或者开发新的应用程序访问已有的数据库。采用面向对象方法的软件开发通常采用自顶向下的开发过程,先建立企业的应用模型,然后再进行数据库设计。用户也可以采用自底向上的开发过程,也就是以数据为中心的开发过程,先进行数据库设计,或者应用已有的数据库模型,再设计应用程序模型。
既然我们定义了模型间映射模式,如果有了一种模型,为什么不能自动生成另外一模型,并且建立它们间的映射。PowerDesigner就提供了这种模型的自动生成功能,使得用户能够重用现有的模型,方便的生成目标模型。对于面向对象模型和数据库模型来说,这种自动生成功能是双向的,即可以通过面向对象模型来生成数据库模型,也可以通过数据库模型来生成面向对象模型。
自动生成数据库模型
这种模式适合于自顶向下的开发过程,即先建立应用程序模型,再设计数据库。我们可以应用PowerDesigner提供的转换模式,将应用程序模型中描述持久信息的面向对象元素,实体类、关联、继承,生成数据库模型对应的元素。
根据已经被证明的映射模式,PowerDesigner提供了一些缺省的转换模式,用户也可以定制转换模式来控制生成过程