UML软件工程组织

一种逻辑层次连接的工程数据库设计方法及应用
作者:王潜平 郭玉钗 林宗楷 选自:www.tongji.edu.cn

摘要 以自行研制的工程数据库管理系统EDBMS为背景,讨论了工程数据库设计中的一些问题,并结合工程应用,提出了一种以逻辑分层为基础,结合对象间连接关系来进行逻辑层次连接的工程数据库设计方法,它在数据检索应用中能显著地提高使用效率.
  关键词 数据库设计,工程数据库,层次,对象,关系,数据检索
  中图法分类号 TP391

A MODEL OF LOGICAL HIERARCHY-LINK FOR ENGINEERING
DATABASE DESIGNING

WANG Qian-Ping GUO Yu-Chai LIN Zong-Kai
(Computer Department of China University of Mining and Technology, Xuzhou 221008)
(CAD Laboratory, Institute of Computing Technology Academia Sinica, Beijing 100080)

  Abstract  In this paper, some problems are discussed in engineering database designing based on our engineering database management system* EDBMS.An engineering database designing approach of logical hierarchy-link is presented that come from the real projects,with logical layering and links of objects.It raises efficiency of data retrieve with this approach.
  Key words database design, engineering database, hierarchy, object, relation, data retrieve

1 引言
  工程数据库系统和传统数据库系统一样,包括工程数据库管理系统和工程数据库设计两方面的内容.工程数据库设计的主要任务是在工程数据库管理系统的支持下,按照应用的要求,为某一类或某个工程项目设计一个结构合理、使用方便、效率较高的工程数据库及其应用系统.数据库设计得好,可以使整个应用系统效率高、维护简单、使用容易.即使是最佳的应用程序,也无法弥补数据库设计时的某些缺陷.这方面的研究包括工程数据库设计方法和辅助设计工具的研究和开发.本文就工程数据库设计中的一些问题进行讨论,阐述了工程数据库设计的基本概念和内容,以及工程应用领域中数据库设计的一些特性,介绍了一种以层次分析为主,以连接关系为基础, 结合面向对象技术来进行工程数据库设计的方法及其应用.

2 工程数据库设计的特点
  所谓工程数据库设计,是指从工程应用需要出发,设计出一个工程数据库结构的全过程.它的一个粗略过程是:首先要对工程应用领域的数据进行需求分析,综合整理出被处理对象的概念.这种概念是独立于工程数据库管理系统的,与具体的工程数据库管理系统无关.完成概念设计后,再根据实际情况进行数据库的具体设计.
  对作为集成化CAD/CAM系统基础的工程数据库系统的设计,在吸取常规的设计思想同时,还要充分考虑与工程设计环境相关的一些特点,要适应工程数据处理的需要[1].
2.1 工程数据库的设计目标
  工程数据库设计要达到的基本目标是要有效的为集成化应用提供所需要的工程数据,并且使这些工程数据具有较高的稳定性.具体说,概念设计的目标就是通过对应用系统的信息需求进行描述和综合,从概念上模拟工程应用的信息结构,便于用户理解.逻辑设计要产生一个具有数据独立性高、冗余度低、数据一致性和完整性好等特点的逻辑数据结构,能满足并最小覆盖工程应用的数据需求;能被工程数据库管理系统所处理.物理设计要产生一个可以有效予以实现的数据库的物理结构,以及与系统软件、硬件及其分布情况有关的实现细节的设计.
2.2 注重设计方法的实用性
  为了提高系统资源的利用率,简化软件设计和数据的转换工作,避免系统开发中人力、物力、财力上的浪费,提高系统的生产率,就要考虑到设计系统的实用性.
  通常数据库设计方法学的理论研究大都着重于一般性,而工程数据库设计的实践更着重于在具体环境中的实用性.因此,一方面以满足用户需求作为设计的出发点和归宿,将信息需求贯穿到数据库设计的全过程之中;另一方面,在对数据抽象程度、概念模型级别、数据模式类型以及设计工具等方面,要根据设计环境和目标,着重其实际效果来进行选择和确定.
