数据库设计-在Power Designer 中应用概念模型进行数据库第一阶段设计的示例(二)

本文介绍如何使用PowerDesigner进行复杂的数据库概念模型设计,包括依赖关系、支配角色及多对多关系处理等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要: 对于数据库的设计,我们一般从概念模型开始,在概念模型设计阶段,我们着重分析数据的逻辑结构,避免陷入具体的存储细节,所有的设计都与将来所要采用的具体数据库产品无关。本文适合已经掌握数据库基本设计理论或者已经具有实际经验,打算借助Power Designer进行辅助设计的读者。另外,如果能够额外的从您那里获得批评和指正,将不胜荣幸!本文是第二部分。

版权声明: 本文可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息。
原文出处: http://www.aiview.com/v_3/focus/pd_conceptual_model_2.htm
作者: 张洋 Alex_doesAThotmail.com
最后更新: 2004-11-21


 目录
  1. 谁适合阅读本文
  2. 定义更复杂的关系
  3. 参考资源

 

谁适合阅读本文

本文适合已经掌握数据库基本设计理论或者已经具有实际经验,打算借助Power Designer进行辅助设计的读者。

如果你已经是一个Power Designer的熟练使用者,或者你期望的是一些数据库的设计理论,请跳过本文。

如果你还不清楚数据库的基本设计理论,比如关系模型,范式,又有志于数据库设计领域的话,最好能够先打好基础,先找些与上面有关的资料看看,即使是优秀的辅助设计工具也并不能够替代我们设计出一个规范化的模型。

本文是第二部分,接上篇: 在Power Designer 中应用概念模型进行数据库第一阶段设计的示例(一)

假设您已经安装好Power Designer 9.5 版本,如果您还没有获得软件,请到Sybase网站下载试用版本

定义更复杂的关系
使用依赖关系(Dependent)

还是使用上面的例子,我们假定这样的业务描述:雇员享有假期,雇员每次休假,需要记录雇员休假的起始日与结束日,假期以天为单位,一个雇员和一个开始日唯一确定一个假期。根据这个业务描述,我们知道,对于假期而言,其必须依存于实体“Employee”而存在,即一个休假,必定有一个主体雇员。我们在上一个模型的基础之上,添加一个实体,名称是“Holiday”,定义假期的属性开始日与结束日,这里并不需要重复定义一个雇员编号,而是替代的,使用依赖关系,来表示实体“Holiday”依赖于实体“Employee”,关系定义如下图:

 

在实体“Holiday”中,我们需要设置开始日为主键标识符,开始日与其依赖实体中的雇员编号一起作为实体“Holiday”的标识符,用来唯一确定一个假期。这种依赖关系在概念图中表现如下:

 

从途中可以看出,在实体“Holiday”一端多了一个朝外的三角▲箭头,这个含义就是这个实体“的依赖于三角箭头所指的另外一个实体,在转化出来的物理模型当中,实体“Employee”的empNo,在Holiday实体中不仅会作为一个外键,还同时会作为主键出现(与startData一起作为复合主键)。

使用Dominant role

当两个实体之间的关系是1..1 时(尽管这种关系比较少见,常见于面向对象的设计方法当中,依赖实体中的主键通常与外健重合),你需要明确指定这两个实体,哪一个是父实体,哪一个是依赖实体,否则,系统在由概念模型转化为物理模型时,将不能确定需要在哪一端生成外键,这时就需要用到“Dominant role”选项,这个选项只有在1..1 的关系中才允许进行设置。我们假定这样的业务描述,企业中的部分雇员拥有一个系统帐号,并且是唯一的一个帐号,这些雇员需要保存一些额外的信息,比如帐号名称、密码等等。我们添加了一个新的实体“User”,其与雇员之间为1..1 的关系,由于一个用户帐号必定属于一个雇员,而一个雇员则可能没有用户帐号,所以我们定义实体“Employee”支配实体“User”。同时,由于“User”依赖于“Employee”而存在,所以再定义一个由前者到后者的依赖关系,如下图:

 

Dominant role 选项中,箭头所指的实体为被支配的实体,即作为依赖实体。在模型图中,支配实体的一方会出现一个用圆括号括起来的大写字母“D”。

 

转化出来的物理模型中,表User中,empNo作为单独的主键,同时也是引用Employee表的一个外键。

处理多对多(n..n)的关系

在概念模型中,一般很少看见两个实体之间是直接的n..n 的关系,一般这种情况下我们会增加一个中间实体,在Power Designer中,提供了一个专门的符号来对应,叫做“Association”。请考虑以下的情形:

企业中拥有帐号的雇员在系统中具有不同的操作权限,这通过用户角色来进行管理,权限已经分配给了多个不同的角色,一个用户帐号至少属于一个角色,并且可能会同时属于多个角色,一个角色可以包含0个或多个用户帐号。根据以上描述,我们添加一个实体“Role”,它与实体“User”之间是n..n 的关系,为了表达这种关系,我们增加一个“Association”并分别使用“Association Link”与其他两个实体建立关系,表示如下:

使用一个普通的实体,合理定义关系,并选择“Dependent”选项,是可以替代“Association”的,但使用“Association”更方便、直观,使模型更容易理解,并可以减少因不谨慎而可能导致的错误。

(完)

PowerDesigner是目前最为流行的软件分析设计工具之一,它大致具有以下特点:  为所有IT用户提供了一整套用于系统分析和设计的完全集成的建模解决方案,是少数 能在一个环境中支持所有几种建模技术的设计工具之一:数据库建模(概念数据模型 CDM,物理数据模型PDM),业务处理模型BPM,以及面向对象模型OOM,以及自 由模型FEM。  数据建模方面:利用基于可靠方法、真正的两级(概念上和物理上)关系数据库建模, 设计并生成数据库模式。同时还支持数据仓库特别建模技术。  强大的文档定制自动生成功能(RTF和HTML两种格式),将程序员从大量的文档重 复工作中解脱出来(如生成大规模数据库的数据字典等)  用户可完全自定义的元模型模板(包括DBMS 定义文件,面向对象语言定义文件等 等)、扩展属性等,为特定需求用户生成特定要求的带马提供了最大限度的可能性。  以结果为导向、以数据为中心的业务处理模型(BPM)可以使业务人员和IT员工在设计 和开发中能顺利合作,有助于弥补业务需求创意和 IT系统开发创意之间的隔阂,从而 确保项目能满足业务目标的要求  提供了对所有UML图以及所有主要平台的全方位支持(兼容J2EE(TM)、ebXML、Web 服务和.NET等)(10.0版本中还增加了对c#语言的反向工程功能)  在基于资源库的单一环境中提供了多种建模技术的元数据集成,包括技术层面和非技术 层面的(在设计时使用诸如对象/关系映射以及使用链接和同步技术将任何一个模型内 的改动传达给所有其它模型)  为所有模型和对象提供了通用的性能、扩展属性和脚本处理,而不仅仅是对数据库的自 定义和开发语言支持。  融入了完整的版本控制功能(Repository),用来贮存和管理所有建模和设计过程中的 信息,将分析设计和版本控制无缝集成,使得建模团队协作的能够得到有效的管理和控 制库(repository),,并将其中不一致的部分最小化,可以轻易查阅并共享工作组里所有 成员的模型和信息。版本库可升级支持角色安全设置、版本控制、搜索及报告能力,从而 极大地提高了开发者的效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值