李苹 蒋锐 张顺吉 任雪利 兰美辉
摘要:以“学生成绩管理系统”为例,进行模型设计,阐述了需求模型、业务模型、概念模型、物理模型、生成数据库脚本及测试数据的主要设计过程。
关键词:综合性实验;PowerDesigner;数据库设计
中图分类号:TP391文献标识码:A文章编号:1009-3044(2012)12-2671-04
The Research of Application PowerDesigner on the Comprehensive Experiment of the Database
LI Ping, JIANG Rui, ZHANG Shun-ji, REN Xue-li, LAN Mei-hui
(College of Computer Science & Engineering, Qujing Normal University,Qujing 655011,China)
Abstract: Taking the case of“management system of students achievement”,model design was carried out,requirement model,business process model,conceptual data model,physical data model,database creation script and generating test data were elaborated.
Key words: comprehensive experiment; PowerDesigner; design of database
数据库综合性实验是指实验内容涉及数据库的综合知识及与本课程相关的软件工程、程序设计等课程知识的实验。数据库综合性实验的主要内容是将软件工程思想、面向对象技术、数据库设计技术相结合开发一个数据库应用系统。因而,数据库应用系统的开发需要经过软件分析建模、数据库编程、应用程序设计的过程。其中,软件分析建模包括业务建模、数据建模和应用程序建模[1]。建立模型能准确地表达用户需求,方便开发人员与用户进行技术交流;能使开发过程保持一致性;能降低维护系统的成本。建模的质量决定数据库应用系统的工作效率,所以在系统开发之前建立详细的软件分析模型是十分重要的。
Sybase公司的PowerDesigner软件分析建模软件是世界上最领先的建模工具,它集成了强有力的建模技术,包括了数据库模型设计的全过程:需求模型、业务处理模型、概念数据模型、物理数据模型,可以与多种流行的数据库设计软件相配合来缩短开发时间。利用PowerDesigner建立模型,可以给数据库应用系统的开发带来极大的便利。
该文以“学生成绩管理系统”综合性实验的模型设计为例,研究PowerDesigner软件建立需求模型、业务处理模型、概念数据模型、物理数据模型以致生成脚本和测试数据的主要过程。
1需求建模
需求分析模型RQM主要描述系统需要完成的任务,使系统开发人员能够更清楚地了解系统边界。PowerDesigner提供了需求文档视图、追踪矩阵视图和用户分配视图描述系统的需求。需求文档视图通过二维表的形式,以分层的方式表达系统的需求。追踪矩阵视图描述需求与设计对象、外部文件和其他需求间的链接关系。用户分配矩阵视图表达需求与用户或用户组之间的分配关系。在需求文档视图中建立“学生成绩管理系统”的需求模型,可以用每行代表一个需求。如图1所示。
图1需求模型
2业务过程建模
业务模型BPM是一种从业务人员的角度出发,对业务逻辑和规则进行详细描述,使用流程图表示从一个或多个起点到终点之间的处理、流、信息和合作协议。设计BPM时,不必考虑系统的物理实现细节,主要考虑处理过程及其数据流。
在“学生成绩管理系统”的RQM中,选择“Export Requirements as Design Objects”命令,可以将系统的各个功能自动转换为BPM中的处理,然后设置下列内容:
1)用组织单元泳道描述管理员、学生、系统。
2)在管理员和学生组织泳道中分别用开始和结束图标描述各自业务流程的开始和结束。
3)用复合处理描述用户管理、统计学生数据、编辑学生数据、查询学生数据等处理,并在处理上定义动作为“自动”或“手动”完成。
4)用判断描述用户登录的身份判断。
5)在各个对象之间用流描述数据交互,并为流定义流动条件、消息格式和组成流的数据,数据流上传输的数据可以定义为结构化数据或原子数据,如定义“学生信息”为结构化数据,由“学号”、“姓名”、“性别”等原子数据组成。
6)用分叉型同步描述不同权限的用户具有不同的操作权限。
7)用用户信息资源、成绩信息资源、专业信息资源、班级信息资源、课程信息资源、学生信息资源描述需要存储的数据文件,并在资源流中定义需要对资源进行的增、读、删、改操作;结果如图2所示。
设计完成后,可进一步定义各个复合处理的子处理,最后用“Check Model”命令检查整个BPM模型,修改错误,直到模型完全正确。待批“Report Wizard”命令,可以生成包含数据项、数据流、处理、存储等内容的数据字典。
3数据建模
数据建模包括概念数据模型CDM和物理数据模型PDM。
CDM用在系统开发的数据库设计阶段,用于表现数据库的全部逻辑结构。PDM独立于具体的软件和数据库,主要用来对现实世界的概念进行抽象,转变为实体及其实体间的联系,是按照用户的观点来对数据和信息进行建模。
在“学生成绩管理系统”的BPM中,选择“Data Export”命令,将结构化数据转换为CDM中的实体,将原子数据转换为实体的属性,然后设置下列内容:
1)在“Entity Properties对话框中”为实体学生信息、课程信息、专业信息、班级信息分别添加属性、数据类型、取值域、规则,设置主码分别为学号、课程号、专业号、班级号。
2)建立实体之间及实体内部的联系,专业信息与班级信息之间的1对多联系,班级信息与学生信息之间的1对多联系,学生信息与课程信息之间的多对多联系,课程信息的递归联系,并对各个联系定义角色名及基数。
3)将学生信息与课程信息之间的多对多联系转换成中间实体“选修”,并添加“成绩”属性。
4)用实体的规范化理论分析各个实体属性之间的关系均满足第三范式,所以不再对实体进行分解。
设计完成后,用“Check Model”命令检查整个CDM模型,修改错误,直到模型完全正确,结果如图3所示。
图3概念数据模型
PDM定义了模型的物理实现细节,与具体数据库系统紧密联系。在数据库的物理设计阶段必须在此基础上进行详细的后台设计,包括存储过程、触发器、视图和索引等。PDM将CDM中所建立的现实世界模型生成相应的DBMS中的SQL脚本语言,利用SQL脚本在数据库中产生表、约束等,并保证数据的完整性。
在“学生成绩管理系统”的CDM中选择“Generate Physical Data Model”命令,在对话框中选择DBMS为SQL Server2000,即可将CDM转换为PDM。其中,实体转换为表,实体属性转换为表列,主标识符转换为主健或外键,联系转换为引用,数据类型转换为对应DBMS的数据类型。然后设置下列内容(以学生信息表为例):
1)在学生信息表的“学号”、“性别”、“入学日期”列上分别建立约束型业务规则,描述在取值上的约束条件。
2)在学生信息表的“姓名”列上定义索引。
3)在学生信息表的“性别”列上设置默认值为“男”。
4)在学生信息表上建立“计算年龄”视图,在学生信息表、选修表、课程信息表上建立“班级课程平均分”视图。
5)在选修表上定义插入触发器,当插入学生选课成绩时,学生信息表中的“已修学分”列会自动计算。在学生信息表上定义删除触发器,当删除学生信息时,会自动删除其相应的选课信息。
6)在用户信息表上定义“验证用户”存储过程。
设计完成后,用“Check Model”命令检查整个PDM模型,修改错误,直到模型完全正确,结果如图4所示。
建立好PDM后,可以使用ODBC访问不同DBMS中的数据库。将“学生成绩管理系统”的PDM生成到SQL Server2000中,设置如下:
1)在SQL Server2000上建立“学生成绩管理”数据库;
2)在控制面板中配置数据源“学生成绩管理”;
3)选择“Connect”命令,连接到数据源;
4)选择“Generate Database”命令,将表创建到数据库,如图5所示。也可生成脚本,将脚本放到查询分析器中执行,如图6所示。
4在数据库中添加测试数据
生成数据库后,可以在数据库中自动添加测试数据,测试数据库的性能。在PDM中,可以先定义测试数据描述文件,然后为列指定测试文件,最后产生测试数据。在“学生成绩管理系统”中,可设置下列内容:
1)选择“Test Data Profiles”命令,定义“姓名测试”描述文件,从一个CSV文件中生成字符型的测试数据;定义“已修学分测试”描述文件,在指定的范围内自动生成数字型测试数据;定义“入学日期测试”描述文件,在指定的范围内自动生成日期/时间型测试数据;
2)为“姓名”、“已修学分”、“入学日期”列指定对应的描述文件。
3)选择“Generate Test Data”命令在学生信息表中自动产生测试数据。
5结束语
在数据库综合性实验中,利用PowerDesigner软件设计数据库应用系统模型,可以使学生快速掌握建立模型的方法和过程,为学生走向软件开发岗位奠定良好的基础。
参考文献:
[1]白尚旺,党伟超.软件分析建模与PowerDesigner实现[M].北京:清华大学出版社,2010.
[2]百度文库. Sybase PowerDesigner BPM Tutorial教程[EB/OL]. http://wenku.baidu.com/view/8a86e34ce518964bcf847c63.html,2011-02-25.
[3]百度文库.Sybase PowerDesigner Repository Tutorial教程[EB/OL].http://wenku.baidu.com/view/ef22d8ebe009581b6bd9eb62.html, 2011-02-25.
[4]肖海蓉.基于PowerDesigner的员工医疗保险系统的数据库设计[J].现代计算机,2010,6:189-191.
[5]曹风华.基于PowerDesigner的数据库系统构建[J].电子科技,2011,24(10):104-105.
[6]吴嵘.基于PowerDesigner的数据库设计与建模[J].电脑知识与技术,2009,5(29):8113-8115.
[7]杨蔚鸣. PowerDesigner在《数据库原理》实践教学中的应用[J].电脑知识与技术,2009,5(27):7723-7724.