《使用powerdesigner设计数据库教程,授课资料》由会员分享,可在线阅读,更多相关《使用powerdesigner设计数据库教程,授课资料(90页珍藏版)》请在金锄头文库上搜索。
1、Powerdesigner数据库设计Web专业授课资料【适合专业】:Web专业【适合年级】:2010年级【授课学期】:2011-2012学年第一学期【教学团队】:梁国希,陈世强,陈威,王雯佳【编 辑】:陈威1 Powerdesigner数据库建模工具的介绍1.1 回顾前期EStore的整体需求,引导学生对其数据存储的设计进行思考:1.1.1 整体功能模块分布:(商品信息,订单信息,配置信息,用户管理信息)1.1.2 思考数据库的设计是使用单个数据库完成全部功能还是使用多个数据库完成全部功能。此处引入数据库的分布式设计优点说明。数据库作为应用数据的存储中心,在系统中具有具足轻重的地位。当用户量急
2、剧增长时,数据库往往成为系统的瓶颈,采用分布式数据库是首选策略。使用分布式数据库后,每一部分数据由专门的服务器来管理,分而治之,自然减少了数据库服务器的压力。通过将一个完整系统的数据按功能进行划分,各部分数据存储到独立的数据库服务器中,便是一种典型的分布式数据库模式。采用这种方式,不仅可以提高数据库以及应用的复用性,而且可以分散数据库服务器的压力,从而在某种程序上解决数据库瓶颈。1.1.3 思考需要设计哪几个数据库。1.2 Powerdesigner及其相关概念的介绍1.2.1 介绍powerdesigner,说明其功能和作用。(实训中如果学生已经学习过powerdesigner,此节可以简略
3、)PowerDesigner是Sybase公司的CASE工具集,是一个“一站式”的企业级建模及设计解决方案,使用它可以方便地对管理信息系统进行分析设计,它几乎包括了数据库模型设计的全过程。利用PowerDesigner可以制作数据流程图、概念数据模型、物理数据模型,可以生成多种客户端开发工具的应用程序,还可为数据仓库制作结构模型,也能对团队设计模型进行控制。它可与许多流行的数据库设计软件,例如:PowerBuilder,Delphi,VB等相配合使用来缩短开发时间和使系统设计更优化。它能帮助企业快速高效地进行企业应用系统构建及再工程(Re-engineer)。1.2.1.1 PowerDesi
4、gner主要包括以下几个功能部分:(1)DataArchitect这是一个强大的数据库设计工具,使用DataArchitect可利用实体-关系图为一个信息系统创建概念数据模型CDM(ConceptualDataModel)。并且可根据CDM产生基于某一特定数据库管理系统(例如:SybaseSystem11)的物理数据模型-PDM(PhysicalDataModel)。还可优化PDM,产生为特定DBMS创建数据库的SQL语句并可以文件形式存储以便在其他时刻运行这些SQL语句创建数据库。另外,DataArchitect还可根据已存在的数据库反向生成PDM,CDM及创建数据库的SQL脚本。(2)Pr
5、ocessAnalyst这部分用于创建功能模型和数据流图,创建处理层次关系。(3)AppModeler为客户/服务器应用程序创建应用模型。(4)ODBCAdministrator此部分用来管理系统的各种数据源。1.2.1.2 PowerDesigner的几种主要模型文件:概念数据模型(CDM)CDM表现数据库的全部逻辑的结构,与任何的软件或数据储藏结构无关。一个概念模型经常包括在物理数据库中仍然不实现的数据对象。它给运行计划或业务活动的数据一个正式表现方式。物理数据模型(PDM)PDM叙述数据库的物理实现。藉由PDM,考虑真实的物理实现的细节。面向对象模型(OOM)一个OOM包含一系列包,类,
6、接口,和他们的关系。这些对象一起形成所有的(或部份)一个软件系统的逻辑的设计视图的类结构。一个OOM本质上是软件系统的一个静态的概念模型。业务程序模型(BPM)BPM描述业务的各种不同内在任务和内在流程,而且客户如何以这些任务和流程互相影响。BPM是从业务合伙人的观点来看业务逻辑和规则的概念模型,使用一个图表描述程序,流程,信息和合作协议之间的交互作用。1.2.2 比较目前流行的几个建模工具:包括powerdesigner,rose,visio,ERWin,ROSE是直接从UML发展而诞生的设计工具,它的出现就是为了对UML建模的支持,ROSE一开始没有对数据库端建模的支持,但是在现在的版本中
7、已经加入数据库建模的功能。ROSE主要是在开发过程中的各种语义、模块、对象以及流程,状态等描述比较好,主要体现在能够从各个方面和角度来分析和设计,使软件的开发蓝图更清晰,内部结构更加明朗(但是它的结构仅仅对那些对掌握UML的开发人员,也就是说对客户了解系统的功能和流程等并不一定很有效),对系统的代码框架生成有很好的支持。但对数据库的开发管理和数据库端的迭代不是很好。PowerDesigner原来是对数据库建模而发展起来的一种数据库建模工具。直到7.0版才开始对面向对象的开发的支持,后来又引入了对UML的支持。但是由于PowerDesigner侧重不一样,所以它对数据库建模的支持很好,支持了能够
8、看到的90%左右的数据库,对UML的建模使用到的各种图的支持比较滞后。但是在最近得到加强。所以使用它来进行UML开发的并不多,很多人都是用它来作为数据库的建模。如果使用UML分析,它的优点是生成代码时对Sybase的产品PowerBuilder的支持很好(其它UML建模工具则没有或者需要一定的插件),其他面向对象语言如C+,Java,VB,C#等支持也不错。但是它好像继承了Sybase公司的一贯传统,对中国的市场不是很看看好,所以对中文的支持总是有这样或那样的问题。VISIO原来仅仅是一种画图工具,能够用来描述各种图形(从电路图到房屋结构图),也是到VISIO2000才开始引进软件分析设计功能
9、到代码生成的全部功能,它可以说是目前最能够用图形方式来表达各种商业图形用途的工具(对软件开发中的UML支持仅仅是其中很少的一部分)。它跟微软的office产品的能够很好兼容。能够把图形直接复制或者内嵌到WORD的文档中。但是对于代码的生成更多是支持微软的产品如VB,VC+,MSSQLServer等(这也是微软的传统),所以它可以说用于图形语义的描述比较方便,但是用于软件开发过程的迭代开发则有点牵强。此节详细信息可参考http:/ Powerdesigner的安装。练习任务:完成Powerdesigner15的安装。(包括破解:)2 概念数据模型CDM基本概念 2.1 概念数据模型概述数据模型是
10、现实世界中数据特征的抽象。数据模型应该满足三个方面的要求:1)能够比较真实地模拟现实世界2)容易为人所理解3)便于计算机实现概念数据模型也称信息模型,它以实体联系(Entity-RelationShip,简称E-R)理论为基础,并对这一理论进行了扩充。它从用户的观点出发对信息进行建模,主要用于数据库的概念级设计。通常人们先将现实世界抽象为概念世界,然后再将概念世界转为机器世界。换句话说,就是先将现实世界中的客观对象抽象为实体(Entity)和联系(Relationship),它并不依赖于具体的计算机系统或某个DBMS系统,这种模型就是我们所说的CDM;然后再将CDM转换为计算机上某个DBMS所
11、支持的数据模型,这样的模型就是物理数据模型,即PDM。CDM是一组严格定义的模型元素的集合,这些模型元素精确地描述了系统的静态特性、动态特性以及完整性约束条件等,其中包括了数据结构、数据操作和完整性约束三部分。1)数据结构表达为实体和属性;2)数据操作表达为实体中的记录的插入、删除、修改、查询等操作;3)完整性约束表达为数据的自身完整性约束(如数据类型、检查、规则等)和数据间的参照完整性约束(如联系、继承联系等)。2.2 实体、属性及标识符的定义实体(Entity),也称为实例,对应现实世界中可区别于其他对象的“事件”或“事物”。例如,学校中的每个学生,医院中的每个手术。每个实体都有用来描述实
12、体特征的一组性质,称之为属性,一个实体由若干个属性来描述。如学生实体可由学号、姓名、性别、出生年月、所在系别、入学年份等属性组成。实体集(EntitySet)是具体相同类型及相同性质实体的集合。例如学校所有学生的集合可定义为“学生”实体集,“学生”实体集中的每个实体均具有学号、姓名、性别、出生年月、所在系别、入学年份等性质。实体类型(EntityType)是实体集中每个实体所具有的共同性质的集合,例如“患者”实体类型为:患者门诊号,姓名,性别,年龄,身份证号.。实体是实体类型的一个实例,在含义明确的情况下,实体、实体类型通常互换使用。实体类型中的每个实体包含唯一标识它的一个或一组属性,这些属性
13、称为实体类型的标识符(Identifier),如“学号”是学生实体类型的标识符,“姓名”、“出生日期”、“信址”共同组成“公民”实体类型的标识符。有些实体类型可以有几组属性充当标识符,选定其中一组属性作为实体类型的主标识符,其他的作为次标识符。2.3 实体、属性及标识符的表达练习任务:引导学生对EStore或其自己的EStore系统进行分析,思考此项目涉及的实体有哪些,关键的属性包含什么?并在纸面描绘出来。3 建立工程项目和完成实体创建 3.1 什么是工程(Project)对于工程的概念,相信大家并不陌生,当文档数量和团队协作越来越多时,如何有效的进行管理就成了问题。工程就像一个容器,方便我们
14、管理分散的各个模型和文档。“您可以将实现共同目标的一组模型,或者其它任何格式的文档放进一个工程里,并作为一个整体,存放到知识库(Repository)里”。这是Power Designer用户手册里的描述。3.2 为什么引入工程(Project)的概念从容器的角度来说,似乎Power Designer之前的版本已经支持了诸如工作区(Workspace)和文件夹(Folder)的功能,那么为什么还需要工程呢?对于复杂的建模任务,只有容器的功能似乎略显单薄,我们还需要更多便于查看、维护、共享甚至是引导等等功能。当然如果在未来出现了更为复杂的需求或用例,也必须有升级和扩展到空间。因此,工程被定义成了
15、一种新的模型,从元模型的层次上看,它和面向对象模型(OOM)、数据模型(CDM、PDM)等等都是等价的。从语义上看,它则是用来管理模型的模型。这样做,加入了很多灵活性,并且可以复用Power Designer许多既有的机制。3.3 工程主要的特性支持视图(Diagram):工程支持两种视图,一种叫工程视图(Project Diagram),用来展示模型和文档之间的关系;另一种叫框架矩阵(Framework Matrix),作为一种框架(Framework)来指导工程的建立,以及对工程进行有效的观察和维护。方便管理和共享:对于团队协作来说,知识库(Repository)是很重要的手段。在Power Designer中虽然可以批量处理文件夹内的一组模型,但单个模型仍然是知识库的管理单元;而工程可以真正作为一个整体存在。比较与合并(Compare & Merge):可以利用Power Designer现有的框架对工程进行细粒度的比较与合并,不仅在版本管理中必不可少,