Vol 126No .82009年8月 Computer App licati ons and Soft w are Aug .2009
基于U ML 的面向对象数据库设计思想及在HR 系统中的应用
张 念
1,2
陈 薇
2
1(中国地质大学(武汉)地球物理与空间信息学院 湖北武汉430074)2
(广州航海高等专科学校计算机与信息工程系 广东广州510725)
收稿日期:2008-01-08。张念,高工,主研领域:系统分析,计算机算法,地球探测信息技术。
摘 要 针对传统E 2R 模型在大型数据库设计中的不足,提出一种基于UML 的面向对象数据库设计思想。该方法由用例驱动整
个研发过程,可以在进行系统分析的同时规划数据库,产生对应的数据库表。在HR 系统中的应用实践表明,该方法可以优化数据库设计过程,提高系统研发效率。
关键词 统一建模语言 数据库设计 人力资源系统
D ES IGN I D EA O F O BJECT 2O R I ENTED DATABAS
E BASED O N
U ML AND I TS I CAT IO N IN HR S Y STE M
Zhang N ian
1,2
Chen W ei
2
1
(Institute of Geophysics and Geo m atics,China U niversity of Geosciences,W uhan 430074,Hubei,China )
2
(D epart m ent of Co m puter Science and Infor m ation Technology,Guangzhou M ariti m e College,Guangzhou 510725,Guangdong,China )
Abstract According t o the deficiency of traditi onal E 2R model in large database designing,the paper puts f or ward a design idea of object 2oriented database based on UML.The method drives whole p r ocess of design and devel opment by the use 2case,it can p lan database and p r o 2duce corres ponding database table while analyzing the syste m.The app lied p ractice in HR syste m shows that it can op ti m ize the p r ocess of da 2tabase designing,and i m p r ove the efficiency of research and devel opment .
Keywords Unified modelling language Database design Hu man res ource syste m
0 引 言
数据库设计是现代信息系统的基础和核心,传统的数据库
设计主要依靠实体关系模型(E 2R 模型),E 2R 模型结构简单、便于理解,但不利于反映复杂数据库系统各实体间的关系,也不利于软件项目干系人的相互交流。
UML 是一种面向对象的分析与设计语言,它能够让系统构造者用标准的、易理解的方式来表达系统,便于不同人员有效共享与交流[1-3]。采用UML 方法进行数据库系统建模,可以将数据库规划与系统规划结合起来,在系统分析的同时进行数据库的设计,可以保证数据库设计与系统规划的一致性,改进软件开发质量,提高软件研发速度[4-7]。
1 传统E 2R 模型遇到的问题
在传统的数据库设计中,用E 2R 模型来创建数据库的逻辑
结构,其基本思想是:描述实体与实体之间的关系,以此来反映一个数据库系统的需求[8]。该方法在一定程度上为数据库建模提供了方便,推动了数据库设计的规范化、标准化,但随着现代信息系统越来越庞大,数据库越来越复杂,E 2R 模型的缺点也逐步暴露出来:
(1)用E 2R 模型描述系统信息过于简单化,且词汇量不足,不利于准确地映射问题域,也不利于从整体上反映系统。
(2)不利于系统扩展。应用系统的业务需求总是不断变化
和发展的,在对系统进行扩展时,E 2R 模型很难适应这种扩展的需要。
(3)采用E 2R 模型进行建模时,分析与设计阶段性很强,各阶段或过程之间的转换比较困难,其中一个阶段的变换可能引起整个系统的改变,增加了系统分析与设计的工作量。
为克服以上缺点,需采用更灵活、更健壮的面向对象分析方法来替代E 2R 模型,或与E 2R 模型结合作数据库系统分析与设计,下文就是用UML 技术对E 2R 模型进行改进。
2 基于U ML 的面向对象数据库设计思想
2.1 U ML 与传统E 2R 模型的关系
UML 是一种面向对象的建模技术,从本质上看,UML 对象
模型是一种扩展的实体—关系(E 2R )模型。在数据库建模中,E 2R 模型主要用于表述实体间的关系,当数据库系统规模很小时,E 2R 图很容易理解。然而现代数据库系统往往非常庞大(可能由上百个数据表组成),仅仅依靠E 2R 图来理清各实体之间的关系是非常困难的,此时UML 技术是一种有效的解决方法。
UML 采用类图、用例图、对象图、交互图等工具,清晰地描述系统的各种功能需求及复杂系统的各种内部关系,使得建模
第8期
张念等:基于UML 的面向对象数据库设计思想及在HR 系统中的应用139
过程和结果容易被理解。此外,UML 不仅能够完成E 2R 图所能
完成的数据库建模,还可将数据库建模过程与系统分析过程紧密结合,避免数据库规划与应用系统设计的脱节,为设计健壮的、高效的数据库应用系统提供方便。
2.2 用U ML 进行数据库设计的基本过程
图1是用UML 进行数据库设计的基本过程
。
图1 基于UML 的数据库设计过程
可以看出,基于UML 的数据库设计基本思想是:由用例驱
动整个研发过程,将整个过程分为四个阶段:捕获需求阶段、系统分析阶段、系统设计阶段、实现阶段(实体类映射为数据表),每个阶段均在前一阶段基础上进化而来,呈增量迭代模式。各阶段工作分别为:
(1)捕获需求阶段 由用户、系统分析人员和设计人员积极交流,将用户对系统的需求提炼出来,在此基础上记录业务用例模型、业务对象模型,用模型来完整表达和细化用户需求。(2)分析阶段 针对用户需求,进行功能抽象和数据抽象,得到系统分析包及类之间的关系。
(3)设计阶段 进一步细化,细化分析类的方法和相互关系,细化各子系统的接口和相互间交互,得到可以实现的设计模型。(4)实现阶段 将上述用UML 分析产生的类图映射到数据库,实现对数据库的具体设计。
2.3 U ML 类图与关系数据库的映射
将UML 分析得到的实体类图映射到关系数据库,是上述思想中最重要的部分,也是系统实现的关键。
2.3.1 实体类到数据库表的映射
・类映射到表 一般情况下,将一个实体类映射为一个表,主键的定义是其关键。一种方法是为每个类增加一个对象标识符(O I D ),将它映射为数据库表的主键;另一种方法是根据实际情况,将某个属性或属性的组合作为主键。
・属性映射为字段(列) 通常一个属性映射为表中的一列,非持久的属性不进行映射,复杂的属性可以映射为多列。・属性的类型映射为域 简单类型直接映射为数据库相应的类型;复杂类型先化作简单类型,再作相应处理。
2.3.2 类的关系映射
・关联关系的映射 通过外键来实现。若A 与B 是一对一关联,映射数据库表时可以选择任意一方,在其所在类表中添加外键,指向另一方对应表的主键;若A 的一个对象与B 的多个对象关联(一对多),则在B 对应的数据库表中添加外键,指向A 对应库表的主键;如A 与B 是多对多关联,则考虑增加一个关联表(中间表),该表与A 和B 对应的表形成两个一对多的关系,在关联表中设置对象标识符(O I D ),同时增加两个外键,分别指向A 和B 对应的数据库表。
・聚合/组合关系的映射 聚合表示整体/部分关系较弱的情况,一般采用一对多关联的映射方式,如果聚合关系比较紧密,则可以映射到一张表中;组合表示整体/部分较强的耦合关系,映射策略与聚合类似,只是子类对应的子表中的外键不能为空。
・泛化关系的映射 在面向对象方法中,泛化反映了类之间的继承关系;而关系数据库表中,没有明确方法表达继承。映射时可以考虑如下三种方法:
(1)将整个类层次映射为一个数据库表。该方法实现简
单,支持多态,但增加了类层次的耦合,且浪费大量空间。
(2)每个具体子类分别映射成一个数据库表,抽象类不参与映射。该方法实现简单,包含具体子类所有信息,但父类的修改会导致父表和子表同时修改,对象具有多个角色时不能保证数据的完整性。
(3)每个类均映射成数据库表。该方法与面向对象的概念一致性最好,支持多态,易于修改基类和增加新类。缺点是:数据库中存在大量的表,访问数据的时间较长,对报表的支持差。
3 在HR 系统中的应用
下面以人力资源系统中的考核管理模块为例,来说明UML
技术在数据库设计中的应用,其具体过程包括:用例分析、建立类图、类图转化为数据表[9]。
3.1 用例分析
首先,建立业务用例模型,用来描述模块的业务功能[10],包括两个元素:角色、用例。角色就是使用用例的人,用例则用来描述系统或模块功能,指定一系列活动。如图2所示,是考核管理模块的用例图
。
图2 考核管理模块用例图
然后,对用例图进行分析,细化功能,同时考虑数据间的层次,生成系统顺序图和合作图,其中顺序图可以得到类的方法(函数)。
对图2(考核管理模块用例图)进行过程分析,可以得到考核计划顺序图、排序顺序图、考核定级顺序图、考核上级打分顺序图、考核自评打分顺序图。如图3所示,
是考核自评打分顺序图。
图3 考核自评打分顺序图
140 计算机应用与软件2009年
3.2 建立类图
基于上述的业务用例模型,用名词短语的方法,可以从用例描述中得到系统的类(对象),经过反复筛选和添加,可得到系统的整体类图(对象模型)。用UML 设计数据库时得到三种类:控制类、实体类和边界类。控制类用于对一个或几个用例所特有的控制行为进行建模、协调、处理、控制和序列化其他对象;实体类是指存储信息和相关行为的类,即业务对象;边界类用于系统与角色的交互。
建立类图,可以明确类的属性和行为,发现类的关联,找出实体类和它们之间的关系,为数据库设计提供依据,如图4所示,是根据业务用例模型分析出来的类图
。
图4 考核管理模块的实体类及控制类
可以看出,该考核管理模块包含一个控制类:Quarter A s 2
sessServlet;三个实体类:Quarter A ssessPlan (季度考核计划)、
Quarter A ssess Report (季度考核述职)、Quarter A ssess (绩效考核)。
3.3 类转化为数据表
建立类图后,就可以按照上节的方法,将UML 类图映射到关系数据库。
首先,按照“实体类到数据库表的映射”方法,将分析得到的类转化为数据库表,譬如Quarter A ssessPlan 类可以映射为季度考核计划表,表的字段分别为:条目编号(主键)、考核表编号
(主键、外键)、季度主要工作任务、考核标准、权重(%)、资源支
持承诺、参与评价者打分、自评打分、上级评分。
然后,按照“类的关系映射”方法,根据类之间的关系生成表之间的关系,如图5所示,是用该方法得到的表之间的关系(原表较大,截取一部分)。
图5 数据库表之间的关系
数据库表及表间的相互关系确定下来,意味着数据库规划的完成。
4 结束语
面向对象的系统分析方法是现代信息系统规划与设计的主流思想,采用UML 对数据库系统进行建模,可以将系统的分析过程与数据库规划过程紧密结合,保证了系统结构的合理性,且大大提高了开发效率。同时,由于对象和类本身的封装性、性,使得用该方法设计的数据库数据冗余较少。
参 考 文 献
[1]Booch G,Rumbaugh J,Jacobs on I .UML 用户指南[M ].邵维忠,麻志
毅,张文娟,等译.北京:机械工业出版社,2001:48252.
[2]尤克滨.UML 应用建模实践过程[M ].北京:机械工业出版社,
2003:52256.
[3]冀振燕.UML 系统分析设计与应用案例[M ].北京:人民邮电出版
社,2003:34237.
[4]张唏.UML 类图在关系数据库中的实现[J ].计算机应用研究,
2001(12):1312133.
[5]张虹,郑会颂.UML 中的类模式在关系数据库中的映射及其实现
[J ].南京邮电学院学报,2005(6):75278.
[6]古莉,刘玉生.基于UML 设计数据库模型[J ].计算机与现代化,
2001(5):55258.
[7]张念春.UML 模型向关系数据库的映射方法初探[J ].计算机工程
与应用,2002(19):2122214.
[8]萨师煊,王珊.数据库系统概论[M ].3版.北京:高等教育出版社,
2000:2132224.
[9]陈志刚,何铮.基于UML 的对象关系数据库设计[J ].微型电脑应
用,2001(10):12214.
[10]W endy Boggs,M ichael Boggs .UML 与Rati onal Rose 2002从入门到
精通[M ].北京:电子工业出版社,2002:55258.
(上接第121页)
参考文献
[1]吴丽花,刘鲁.个性化推荐系统用户建模综述[J ].情报学报,
2006,25(1):55256.
[2]Deshpande M,Karyp is G .Ite m 2based T op 2N Recommendati on A lgo 2
rithm s[J ].AC M Transacti ons on I nf or mati on System s,2004,22(1):1432168.
[3]李涛,王建东,叶飞跃.一种基于用户聚类的协同过滤推荐算法
[J ].系统工程与电子技术,2007,29(7):117721178.
[4]M ichael J A,Berry Gordon S L inoff .数据挖掘技术[M ].机械工业出
版社,2006:1512152.
[5]Sar war B,Karyp is G,Konstan J,et al .Ite m 2Based collaborative filtering
recommendati on algorithm s[C ]//Pr oceedings of the 10th I nternati onal World W ide W eb Conference,2001:2852295.
[6]B reese J,Hecker man D ,Kadie C .Emp irical analysis of p redictive algo 2
rithm s for collaborative filtering[C ]//Pr oceedings of the 14th Confer 2ence on Uncertainty in artificial I ntelligent,1998:43252.
[7]J in L iu,Q ianPing W ang,Kun Fang .An Op ti m ized Collaborative Filte 2
ring App r oach Combining with Ite m 2Based Predicti on[C ]//Pr oceeding of the 200711th I nternati onal Conference on Computer Supported Co 2
operative Work in Design,2007:158.