摘要:该文介绍了UML的基本概念、五大视图,阐述了UML类图作为数据库建模的方法,以产品生产管理系统作为案例分析了UML类与关系数据库表及表访问操作之间的映射方案。
关键词:UML;建模;关系数据库
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)03-0457-04
1 概述
关系数据库是人们使用已久的抢持久信息存储方法,E-R模型是关系数据库建模的标准方法。而随着数据库规模不断的扩大,简单的E-R模型已无法清晰地、详细地分析和描述关系数据库建模问题,从而导致了系统开发难度增大。但是,数据库设计在软件开发中占重要地位,如有不甚将直接影响整个软件系统的数据存取速度,而数据库建模又是其系统开发的重中之重。而采用UML的分析方法设计数据库模型,不仅能够使数据库模型清晰易懂,还能够清晰地反映软件系统结构,便于开发,也提高软件系统开发的效率,以缩短了软件系统开发周期。
UML(Unified Modeling Language)[1][2],统一建模语言(标准建模语言),是始于1997年一个软件系统开发的图形化语言,为软件系统开发的所有阶段提供模型化和可视化支持,是在多种面向对象建模方法的基础上的建模语言,也是前面向对象分析设计中的一种标准建模技术,它的应用领域很广泛。UML规范用来描述建模的概念有,类(对象的)、对象、关联、职责、行为、接口、用例、包、时序、协作等。[3]本文将基于UML的数据库建模技术为核心进行分析,系统地阐述了UML的对象类图用于数据库建模方法,同时加以应用。
2 UML简介
标准建模语言UML的重要内容可以通过用例视图、逻辑视图、实现视图、进程视图、部署视图五类视图来定义。一般称作为“4+1”视图[3]。
每一种视图都是由多个图组成的,每一种图都是系统结构中某个侧面的表示,所有的图在一起就能组成系统的完整视图。在UML语言中共有10种类型的图(图1):
1)用例图。展示系统外部的各类执行者与系统提供的各种用例之间的关系。
2)类图。展示系统中类的静态结构。类是指具有相同属性和行为的对象,类图用来描述系统中各种类之间的静态结构。
3)对象图。是类图的一种实例化图。
4)顺序图。展示对象之间的一种动态协作关系。一组对象组成,随时间推移对象之间交换消息的过程,突出时间关系。
5)合作图。从另一个角度展示对象之间的动态协作关系。对象之间的动态协作关系,突出消息收发关系。
6)状态图。描述一类对象具有的所有可能的状态及其转移关系。它展示对象所具有的所有可能的状态以及特定事件发生时状态的转移情况。
7)构件图。展示程序代码的物理结构。
8)活动图。展示系统中各种活动的执行流程。
9)部署图。展示软件在硬件环境中配置关系。
10)包图。是一种分组机制。
若将以上10种图根据它们描述系统的结构和行为来分,还可以将它们分为静态图和动
态图两大类。UML数据建模规范使得开发人员能够用一种统一的语言开发应用软件和建立数据模型,即UML可以对任何具有静态结构和动态行为的系统进行建模。其建模方法是,将所有软件系统都用对象或类人选为其主要构造块。简单地说,对象通常是从问题空间或解决空间的词汇中抽取出来的东西;类是对具有共同属性的一组对象的描述。每一个对象都有标识名、状态和行为。根据对象和类来进行块模型建模。
3 基于 UML中的数据库相关的术语
对象:是指客观世界中的事物。每个对象都具有自身的结构特征和相应的行为。是类的实例化。
类(Class):是指一组具有相同属性、操作、关系和语义的对象的描述。是对象的集合、抽象,是UML模型中最基本的模型元素。
类图(Class Diagram):是面向对象系统建模中最常用和最重要的图,是定义其它图的基础。它主要是用来显示系统中的类、接口以及它们之间的静态结构和关系的一种静态模型。
联系(Rational):类与类之间的静态关系,是一种结构关系,它指明一个事物的对象与另一个事物的对象间的联系。联系包含有:关联(Association)、泛化(Generalization)、聚合(Aggregation)、组合(Composition)、依赖(Dependency)(图2)。
属性(Attribute):描述类的基本结构特征,是对象的具体值。
主键(Key):用来存放对象标识符,并作为主键唯一识别对象。
外键(Foreign Key):表示两个类之间的相关联系,以确保数据的一致性,完整性。
4 基于UML的类与数据库映射实例
UML实例是基于软件工程的一些原理,例如,聚合、耦合和封装等。UML中的类是面向对象系统结构中的最核心部分,其建模原理来自于离散数学,而关系数据库的关系其原理是基于数学原理中的传统集合。虽然它们的原理来自不同的数学模型,但是其根本也是如出一辙的,事必有着很强的内丰联系。所以,如果要想将UML中的类与关系数据库进行最好、最优化的结合,则必须让类(对象)和关系数据库之间建立相应的映射。我们以产品生管理系统为例,进行基于UML的类图与数据库建模分析。针对UML中类与数据库之间的相应概念及特点,将产品生产管理系统中数据库表及操作方法映射分为三种情况:一是类与数据表的属性映射,二是类与数据表的关联映射,三是类与数据表中数据的操作映射。
4.1 类与数据表的属性映射
UML类图是由属性和操作两个部分组成。其中,属性,它描述了该正被建模的事物的一些特性,这些特性为类的所有对象所共有,一般是用数据结构来描述。与关系数据库中数据表的字段相对应,故而类中的属性映射为数据表中的字段。为了确保类中对象能得以更好的区分,则必然有一个有效的标识符以示区别,所以在类中属性中有一个属性(主键)来映射数据表中的主键字段。
同时,数据表中每个字段都有各自的值域,其值域的数据类型也有所不同,分别是整型、浮点型、字符号等等。那么,在类与数据表映射时也要相应显示出来。
UML中类则映射为数据表,类的对象则映射为数据表中的各个记录(元组)。图3中将职工表(职工编号、姓名、性别和地址)映射为“职工类”。
4.2 类与数据表的关联映射
在现实生活中,事物与事物之间存在一定的关系(关联)。那么,在关系数据库中,实体与实体之间之间也必然是一样的。我们一般是通过关系数据库中的外键来实现实体与实体之间的联系。而UML类图中也存在有外键这个概念,其作用与关系数据库中的外键作用一致,所以,UML中类与数据表的关联映射则是由外键来完成。而关联视情况不同,其映射效果也不同。其关联分以下三种情况:
1)1:1关联。关联两端之间的一一对应的,即该关联表示两方是平等的,任何一方都可以存放外键。若将一方可选,则另一方则必然为强制,则外键放置到可选的一方,其外键不能为空值,如图4所示。
2)1:m关联。关联两端中,有一方中的一个对象,对于另一方中有一个或多个对象与之联系。即一方是单方,而另一方为多方,则外键放置在多方,如图5所示。
3)m:n关联。关联两端中,有一方中的一个对象,对于另一方中有一个或多个对象与之联系,反之,也是亦然。即,两方都是多方,则需要建立一个关联表,其关联开有的主键可以用两方的主键组合而成,也可是关联自身的主键,而两方的主键则作关联表的外键。所以说,m:n关联可以分解为两个1:m关联,如图6所示。
4.3 类与数据表中数据的操盘映射
类除了属性之外,还包含了操作。类中的操作,是一个服务的实现,该服务可以由类的任何对象请求以影响其行为。换而言之,操作是对一个对象所做的事情的抽象,并且它由这个类的所有对象共享。数据库中对数据的访问操作主要是通过SQL语句实现的,即SQL语句中的DDL语句和DML语句中Creat,Insert,Update,Delete,Select功能语句的实现数据访问,我们可以通过这些功能语句与UML类中的操作进行映射,从而实现UML类操作与数据表中数据操作访问功能的映射。产品表、职工表及数据操作的映射如图7所示。
5 结束语
UML是目前面向对象分析设计中的一种标准建模语言,它被用作为构建和设计一个系统的结构。该文采用基于UML的数据库建模,对UML的类的应用进行了扩充。通过UML建模,则更能够体现人们对客观世界的认识和分析,从而能更好的设计出符合人们思维方式,分析和设计的结果与客观世界的实际更接近,更容易被人们所接受的系统。
参考文献:
[1] Booch G,Rumbugh J,Jacobson.UML用户指南[M].邵维忠,麻志毅,张文娟,等,译.北京:机械工业出版社,2001.
[2] 牛丽平,郭新志.UML面向对象设计与分析[M].北京:清华大学出版社,2007.
[3] 高焕堂.UML嵌入式设计[M].北京:清华大学出版社,2008.