2.3 工程设计过程中的一些特点
  .层次结构
  设计人员开始工程项目或产品的设计时,对设计的产品或项目一层一层的将它们分解,将一个复杂的问题,分成若干个简单问题,从而对它进行求解.如商场CAD设计中,也是一种以层次为主的分析设计过程:商场可以分为楼层(又称店堂),在楼层店堂中常包含若干小区,小区又由配套和构件组成.很多实例表明在一个工程或一个产品的设计开发过程中,层次结构化分析是问题求解的基本点.
  .逻辑层次结构
  随着分层的深入,层次结构会向着一种有向图的形式发展.因为每层上的子图深度是不完全一致的,有的深有的浅,所以在这种层次结构中,上层除了可以调用直接的下一层外,还可以调用其它下层的内容,但是下层结构不允许调用上层,这样的层次结构称之为逻辑层次结构.
  .自顶向下与自底向上相结合的设计方法
  在设计过程中,经常采用自顶向下逐步求精的设计方法.经过一步一步的分解完善,到最后才能取得较好的效果,满足实际需要.在具体设计过程中还要结合自底向上逐步综合的方法.如在对商场CAD设计的工程数据库设计过程中,在逻辑分析阶段中运用了自顶向下的设计方法;而具体设计阶段又采用了自底向上的设计方法.
  基于工程设计过程中的这些特点,在进行工程数据库设计时,要充分发挥和利用这些特点,使工程数据库的设计过程能够与这些特点密切配合,工程数据库的设计应包含:需求分析、工程数据库的划分、概念设计、逻辑设计与物理设计等.而贯穿整个设计过程的中心思想是层次分析的方法.

3 逻辑层次连接的工程数据库设计过程
  设计一个工程数据库,要考虑工程过程中的一些因素;为了确保工程数据库设计的优良性,还应遵循一定的设计步骤.下面就围绕逻辑层次连接的工程数据库的设计过程进行讨论.
3.1 需求分析
  在任何设计中,首要的任务是完成详尽的需求分析,了解用户的需要.尤其要注重工程过程的特殊性.
  .充分了解集成系统中各有关数据项
  工程数据库系统是集成化系统中数据共享的基础.在进行工程数据库设计时,只有充分的了解集成化系统中各应用软件对共享数据的要求,才可能对工程数据库的设计做到比较全面合理.
  .要了解各应用系统对共享数据的操作
  工程数据库不仅要存储被应用系统处理过的数据信息,同时还要为应用系统提供被处理的数据,从而就需要了解各应用系统对数据的处理要求.这样设计出来的工程数据才会方便于应用系统的使用,提高应用系统的处理效率.
  .具有一定的可扩充能力
  设计的工程数据库,不仅要满足当前的需要,而且还要考虑到今后的发展,如扩充应用系统或增加应用系统的处理功能,以适应工程应用中集成化、网络化、开放计算等发展的需要.
3.2 库的划分
  在需求分析的基础上,要对工程数据库进行划分,工程数据库要能对各种不同应用系统中的数据交换、接口等进行集中的描述和管理.为了有效的管理,以及提高集成系统的工作效率,方便各应用系统对数据的处理,就需要根据工程过程中的特点对工程数据库进行必要的划分,将一个大系统进行分解,使一个大的工程数据库系统分成若干个小一点的工程数据库.
  在集成化的CAD/CAM等系统中,通常有这样三类设计数据:系统公用的共享数据;为子系统所共享的项目数据;以及为单个应用而使用的私有数据.在工程数据库的设计过程中,分别将它们聚集一起,分别形成相应数据库.在KJ8920计算机的模拟过程中,将数据库划分成器件库、物理参数库、连接关系库等几个库.将数据库这样划分后,提高了设计数据的一致性,方便了统一管理,也减少了数据的冗余[2].在商场CAD系统的工程数据库设计中,将其分成了图象库(保存具有典型风格的设计图象)、构件库(构件资料)、材料库、样板库、设计库等几类数据库.将一个大库分成几个小库(一个样板库未压缩数据达200MB)后各个数据库任务明确,易于管理和理解.
  库划分好后,要对每个库进行设计.划分成多库后,范围缩小了,而且各库均有一定的物理意义,与某个或某些应用相关,可作为一个独立的环境而分别处理;不仅有利于工程数据库的设计,同时对分布式环境下的工程数据处理提供了一种方法和手段.
