基于PowerDesigner的数据库设计正向工程及其应用
2016-10-31梁俊赵卫东初宝祥
梁俊+赵卫东+初宝祥
摘要:该文首先介绍了数据库设计的基本步骤,然后详细描述了数据库的正向工程以及将概念数据模型通过PowerDesigner正向工程转换为逻辑数据模型然后转换为物理数据模型最终生成数据库的过程,最后通过一个具体应用验证了数据库设计的合理性。
关键词:数据库设计;正向工程;PowerDesigner;概念数据模型;逻辑数据模型;物理数据模型
中图分类号: TP391 文献标识码:A 文章编号:1009-3044(2016)22-0009-04
Abstract:This paper introduces the basic steps of the database design and then describes in detail the forward engineering of the database and the process of converting the conceptual data model to the logical data model through the PowerDesigner forward engineering and then converting to the physical data model to generate the database.Finally, the rationality of the database design is verified by a concrete application.
Key words:Database design; Forward engineering; PowerDesigner; CDM; LDM; PDM
数据库设计在信息系统开发和建设过程中起着举足轻重的作用,数据库设计质量直接影响到整个系统的效果,数据库设计难度要比单纯的技术实现难很多,对数据库进行细致的建模是数据库设计的关键。在数据库应用早期,开发技术还尚未成熟,数据库设计方法主要是手工试凑法,会出现效率低下,质量不高等各种弊端,到后来提出了数据库设计是个过程迭代、逐步求精的过程。随着信息技术的飞速发展,各种软件分析建模的工具在很多领域得到广泛应用,其中PowerDesigner是目前被业界一致认为最有影响力的一种数据库分析设计的工具之一。
1数据库设计概述
数据库设计(Database Design)主要是指为了能够满足有效的数据存储和处理等要求,在某个特定的环境中,需要构造最优的数据库模式来建立数据库及其对应系统。数据库设计时根据用户的需求,在特定的数据库管理系统上设计和建立数据库的过程,是软件系统开发过程中的关键技术之一。数据库设计分4个阶段,分别为需求分析阶段、概念结构设计阶段、逻辑结构设计阶段、物理结构设计阶段。
1.1 需求分析阶段
需求分析阶段在整个数据库设计过程的基础,对于软件的开发的整个过程以及产品质量的好坏至关重要,主要是通过调查并分析用户的业务活动和数据使用情况,来明确用户对某个特定数据库系统的使用要求和各种约束条件等,形成用户规约。在该阶段会得到用数据字典描述的数据需求和数据流图描述的处理需求。
1.2 概念结构设计阶段
概念结构设计阶段则是在需求分析阶段生成的需求说明书的基础上,再对需求进行综合分析、归纳总结与抽象分析,形成一个独立于某个特定的数据库管理系统(Database Management System,简称DBMS)的概念模型(用E-R图表示)。
概念数据模型(Conceptual Data Model,CMD)简称概念模型,主要是用以描述现实世界的概念化的结构,是数据特征的一种抽象化表示。以实体-联系(Enitity-RelationShip,E-R)理论为基础,表明系统内部抽象的数据结构,并对这一理论进行扩充。在该阶段数据库的设计人员只是着重分析数据以及数据与数据之间的联系,不再考虑计算机系统和DBMS的技术问题,独立于具体的DBMS。
1.3 逻辑结构设计阶段
逻辑结构设计阶段主要操作对象是概念模型,需要将概念结构设计阶段产生的概念数据模型设计成一种逻辑模式,而这种逻辑模式需要满足于具体的数据库管理系统,数据库的逻辑设计涉及数据模型的转换问题,同时还需要深入解决设计中的一些技术问题。例如数据模式的规范化、是否满足数据库管理系统的要求等。在这一阶段会生成逻辑模型。
逻辑数据模型(Logical Data Model,LDM)是在概念数据模型基础上生成的,是对CDM的进一步的分解和细化,使得概念数据模型更易于理解。通过表示概念之间的逻辑次序,转换为某个特定系统所能支持的逻辑结构。
1.4 物理结构设计阶段
物理结构设计阶段则需要根据具体计算机系统的特点,设计具体数据库系统的数据库模型合理的存储结构(包括文件类型、索引结构等)、存取路径和存取方法等,在这一阶段则会生成物理数据模型。
物理数据模型(Physical Data Model,PDM)描述了数据在存储介质上的组织结构,与某个特定的数据库管理系统有关。它是在概念数据模型或逻辑数据模型的基础上,考虑各种具体实现因素,进行数据库的结构设计,生成相应的 DBMS的SQL脚本,利用生成的SQL 脚本在相应的数据库中产生信息的存储结构,同时需要保证数据在数据库中的完整性和一致性。
2 PowerDesigner中数据库设计的正向工程
Power Designer是一个功能强大但使用简单的计算机辅助软件工程工具集(Computer Aided Software —CASE),业界普遍认为它是一种领先的建模工具和元数据管理解决方案。它是数据库设计的强大软件,由原来主要侧重于数据库建模,后来也逐渐发展到需求建模、业务处理建模和面向对象建模等,成为了一款功能全面的软件全面的软件全程建模工具。
不同的模型对应于不同的阶段,各模型之间有很强的联系,但是差异性很大,在PowerDesigner中每个模型都划分的很细致,并且不同的模型对应不同的设计环境,同时保存到不同的文件中,各模型设计,PowerDesigner都提供了精细的控制,模型之间又相互独立,但是可以通过模型之间的转换工具建立各模型之间的关联。
在PowerDesigner中进行数据库设计的正向工程需要先建立概念数据模型然后生成相应的逻辑数据模型接着生成物理数据模型,并根据物理数据模型生成多种可以在数据库系统环境中运行的数据库的脚本(SQL Server 脚本)或者直接创建数据库的全过程。
2.1创建概念数据模型
概念数据模型需要定义所有的实体以及一组描述实体特征的属性,用来唯一标识某个实体的一个或者一组属性的标识符(包括主标识符和候选标识符),每个实体至少有一个标识符以及实体与实体之间的联系,其中包括一对一的联系、一对多的联系、多对一的联系、多对多的联系。
在PowerDesigner中选择File->NewModel菜单项,在弹出的新建模型窗口中选择Conceptual Data Model ,建立概念模型。在工具箱中选择Enity图标就可添加多个实体,双击图形符号就可设置实体的一组属性,定义实体的标识符以及相关约束等。定义好实体和属性后,就该定义实体之间以及实体内部的联系。主要联系包括1:1联系,1:n联系,n:1联系和m:n联系,其中Domaint role:该参数只是针对于1:1联系,用于定义该联系中起主导作用的实体,在CDM生成LDM是,如果定义了该参数,即规定了主动方和被动方,那么在CDM生成LDM或PDM时,则在依赖实体对应表中只会在被动方生成一个参照/引用,否则两端分别生成一个参照/引用。Dependent:依赖。两个实体若定义了依赖联系又称为标定联系,相反称为非标定联系。建立CDM后通常要进行模型检查,选择Tool->Check Model菜单,或在工作区右击选择Check Model项,设置相关选项后,点击确定,进行模型检查。
2.2 生成逻辑数据模型
LDM是PowerDesigner15新增的模型,在完成数据建模的过程中,逻辑数据模型设计不是必需的,可以在PowerDesigner中直接建立LDM,也可以由CDM生成LDM。在CDM生成LDM时,LDM包括CDM中的所有的实体以及每个实体的一组属性以及一个或者多个标识符,实体与实体之间的联系。在1:1联系中,联系两端实体的主标识符会分别进入另一端实体中做外键否则只会其中一个实体进入另一个实体中做外键,在1:n非依赖(标定)联系中,1端实体的主标识符进入n端实体中做外键,在依赖(标定)的1:n联系中,1端实体的主标识符进入n端实体中做既做主键、外键,在m:n非依赖(标定)联系:会生成一个新的联系实体,同时两端实体的主标识符进入联系生成的实体中,做主、外键。
选择Tools->Generate Logical Data Model 菜单项,打开生成新LDM模型窗口,然后设置各选项卡参数。生成LDM模型后通常要进行模型检查与优化工作,可以减少在PDM模型中的优化工作。
2.3 生成物理数据模型
物理数据模型PDM 是根据逻辑数据模型生成的,在生成PDM 之前 , 需要指定具体的DBMS。由LDM转换 PDM的转换规则:一个逻辑实体映射到一张表。实体属性转换为表的数据列,一个由关联关系产生的逻辑实体也会映射到一张表。主标识符转换为表的基于依赖或者独立关系的主键或外键,其他标识符转换为候选键。一对一、一对多、多对一、多对多的联系也都会转换成相应的参照/引用,对应于表的外键。
打开LDM模型,选择Tools->Generate Physical Data Model 菜单项,打开生成新模型的小窗口,设置各选项卡参数。必须指定具体数据库的名称和版本。在LDM转化为PDM中数据类型的转换关系见表1。由LDM直接生成的PDM存在一些问题,需要进行模型检查和优化,如果生成的数据类型不合理,需要手动调整数据类型,使得数据类型使用得更恰当。如果主键需要使用自增长,那么需要修改具体的列,设置该列为Identity,笔者确定的参照约束名称为”fk_父表简称_r_子表简称”的约定,自动生成的参照名称一般不符合,需要修改。在物理模型中除了生成相对应的表外,还可以手动增加视图、存储过程等在概念模型和逻辑模型中无法表达的数据库对象。
2.4 数据库实施
在PowerDesigner,建立数据库有两种方式,一种是由物理数据模型生成建库的脚本,然后执行脚本,使用PowerDesigner直接连接数据库。
需要在PowerDesigner中建立一个通向这个用户数据库的数据源,使得PowerDesigner与用户数据库建立相应的连接。在PowerDesigner中选择Database->Configure Connections菜单项,打开配置数据连接窗口,在打开的窗口中添加新的SQL Server的数据源,并建立新的数据源与数据库的连接。然后选择Database->Generate Database 菜单项,打开生成数据库窗口,采用新生成的数据源进行连接,可以直接将PDM生成到数据库中,同时生成脚本文件。或者Database—>Generate Database… 后会生成一个 SQL脚本文件,在目标数据库中执行即可生成相对应的表。
3 基于PowerDesigner的数据库设计正向工程的应用
本文以测评系统功能为原型,演示Power Designer16对测评系统的数据库设计的全过程。
3.1 建立概念数据模型
该测评系统包括的实体是测评工程、工程状态、自我测评体系、工程自我测评项、专家测评体系、工程专家测评项。并分别定义每个实体的属性和标识符,定义实体之间的联系,在Power Designer中建立该测评系统概念数据模型,如图1所示。
3.2 生成逻辑数据模型
由CDM转化的测评系统的LDM,如图2所示。
3.3 生成物理数据模型
本系统采用Microsoft SQL Server 2008作为后台数据库 , 由LDM转化得到的测评系统 PDM 如图3 所示。
3.4 生成SQL脚本或数据库
首先要在SQL Server2008中建立一个“EvaluationProject”的数据库,然后需要在PowerDesigner中建立一个通向这个用户数据库的数据源,使得PowerDesigner与用户数据库建立相应的链接。 或者“Database—>Generate Database…” 后会生成一个 SQL脚本文件,在目标数据库中执行即可生成相对应的表。由 PDM 生成的一段SQL 语句 , 如图4 所示。在SQL Server 2008中得到的测评系统的数据库表,如图5 所示。
3.5 生成测试数据
生成数据库后, 项目实施过程中,一般都需要在数据库中加载数据,在PowerDesigner中可以实现在数据库中自动添加测试数据, 测试数据库的结构和性能是否满足要求。在PDM中, 可以先定义测试数据描述文件, 然后为列指定测试文件, 最后产生测试数据。在 “测评系统” 中, 可设置下列内容:
1) 在菜单栏中选择Model->Test Data Profiles菜单项,打开测试数据生成窗口。 定义 “测评项权重”、“评测项数值” , 在指定的范围内自动生成数字型测试数据; 定义 “学生自评开始时间” 、“学生自评结束时间”、“评议小组测评开始时间”、“评议小组测评结束时间”,在指定的范围内自动生成日期/时间型测试数据;
2) 为 “测评项权重”、“评测项数值”、“学生自评开始时间”、“学生自评结束时间”、“评议小组测评开始时间”、“评议小组测评结束时间” 列指定对应的描述文件。
3)指定需要操作的表,选择测评工程表和自我测评体系信息表。
4) 选择 Database->Generate Test Data 菜单项,在测评工程和自我测评体系信息表中自动产生测试数据,指定连接的数据源,可以在“EvaluationProject”数据库中直接生成测试数据。测试数据如图6所示。
4总结
PowerDesigner作为数据库建模和设计的常用工具,在数据库系统开发中起着相当大的作用,要想真正掌握这一工具,还需要我们不断研究与探讨。本文着重研究了利用PowerDesigner正向工程建立PDM以及生成数据库的过程以及具体的应用,PowerDesigner的数据库设计正向工程使人直观地理解模型,而且充分运用数据库的技术,不断优化数据库的设计,提升了软件开发的效率。
参考文献:
[1] 谢星星,朱婵. PowerDesigner 系统分析与建模实战[M].北京:机械工业出版社,2015.5.
[2] 李波,孙宪丽,关颖. PowerDesigner16 从入门到精通[M].北京:清华大学出版社,2016.
[3] 萨师煊,王珊. 数据库系统概论[M].4版.北京:高等教育出版社, 2006:55-77.
[4] 郭东恩. 数据库原理及应用[M].郑州:河南科学技术出版社, 2008:31-160.
[5] 宋薇,李倩,薛立.基于PowerDesigner的家庭财务管理系统的数据库设计[J].电脑知识与技术,2015(18).
[6] 李苹,蒋锐,张顺吉,等.PowerDesigner在数据库综合性实验中的应用研究[J].电脑知识与技术,2012(12).