- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PowerDesigner设计数据库 2000年9月
?
?
本文档不讲述如何使用PowerDesigner,而是讲述如何将PowerDesigner的特点结合数据库设计的方法更好的设计一个数据库系统。
采用PowerDesigner设计数据库
PowerDesigner作为数据库建模和设计的CASE工具之一,在数据库系统开发中发挥着重要作用。
运用PowerDesigner进行数据库设计,不但给人直观地理解模型,而且充分运用数据库的技术,优化数据库的设计。PowerDesigner支持Sybase、Oracle、Informix、SQL Server等多种数据库系统,在应用系统做数据库迁移时不必维护多个数据库脚本。
对于采用结构化分析(SA),E-R图、数据流图直至最后的数据库物理图都是系统设计时不可缺少的一个部分,当数据库物理图完成后,应该产生系统的数据字典。运用PowerDesigner完全能够完成这一设计流程。
对于采用面向对象的分析(OOA),由于数据库采用的是RDBMS,因此存在对象和关系数据库之间的映射,也需要进行数据库设计。
两种数据库模型
PowerDesigner可以设计两种数据库模型图:数据库逻辑图(即E-R图或概念模型)和数据库物理图(物理模型),并且这两种数据库图是互逆的。
数据库逻辑图是对现实世界的一种抽象,体现实体之间的关系,可以有1对1、1对多、多对多等关系。特别说一点,在扩充E-R图中有概括这种关系,体现类型之间的一种子集联系,它定义了超类和子类。在PowerDesigner设计的E-R图中,不具备这种关系,但在E-RWin设计的模型中支持这种关系,因此在用E-RWin图设计的模型转化为PowerDesigner的模型时注意这种关系。
数据库物理图中是逻辑模型的物理实现,体现了表间的参照关系。在物理模型中不可能存在多对多的关系。在逻辑图向物理图转换时,多对多的关系变成两个1对多的关系。
逻辑模型和物理模型有着紧密的联系,也有本质的区别。逻辑模型的设计遵循数据库设计理论的第三范式(在一般的数据库应用达到第三范式即可),逻辑模型要求具有应用系统所表达的所有信息并消除数据冗余。物理模型是在逻辑模型的基础上,为了优化应用系统的性能而采用增加冗余,创建索引等数据库技术,它主要用非规范化的一些理论。
在考虑设计的任何非规范化之前,数据库应先完全规范化,在没有完全理解数据和用户需求之前,不能进行非规范化。否则导致数据的组织越来越混乱,应用程序越来越复杂。
因此逻辑模型和物理模型是相互矛盾又紧密联系的,这点需要设计人员好好把握。
PowerDesigner设计数据库物理图
用PowerDesigner设计数据库物理图,包括多个对象,如表(Table)、字段(Column)、域(Domain)等。设计时主要在PowerDesigner的Dictionary和Database两个菜单中。
表(Table)
表是数据存储的一个逻辑对象,包括其它对象如字段(Column)、索引(Index)、触发器(Trigger)、存储过程(Procedure)等,表的优化设计有分割等技术,对于表的存储,如果访问数据量大,访问频率高则可考虑将表放在不同的存储(Storage)上。
在设计表时,应该估算表的大小和增长量,便于创建数据库时分配数据库空键,这样减少了磁盘碎片的产生。
在关系数据库中设计主键时,采用有意义的主键是致命的错误。如果用户决定改变字段的商业含义,则需要在所有使用到该信息的地方进行修改。主键的作用应是保持唯一性和作为外键使用。任何对主键的修改会导致巨大的数据库维护工作量,显然这是不合适宜的设计。就关系数据库而言,设计主键策略采用的是代理主键的方法。
设计主键时应该避免“热点”现象,但也需要分析具体的应用系统的并发用户而定。
字段(Column)
定义一个字段主要有字段名、字段类型及长度、是否主外键、是否空、约束、默认值、域等。
变长和定长的数据类型在数据库设计中讨论比较多,作为一般原则,如果预期某列中的数据范围变化很大,但变化并不频繁,那末对这样的列使用变长数据类型最为适宜。
决定行长时,既不能太浪费,又不能太吝惜。考虑到将来的需要,并且意识到,如果增加行长而没有改变一页中容纳的行数,那末增加的空间就等于免费使用。
设计时,字段尽量使用域,方便维护字段的类型。每个字段最好将默认值加上,因为在数据库查询中,有NULL值会影响查询的性能。
通过CHECK约束可限制字段的取值。
域(Domain)
简单地说,是用户自定义类型,但域还可以定义它的取值范围或默认值,采用域减少了维护字段类型的工作量
文档评论(0)