![cover](/upload/数据库原理.jpg)
数据库原理:作业 02
实验二:用PowerDesigner设计ER图
一、实验目的
- 熟悉PowerDesigner应用环境;
- 掌握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)
- 联合是为了解决多对多联系而产生的一个人工实体
- 可以为联合实体定义属性。
定义继承
- 继承连接用来定义一种父类(父实体)与子类(子实体)之间的特殊联系。
- 子实体与它的父实体共享一些属性,有一个或多个属性不被父实体或其它子实体所共享。
概念模型示意图:
三、实验步骤
企业管理系统
企业管理系统涉及的信息如下:
- 单位:单位名、电话
- 职工:职工号、姓名、性别
- 工程:工程名、地点
- 设备:设备号、设备名、产地
- 供应商:供应商名、电话
其中:
- 每一单位有多个职工,一个职工仅隶属于一个单位;
- 一个职工仅在一个工程工作,但一个工程有很至员工参加工作;
- 有多个供应商为各个工程供应不同数量的设备。
请完成如下处理:
- 设计满足上述要求的E-R图;
- 将该E-R图转换为等价的关系模式。
- 用下划线标明每个关系中的主键。
图书借阅管理系统
图书借阅管理系统有如下要求:
-
可随时查询书库中现有书籍的C品种、数量与存放位置。
所有答类书籍均可由书号唯一标识。
-
可随时查询书籍借还情况,包括借书人单位、姓名、借书证号、借书日期和还书日期。
任何人可借多种书,任何一种书可为多个人所借;
借书证号具有唯一性。
-
可通过数据库中保存的出版社的Bmail、电话、邮编及地址等信息向相应
出版社增购有关书籍一个出版社可出版多种书籍,同一本书仅为一个出版社出版;
出版社名具有唯一性。
请完成如下处理:
- 设计满足上述要求的E-R图
- 将该E-R图转换为等价的关系模式。
- 用下划线标明每个关系中的主键。
旅行社管理系统
某旅行社管理系统涉及的部分信息如下:
- 景点:景点编号、景点名称、地点、景点描述。
- 线路:线路编号、线路名称、线路描述。
- 导游:工号、姓名、等级。
- 团队:团队编号、人数、开始日期、截止日期。
其中:
- 每条线路由多个景点组成,不同线路的景点存在交叉;
- 每条线路有多名导游,但一名导游只负责一条线路;
- 每条线路可同时存在多个旅游团队,但每个团队只旅游一条线路。
用PowerDesigner做出ER图(.cdm),并转成物理模型(.pdm),压缩成学号+姓名.zip的方式,上传到服务器
四. 实验结果与分析(上交实验报告)
分析思考问题:
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.请简单描述创建概念模型时的一些简单原则
- 能够比较真实地模拟现实世界
- 容易为人所理解
- 便于计算机实现
五.讨论、心得
在学习PowerDesigner过程中充分了解了具体数据库实现相关的数据建模,而作为数据库的开发设计人员,必须能熟练应用此数据建模工具,以帮助自己减少错误。