注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

我的博客

等闲识得东风面,万紫千红总是春!

 
 
 

日志

 
 

PowerDesigner使用说明  

2008-11-26 11:33:16|  分类: Sybase |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

1、设计数据库最好从概念模型开始,概念模型中以实体为单位,可以比较清晰的反映实体间关系。

    需要特别注意的一点,在创建好一个新的概念模型后,最好在model options中,将数据项的唯一代码和允许重用两个选项去掉。否则不同实体中的同名属性会被认为是同一个数据对象,改一个另外的也会跟着改。大多数情况下都不需要这种特性,相反它会带来麻烦。 但是,如果允许不同的表有相同的字段名,在创建视图的时候,需要为重复的字段名指定别名。 有利有弊啊。
 
   做好这个设置后,开始下面的步骤:
    1)把创建上实体,最初只需要命名中文名称。当然,之前需要进行系统的需求调研与分析。
    2)分析实体间关系,画上关系,准确的确实出是一对一还是一对多,对于多对多关系,最好创建关联实体。
    3)创建实体的属性,先不要管英文名称和数据类型,只命名中文名称。添加属性的过程中,尽量更细致的修改实体及其关系。并指定各实体的主键。 不要让实体没有主键,这不是个好习惯。
    4)对形成的模型进行讨论、修正。
    5)创建domain。 domain是什么东西呢,应该翻译成“域”吧, 但实际是一种自定义类型。把常用到的数据类型定义成domain,所有的属性指定其domain,而不直接指定数据类型,会给以后的工作带来很大的方便。
    6)为各属性命名英文名称。这基本就是将来生成的数据库里的字段名称了。
    7)为各属性指定domain
       至此,概念模型创建完成。 默认的图形中的字符很小,可以通过右键弹出菜单里的显示配置项,设计实体名称及属性的字体。 也可以设置不显示关系的名称,并修改关系连线的样式,以获得好的显示效果。
      也可以设置不同性质的实体为不同的底色,以获得更明确的效果。但是不建议将实体分在不同的包中,那样实体关系不太直观,也会有一些其它麻烦。如果是超大型的系统,实体特别多,合理的划分包是一个重要的工作。
       在对概念模型反复的修正后,便可以生成物理模型了。在工具菜单里便有这项功能。

2、生成物理模型时,是需要选择数据库系统的。就是说物理模型是数据库相关的。当然需要选择正确的数据库系统。
    1)注意检查生成的表间关系是否有问题。这时候概念模型里的实体就转化为物理模型里的表了。一些概念模型里的关系和约束,生成到物理模型里可能会出现问题,需要手动修正一下。虽然这种情况不多见。
    2)生成的很多外键会重名,可以用check model检查一下,把重名的外键名修改一下。
    3)将所有字段设置不允许null值。就是勾上表的属性窗口中,每个字段的M列的选择框,其实就是字段的Mandatory属性。也可以在概念模型中做这一工作。 这样做的好处是,在代码中一般不会碰到从数据库中取到的值为null的情况,可以简化很多工作。这里多做的工作绝对是值得的。当然这种情况下,对于很多字段,我们最好提供默认值,以避免一些情况下对插入数据时有过高的要求。 我们不必每个字段去指定默认值,因为我们应用了domain,前面提到过的一种自定义数据类型。下面我们继续说明如何给domain添加默认值。
    4)添加默认值对象。也许有些人不清楚,默认值是一些数据库里的一种对象,就象表、字段、触发器一样,默认值在Sql Server中就是一种对象。在物理模型里,可以创建它。一般我们可能只需要三个默认值对象:数字型的默认值、字符串型的默认值以及日期型的默认值。 在物理模型中定义上这三个默认值对象。 
    5)为每个domain指定默认值对象。这样,每个被指定为这个domain类型的不允许null的字段,就会继承domain的默认值。注意,这是数据库的特性,不是PD的特性。不管怎么说,我们很容易的做了指定默认值的工作。好的数据库设计可能会考虑的更细致,比如有些数字型的字段,应该默认为1,而不是0。 这时候你只需要重新指定一下字段的默认值,他就不会再从domain中继承默认值了。
    6)对物理模型检查修正后,便可以生成数据库了。 生成数据库时有很多选项,比如是否生成一些对象的drop脚本等,都可以控制的。
     注意,在修改好物理模型后,不要再重新生成物理模型,否则很多在物理模型中定义的东西会丢失。如果需要做改动,以物理模型为准,概念模型可以反向生成,或者手动保持同步。
    有些概念可能会乱,在这里把这些名词整理一下。

    概念模型  --- 物理模型  --- 数据库  ---- 解释
1)、  实体     ---  表(table)--  表      ---  实体和表对应,但并不完全是一回事了。
2)、  属性     ---  字段      --   字段    ---  不解释了
3)、  Domain   --- Domain    ------自字义类型 --- 其实就是自字义数据类型。
4)、  默认值对象 -- 默认值对象 ---默认值对象 ---含有默认值,但不是默认值。不太常见,但很有用。SQL Server文档里说未来的版本可能会取消默认值对象相关的一些东西,谁知道呢。

还有啊,概念模型、物理模型、数据库三者是可以相互转化的,相互的正向或逆向工程。
3、 最后说一下,在物理模型中的各字符的汉字名(就是name了,中国人一般用汉字)可以通过一些手段生成到数据库中,方法如下:
   1)用Powerbuilder连接一下生成的数据库。连接的过程中会创建一些PB的系统表,分析存储数据库的结构。
   2)打开物理模型,选择model菜单中的 扩展模型定义, 在打开的窗口中,有一个“导入扩展模型”的小图标,通过它导入PB的扩展模型。
   3)点tools菜单里的Powerbuilder项里的“生成扩展属性”,在弹出的窗口中选择好数据库的连接,之后确定。
    这样这些字段的汉字名就会生成到数据库中的PB的系统表里。如果使用PB开发,PB会直接取出这些汉字字段名。不用PB开发,可以利用这些信息做一些代码生成工具类的东西,或者通过一些手段生成实体类的注释。 不管怎么说,PD里设计的东西,生成到数据库里会有些好处的。最坏的一种情况,如果你当初的PD文件丢了,可以逆向出来物理模型,然后把这些汉字字段名也逆向出来,也是一种很爽的事。
    如有问题,欢迎交流!

  评论这张
 
阅读(1144)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017