实验二:用PowerDesigner设计ER图

一、实验目的

  1. 熟悉PowerDesigner应用环境;
  2. 掌握PowerDesigner概念模型的定义和创建方法

二、实验内容

给定一组内容,通过分析,将该组内容抽象为概念模型,并在PowerDesigner中生成该模型。

实验基础知识提要

关于PowerDesigner:

  • 由中国人王晓昀完成编制
  • 1989 -在法国发布第一个商用版本AMC*Designor (版本2.0)
  • 1992 -在美国发布第一个商用版本S-Designor
  • 1995 -S-Designor改名为PowerDesigner
  • 1997 -发布PowerDesigner 6.0
  • 2001 12月-发布PowerDesigner 9.5 的最初版本, 并发布升级及维护版本直到2003年
  • 2004 12月-发布版本PowerDesigner 10.0
  • 2005 -发布PowerDesigner 11.0
  • 2007 7月-发布PowerDesigner 12

PowerDesigner是一个集所有现代建模技术于一身的完整工具,它集成了强有力的业务建模技术、传统的数据库分析和实际,以及UML对象建模。通过了元数据的管理、冲突分析和真正的企业知识库等功能。

  • 提供了一个完整的企业建模环境
  • 包括了数据库模型设计的全过程。利用可以制作数据流程图、概念数据模型、物理数据模型
  • 可以生成多种客户端开发工具的应用程序
  • 还可为数据仓库制作结构模型,
  • 能对团队设计模型进行控制。
  • 可与许多流行的数据库设计软件以及开发软件,例如:Visual Studio,Java,Power Builder等相配合使用来缩短开发时间和使系统设计更优化。

概念模型(CDM):

  • CDM 表现数据库的全部逻辑的结构,与任何的软件或数据储藏结构无关。 一个概念模型经常包括在物理数据库中仍然不实现的数据对象。 它给运行计划或业务活动的数据一个正式表现方式。
  • CDM是分析阶段用以理清数据之间的关联性,以实体-关系图表示一个实体具有的属性,以及与其它实体的1对1、1对多或多对多关系

概念模型的定义过程主要如下:

定义实体(Entity)

  • 实体是带有描述特性的可以辨别的对象。在概念数据模型中,只有业务问题需要的对象才被定义为实体,一个实体可能是有形的或无形的、具体的或抽象的、有生命的或无生命的。

定义属性(Attribute)

  • 实体属性是附加到实体上的数据项

定义域(Domain)

  • 一个域定义你能适用于多个数据项目的标准数据结构。 当你修正一个域时,你将更新全部与域关联的数据项目。 当你作任何变化的时候 , 这导致数据一致化特性比较容易。
  • 可以创建一些自己常用的域,来应用到数据对象上,就不会导致相同的用途,但是数据类型和长度不一致

定义关联(Relationship)

  • 联系是指两个实体之间或实体内部的连接或关系。
  • 完成实体定义以后,应该在它们之间建立联系。实体的联系通常是依据业务规则确定的

定义联合(Association)

  • 联合是为了解决多对多联系而产生的一个人工实体
  • 可以为联合实体定义属性。

定义继承

  • 继承连接用来定义一种父类(父实体)与子类(子实体)之间的特殊联系。
  • 子实体与它的父实体共享一些属性,有一个或多个属性不被父实体或其它子实体所共享。

概念模型示意图:

image-20220304133704904

三、实验步骤

企业管理系统

企业管理系统涉及的信息如下:

  1. 单位:单位名、电话
  2. 职工:职工号、姓名、性别
  3. 工程:工程名、地点
  4. 设备:设备号、设备名、产地
  5. 供应商:供应商名电话

其中:

  1. 每一单位有多个职工,一个职工仅隶属于一个单位;
  2. 一个职工仅在一个工程工作,但一个工程有很至员工参加工作;
  3. 有多个供应商为各个工程供应不同数量的设备。

请完成如下处理:

  1. 设计满足上述要求的E-R图;
  2. 将该E-R图转换为等价的关系模式。
  3. 用下划线标明每个关系中的主键。

image-20220304211344043

image-20220304211320805

图书借阅管理系统

图书借阅管理系统有如下要求:

  1. 可随时查询书库中现有书籍的C品种、数量与存放位置。

    所有答类书籍均可由书号唯一标识。

  2. 可随时查询书籍借还情况,包括借书人单位、姓名、借书证号、借书日期和还书日期。

    任何人可借多种书,任何一种书可为多个人所借;

    借书证号具有唯一性。

  3. 可通过数据库中保存的出版社的Bmail、电话、邮编及地址等信息向相应
    出版社增购有关书籍

    一个出版社可出版多种书籍,同一本书仅为一个出版社出版;

    出版社名具有唯一性。

请完成如下处理:

  1. 设计满足上述要求的E-R图
  2. 将该E-R图转换为等价的关系模式。
  3. 用下划线标明每个关系中的主键。

image-20220304204925803

image-20220304205510580

旅行社管理系统

某旅行社管理系统涉及的部分信息如下:

  1. 景点:景点编号、景点名称、地点、景点描述。
  2. 线路:线路编号、线路名称、线路描述。
  3. 导游:工号、姓名、等级。
  4. 团队:团队编号、人数、开始日期、截止日期。

其中:

  1. 每条线路由多个景点组成,不同线路的景点存在交叉;
  2. 每条线路有多名导游,但一名导游只负责一条线路;
  3. 每条线路可同时存在多个旅游团队,但每个团队只旅游一条线路。

用PowerDesigner做出ER图(.cdm),并转成物理模型(.pdm),压缩成学号+姓名.zip的方式,上传到服务器

image-20220304212355574

image-20220304212741991

四. 实验结果与分析(上交实验报告)

分析思考问题:

1.试区别PowerDesigner中的Relationship和Association

Relationship:关系,包括 one to one,one to many 和many to many这三种联系类型,以及另外三个可以设置的属性:mandatory(强制性联系), dependent(依赖性联系/标定关联) 和dominant(统制联系)。

Association:关联,在很多情况下(特别是多对多关系中),我们会把联系专门提出来,作为一个实体型放在两个需要被关联的实体型中间(在PD中,选中任何一个联系,在右键的弹出菜单中选择“Change to Entity”命令即可完成联系转实体的操作)。但有的时候,把若干个实体型之间的联系抽象为一个实体型可能不太合适,这个时候你可以选择为这些实体型建立一个association,那么在生成PDM的时候,所有这些相关实体型的identifier都会被加入到association对应生成的表模型中。所以,说白了,其实association就是实体型的一种特例,用来在建模的时候更确切的表达实体间的关联信息。在PD的文档中举了一个录音带、顾客、商店三个实体型在租借录音带这个场景上发生关联,然后把租借定义为上述三个实体型之间的association的例子,非常确切。在我们的学校模型里,我定义了家访做为老师和学生实体型中间的一个association,在接下来产生的PDM中大家就可能看到这种定义所产生的效果。

节选自:https://www.cnblogs.com/xingyukun/archive/2007/08/02/840293.html

2.请简单描述创建概念模型时的一些简单原则

  1. 能够比较真实地模拟现实世界
  2. 容易为人所理解
  3. 便于计算机实现

五.讨论、心得

在学习PowerDesigner过程中充分了解了具体数据库实现相关的数据建模,而作为数据库的开发设计人员,必须能熟练应用此数据建模工具,以帮助自己减少错误。