zoukankan      html  css  js  c++  java
  • PowerDesigner使用教程

    PowerDesigner是一款功能非常强大的建模工具软件,足以与Rose比肩,同样是当今最著名的建模软件之一。Rose是专攻UML对象模型的建模工具,之后才向数据库建模发展,而PowerDesigner则与其正好相反,它是以数据库建模起家,后来才发展为一款综合全面的Case工具。

    PowerDesigner主要分为7种建模文件:

    1.  概念数据模型 (CDM)

    对数据和信息进行建模,利用实体-关系图(E-R图)的形式组织数据,检验数据设计的有效性和合理性。

    2.  逻辑数据模型 (LDM)

    PowerDesigner 15 新增的模型。逻辑模型是概念模型的延伸,表示概念之间的逻辑次序,是一个属于方法层次的模型。具体来说,逻辑模型中一方面显示了实体、实体的属性和实体之间的关系,另一方面又将继承、实体关系中的引用等在实体的属性中进行展示。逻辑模型介于概念模型和物理模型之间,具有物理模型方面的特性,在概念模型中的多对多关系,在逻辑模型中将会以增加中间实体的一对多关系的方式来实现。

    逻辑模型主要是使得整个概念模型更易于理解,同时又不依赖于具体的数据库实现,使用逻辑模型可以生成针对具体数据库管理系统的物理模型。逻辑模型并不是在整个步骤中必须的,可以直接通过概念模型来生成物理模型。

    3.  物理数据模型 (PDM)

    基于特定DBMS,在概念数据模型、逻辑数据模型的基础上进行设计。由物理数据模型生成数据库,或对数据库进行逆向工程得到物理数据模型。

    4.  面向对象模型 (OOM)

    包含UML常见的所有的图形:类图、对象图、包图、用例图、时序图、协作图、交互图、活动图、状态图、组件图、复合结构图、部署图(配置图)。OOM 本质上是软件系统的一个静态的概念模型。

    5.  业务程序模型 (BPM)

    BPM 描述业务的各种不同内在任务和内在流程,而且客户如何以这些任务和流程互相影响。 BPM 是从业务合伙人的观点来看业务逻辑和规则的概念模型,使用一个图表描述程序,流程,信息和合作协议之间的交互作用。

    6.  信息流模型(ILM)

    ILM是一个高层的信息流模型,主要用于分布式数据库之间的数据复制。

    7.  企业架构模型(EAM):

    从业务层、应用层以及技术层的对企业的体系架构进行全方面的描述。包括:组织结构图、业务通信图、进程图、城市规划图、应用架构图、面向服务图、技术基础框架图。

    正所谓“工欲善其事必先利其器”,PowerDesigner就是一把强大的“神器”,若能运用自如,再身怀“绝世武功”,那你基本就遇神杀神遇佛杀佛了!

    关于PowerDesigner物理数据模型的基本使用,我这里就不废话了,给出个连接,地球人看完都知道:http://www.cnblogs.com/huangcong/archive/2010/06/14/1757957.html

     下面就一些比较高级型的用法和技巧我着重说明下。

    1.  生成sql脚本

    Database→Generate Database

    选择要输出的文件路径,即文件存储路径,并根据需要修改文件名,单击确定后便会生成sql脚本。

    在Options选项卡里,可以个性化选择和配置sql脚本,如取消外键,去除drop语句等。

    Selection选项卡中可以选择哪些表要生成sql脚本。

    在Preview选项卡可以预览将要生成的sql脚本。

    2.  将所有名词转化为大写

    tools→Model Options...→Naming Convention→Code→Uppercase。

    3.  表字段设计窗口显示comment来编写注释

    双击表打开表的属性窗口→Columns选项卡→单击上排倒数第二个图标(Customize Columns and Filter)→勾选comment

    4.  修改表的字段Name的时候,Code不自动跟着变

    tools→General Options...→Dialog→取消勾选Name to Code mirroring

    5.  不同数据库之间的转化

    Database→Change Current DBMS→选择要转换成的目标数据库

    6.  导入sql脚本生成相应的数据库表模型图

     File→Reverse Engineer→Database...→修改模块名称并选择DBMS

    Using script files→点击下方图标(Add Files)来添加sql脚本文件→确定

    7.  由物理模型生成对象模型,并生成相应的get、set方法

    tools→Generate Object-Oriented Model...→选择语言→修改Name和Code→(Selection选项卡→选择要生成对象模型的表)→确定

    双击生成的某张表的类图打开属性窗口→选中全部字段→将字段Visibility全部改为private→单击下方Add...按钮→选择Get/Set Operations→确定

    之后生成代码即可:Language→Generate Java Code...

    【注意:不同语言Add...按钮下的内容有区别,如C#是Property】

    6.  生成数据库文档

    Report→Generate Report...→选择Generate RTF→修改Repor namet→语言选择Chinese→选择文件存放位置→确定

    PowerDesigner还提供了文档编辑功能:Report→Reports...→点击New Report图标→修改Repor namet→语言选择Chinese→Report template选择Full Physical Report

    之后即可打开文档编辑窗口,不过限于篇幅这里就不再详细说明如何编辑了,大家自己看看吧。

    8.  如何建立自增主键

    双击表打开属性窗口→勾选P主键复选框→双击设置为主键的字段(在行的头部双击)或者单击上方的属性图标按钮→在打开的窗口下方(注意不同数据库不一样,sql server是identity复选框)选择sequence,如果没有则单击旁边的新建按钮创建一个sequence。

    9.  如何建立视图

    工具栏中单击视图(view)按钮→创建视图→双击视图打开属性窗口,其中Usage是表示视图是只读的还是可更新的。如果我们只创建一般的视图,那么选择query only选项即可。

    切换到SQL Query选项卡,在文本框中可以设置定义视图的sql查询语句,在定义视图时最好不要使用*,而应该使用各个需要的列名,这样在视图属性的Columns中才能看到每个列。单击右下角Edit with SQL Editor按钮,即可弹出SQL Editor编辑器,编写SQL语句。也可采用其他sql语句生成器生成sql语句。

    10.  如何建立索引

    双击表打开属性窗口→选择Indexes选项卡→新建一索引→双击该索引打开属性窗口

    选择Columns选项卡→单击Add Columns图标按钮→选择要建立索引的字段→确定

    这里Column definition就不要选了,会与主键冲突。

    11.  如何建立存储过程

    工具栏中单击Procedure按钮→创建存储过程→双击存储过程打开属性窗口→选择Definition选项卡,其中在下拉列表框中,有Default Procedure、Default Function这两个选项,前者是定义过程,后者是定语函数,系统会根据选择的类型创建SQL语句的模板→编辑存储过程脚本。

    以上就是PowerDesigner物理模型的最主要内容了,其实这只是沧海一粟罢了,仅仅刚刚涉及到了一个模型,还有其他好多模型值得我们学习,这里要想真的讲全面的话,那一篇博文肯定容不下,需要连载了。

    PowerDesigner真的非常强大,用它设计UML同样很牛叉,大家有时间真应该好好学学这个工具怎么使,如果可能,我可能会在今后的博文中介绍下如何用PowerDesigner设计对象模型UML,或者搞不好真的要连载了,呵呵。那么小小期待下吧!


    基础部分:


     

    首先我们需要创建一个测试数据库,为了简单,我们在这个数据库中只创建一个Student表和一个Major表.其表结构和关系如下所示.

    看看怎样用PowerDesigner快速的创建出这个数据库吧.

    1.现在开始使用PowerDesigner创建数据库,首先运行程序,进入主界面:

    2.File—New Model—Physical Data Model—Physical Diagram—Model name 设置为test,DBMS属性设置为Microsoft SQL Server 2005:

    3.首先用表格工具创建一个表格模板:

    4.双击表格模板,设置属性,我们首先设置Major表:

    5.设置好表名,点击Columns标签,设置字段属性,设置如图所示:

    6.因为MajorID字段我们要设置为自动增长,所以要设置它的高级属性,选择MajorID字段,点击属性按钮,在General面板中勾选上Identity复选框:

    7.确定后我们再创建一个Student表,字段设置如图所示:

    8.接着是为Student创建一个MajorID外键,使用PowerDesigner可以很轻松的完成这个工作,选择关系设置工具,在Student表上按住左键不放,拖拽至Major表,便可为Student表添加一个MajorID的外键:

    9.哈哈,现在测试表已经设置好了,接着设置一下我们要生成的数据库吧,这些表都将被创建到该数据库中,我们在设计面板空白处右键—Properties,在弹出的属性设置对话框设置如下:

     

    10好了,在此我们对新数据库的设置已经完成,但是在SQL中还是空空如也啊,我们要怎么把这边设计好的结构移植到SQLServer 2005中呢?执行操作:Database—Generate Database,设置好存储过程导出目录和文件名,点击确定即可:

    11.到你的导出目录,就可以看见导出的数据库创建存储过程了,打开SQL,执行一下,你就会看到数据库被神奇的创建好了:

    12.好了,数据库的准备工作做好了,下一篇我们就将使用该数据库结合CodeSmith自动批量生成代码啦~

    上述实践中生成的源代码:

    复制代码
    /*==============================================================*/
    /* Database name: PD_test */
    /* DBMS name: Microsoft SQL Server 2005 */
    /* Created on: 2010/6/13 星期日 17:27:17 */
    /*==============================================================*/


    dropdatabase PD_test
    go

    /*==============================================================*/
    /* Database: PD_test */
    /*==============================================================*/
    createdatabase PD_test
    go

    use PD_test
    go

    /*==============================================================*/
    /* Table: Major */
    /*==============================================================*/
    createtable Major (
    MajorID 
    intidentity,
    Name 
    nvarchar(20notnull,
    Remark 
    nvarchar(Maxnull,
    constraint PK_MAJOR primarykey (MajorID)
    )
    go

    /*==============================================================*/
    /* Table: Student */
    /*==============================================================*/
    createtable Student (
    StudentID 
    nvarchar(20notnull,
    MajorID 
    intnull,
    Name 
    nvarchar(20notnull,
    Sex 
    bitnotnull,
    Age 
    intnull,
    Remark 
    nvarchar(Maxnull,
    constraint PK_STUDENT primarykey (StudentID)
    )
    go

    altertable Student
    addconstraint FK_STUDENT_REFERENCE_MAJOR foreignkey (MajorID)
    references Major (MajorID)
    go
    复制代码


    如果有来生,一个人去远行,看不同的风景,感受生命的活力。。。
  • 相关阅读:
    div与>div区别小结
    自定义动画方法animate
    字符串与json之间的相互转化
    onclick事件与onserverclick事件
    jQuery实现隐藏标签
    CS0016: 未能写入输出文件“c:WindowsMicrosoft.NETFramework64v4.0.30319Temporary ASP.NET Fileshelloiisceb8cab34db603d8App_global.asax.gr73hi-k.dll”--“拒绝访问。 ”
    关于迭代器中IEnumerable与IEnumerator的区别
    C#中部分方法返回值类型为什么只能是void?
    抽象函数与虚函数
    括号配对问题
  • 原文地址:https://www.cnblogs.com/Frank99/p/5400009.html
Copyright © 2011-2022 走看看