3.3 概念设计
  概念设计要进一步细化库的结构,使其能满足应用系统的功能和数据流程.在概念设计阶段,采用了层次分析为主,对象分析为辅的方法.在分层的数据库中,数据结构是三维的,除了有数据表外增加了表明层次的内容;上一层数据可展开成更详细的下一层的数据;这样可以方便地实现系统需要哪一层的数据,就能够提取哪一层的数据.在商场CAD设计中,按店堂、小区、配套、构件等层次构成了一个工程数据库系统;在此数据库中可以方便的提取店堂、小区、配套、构件直至整个商场的任何一层的有关数据(如造价数据).
  另外在概念设计阶段还将每个库视为由对象、层次结构、链接信息等组成.从抽象的角度看,任何一个工程对象都是由一些原子对象和复合对象所构成.在这里可定义一些基本概念:
  定义1. 层次对象(Object).层次对象是可明确标识的实体.如商场、店堂、小区、构件等都可视为一种层次对象.在这里层次对象具有一定的物理意义,并包含一定的关系和内容.
  在层次对象之间,存在着某种关系,有时甚至是一种复杂的有向无循环图的关系.如在一个店堂中其小区的分布是交叉的.在一个服装商场中常见到,在某一层(店堂)中交叉分布着男士服装、女士服装以及儿童服装等小区.为了处理这种扩充了的层次关系.引进了联系、连接、关系等概念.以便能处理工程中的复杂关系.
  定义2. 关系(Relation).关系表示2个对象间的相互依赖,它由一对连接组成,其中一个连接的源对象是另一个的目的对象.如构件环行低柜(hd)可以用于化装品小区(hzpxq),也可用于烟酒小区(yjxq),其关系可以表示为(hd,hzpxq)和(hd,yjxq).
  定义3. 节点(Node).节点是一种实体对象,一个节点由具有相同属性的一个或一组实体构成.如环行低柜构件、化装品小区、烟酒小区等都被视为一个具体的节点.
  根据处理的不同,进一步将节点分成两类,一类是中间节点,另一类为叶节点.中间节点表明它还有下属层次,还能进一步细分.而叶节点则表明,已经分到了原子对象,不能或无需再分.在商场CAD系统中,节点层为构件层,其它层次均视为中间层次.
  在工程过程中,某对象所包含的层次数目可能是不等的,这样叶节点所处的层次深度不同.为此设立了虚节点,虚节点是为了保证对象具有同样的层次深度,这些节点只起逻辑上的作用,并不包含具体的内容.这样一个工程数据库可表示为(层Layer, 层次对象Object, 关系Relation); 而层次对象又由节点和关系构成,即层次对象Object(节点Node, 关系Relation)等.
3.4 逻辑设计
  逻辑设计是将概念设计所产生的与具体工程数据库管理系统无关的数据模式,转换成以工程数据库的逻辑数据模型表示的数据模式.理论上任何数据库管理系统都可以用来管理工程数据.下面以工程数据库管理系统EDBMS为例[3—5],讨论工程数据库的逻辑设计.
  1) 将概念模式中的层转换为EDBMS的表
  数据表可视为一种二维的关系结构.为了实现扩展的层次模型,将概念模型中的每一层作为一个数据表;对于叶节点层由于其依附的关系不同,可分别转换为多个数据表.
  2) 转换实体对象为记录
  在EDBMS中,由于它是一种面向记录的模式;对扩展层次模式中的各个实体,均将其转换为数据记录,用记录来表示实体.
  3) 用连接来表示扩展层次模式中的联系
  为了保证扩展层次模型中的复杂关系.在EDBMS中专门提供了用于建立实体间联系的DDL和DML语言——Link族语句,该族语句可以在库与库、表与表、表与记录、记录与记录之间建立一对一、一对多、以及多对多的关系.这样就将复杂的联系进行了描述和处理.
3.5 物理设计
  物理设计的任务是选择合适的存储结构和存取路径,设计的主要目标是:提高数据库的性能,尤其要满足应用系统的性能要求;此外还要提高存储空间的利用率[3].
  在EDBMS的物理设计中,主要目标之一是如何提高事务的处理效率.在物理设计时就要利用EDBMS的特点,如Link语句所提供的在复杂对象间建立联系,通过它可以快速的提取指定的数据,而无需进行数据的查找,从而具有较快的数据检索速度.另外EDBMS还提供了多表多记录的处理方式[5],将一个库的多个表或多条记录一次加载到内存中,从而减少了读盘的次数,提高了效率.

4 逻辑层次连接设计方法的应用
  我们已将逻辑层次连接方法应用于“工程图纸管理系统”、“集成化商业CAD设计系统”等,由于它具有关系/对象模式的优点,在数据检索应用中有着较高的效率.
4.1 在工程图纸管理系统中的应用
  BIDMS作为集成化CAD系统BICAD的一个子系统,是将BICAD系统中产生的设计图纸统一管理起来[6].BIDMS利用图纸间的层次关系来组织管理图纸,已应用于建筑领域.不仅减少了各专业的输入工作量,提高了工效,消除了因数据输入差错而引起的设计错误和返工现象,而且避免了专业之间联系不够导致的“错、漏、碰”等问题.在组织图纸时,每个设计项目建一个库.每一库里有专业表、类表、组表、序表,分别存放专业、类、组、序的信息.如图1所示.专业表、类表、组表中只有专业号、类号、组号属性,序表中除了有序号信息外,还存放图纸的属性,如设计者,绘图员、图名、生成时间等.专业表和类表、类表和组表、组表和序表之间建立LINK关系,即某一专业(专业表中的一条记录)与此专业的类(类表中的一条记录)用LINK链联系起来.同样类与组,组与序也联系起来.这样,用户要查看某专业的第几张图,就可通过此表来得到DBK,迅速找到要看的图.

                        图1 BIDMS中库的设计
4.2 在其它方面的应用
  逻辑层次连接的设计方法不仅可应用于工程数据库的设计,在其他应用中也可以取得较好的效果.如对某连锁店的数据管理中,以EDBMS为基础,结合逻辑层次连接的设计方法,对其销售数据进行检索处理.将其处理的结果与某大型数据库管理系统(未带加速器情况下)进行了比较.比较内容有:在销售数据库中检索某商品的销售情况(测试1);在销售数据库中检索出没有销售的商品种类(测试2).测试的条件分别是:商品数据库4786条记录,75300条销售记录(记为4786/75300);以及商品种类为18603种,销售记录252885条(记为18603/252885).其销售库的主要结构是:
  xsrb{
    xssj date not null,     /*销售日期*/
    spbm char(5) not null, /*商品编码*/
    xssl smallfloat, /*销售数量*/
    xsje money(12,2), /销售金额*/
  };
  其中,某大型数据库系统在商品编码spbm属性上建有索引.而商品库主要结构为:
  spb{
    spbm char(5), /*商品编码*/
    spmc char(20), /*商品名称*/
    tm char(12), /*条码*/
   };
  同样,某大型数据库系统也在商品编码spbm属性上建有索引.而EDBMS未采用索引.
  其测试结果如表1所示.其中带*为某大型数据库系统的测试结果(其运行环境为PC586,UNIX).EDBMS是在Windows95环境下进行测试的.

表 1 测试结果

 

测试内容 4786/75300 18602/252885
测试1 59秒* 1秒 缺* 1秒
测试2 >1小时* 2秒 缺* 8秒

5 结束语
  工程数据库设计的基础都来自于需求,同时要切合工程实际,在高效可行、符合工程人员认识水平并易于运用等各方面给予足够的重视.一个好的设计方法可以提高工程数据库设计的质量和效率,也是工程数据库系统成功的关键之一.基于逻辑层次连接的工程数据库设计模式是从实践中总结出来的,它能有效的提高数据检索效率.作为一种通用的工程数据库设计方法还需要更多的面向数据库设计的全过程,在实践中不断提高完善.
王潜平,男,1967年生,博士后,主要研究方向为工程数据库,CSCW等.

作者单位:王潜平 郭玉钗 林宗楷(中国矿业大学计算机系 徐州 221008)
(中国科学院计算技术研究所CAD开放研究实验室 北京 100080)

参考文献

 [1]Guo Yu-Chai, Lin Zong-Kai.A CAD data base system of N/R mixed data model.Chinese Journal of Computers,1988,7(7):395-400
(郭玉钗,林宗楷.关系/网状混合模型的CAD数据库系统.计算机学报, 1988, 7(7):395-400)
 [2]Lin Zong-Kai,Guo Yu-Chai,An intergrated eletronic devices CAD system—EDCADS.Computer Research and Development,1988,25(6):15-21
(林宗楷,郭玉钗.集成化的电子设备CAD系统——EDCADS.计算机研究与发展, 1988, 25(6):15-21)
 [3]Gu Ning,Ling Zong-Kai,Guo Yu-Chai.EDBMS/3:An engineering database management system in microcomputer.Journal of Computer-Aided Design & Computer Graphics,1995,7(1):213-219
(顾 宁,林宗楷,郭玉钗.EDBMS/3:一个微机环境下的工程数据库管理系统.计算机辅助设计与图形学学报, 1995, 7(3):213-219)
 [4]Gu Ning,Lin Zong-Kai,Guo Yu-Chai.On main memory management and its implementation of an engineering database management system.Computer Research and Devolopment,1995,32(1):6-10
(顾 宁,林宗楷,郭玉钗.工程数据库管理系统EDBMS/3的内存管理及实现.计算机研究与发展, 1995,32(1):6-10)
 [5]Gu Ning,Lin Zongkai,Guo Yuchai.A method of multi-table and multi-record for main memory management and its application.Journal of Computer-Aided Design & Computer Graphics,1997,9(1):29-34
(顾 宁,郭玉钗,林宗楷.多表多记录存储管理及应用.计算机辅助设计与图形学学报,1997,9(1):29-34)
 [6]Wang Rui-Dang.The research and implementation of electronic document management system [dessertation].Beijing:Institute of Computing Technology,Academia of Sciences,1996
(王锐当.电子文档管理系统的研究和实现[学位论文].北京:中国科学院计算技术研究所, 1996)

 

版权所有:UML软件工程组织