发布时间:2011-4-14 11:29:14 浏览量:445 【字体:
大 中 小】
西北工业大学 徐秋元
随着改革开放的进展,与国外的学术交流也频繁起来了,六、七十年代国外在科学技术上的新思想、新成就陆续被介绍到国内。在计算机软件方面,操作系统、各种计算机语言及其编译系统、数据库技术等内容大大开阔了计算机软件人员的眼界,也打开了我国计算机软件领域在教育、科研和应用方面的新时代。
我们从接触数据库开始,经过实践,直到有所突破,这一过程还将继续,现将有关情况做一汇报。
一. 数据库在工程设计中的作用
正好在八十年代初期,我们参加了一个“飞机计算机辅助设计”的预研课题。当时我们也只是初步掌握了数据库的基本知识,至于如何应用于工程设计中,还需要摸索。而工程设计人员对数据库也提不出一个正确的要求,他们认为数据库就是存储数据的地方,只要把设计图纸(一架飞机的设计图纸可以多至几十万张)存放进去就可以了,对数据模型、数据冗余、数据库一致性等问题都没有概念。更大的问题是在这种情况下,数据库在工程设计中起什么作用也是模糊不清的,一直到课题进行到后期才逐渐的有所体会。其实数据库在整个设计过程中不仅仅是所有数据存、取的中心,同时也能起到质量控制的作用。一般说来,一个大型的工程设计总是需要分为若干个设计阶段,只有在前一个设计阶段告一段落后,把相关数据传递给下一设计阶段。这种数据传递必须通过数据库来存、取。如果上一设计阶段的数据有所修改,也会反映在数据库中,随后的下一设计阶段就可及时从数据库中取得新数据,从而控制了设计质量。所以数据库在整个设计过程中处于特殊地位,起到了传递数据、质量控制和计划协调等作用。这是通过预研课题才得到的一点收获。
二.多用户数据库管理系统的开发
1984年我校邀请了挪威工业中心研究所的尤尔福斯贝(Steg Ulfsby)先生来校进行学术交流,他介绍了由该所研制的面向CAD/CAM的 TORNADO数据库系统,该系统采用网状数据模型,而它所支持的CAD/CAM软件名为GPM(Geomeitric Product Models),GPM包含构造雕塑曲面,组合板结构和立体模型等模块。两者构成了一个CAD/CAM系统。
TORNADO系统在欧洲,尤其在北欧应用比较广泛,大多用于造船和机械工程的设计和制造。我们对TORNADO的源程序作了较为详细的分析,学习到不少有用的知识,对于如何组织数据,怎样把一个复杂实体在计算机的内部表示等方面内容都有收获,同时也发现了系统的不足之处,经过权衡我们针对其中单用户系统和数据库版本管理的问题作了重点研究和探讨,就当时(八十年代中期)情况而言,微、小型机及计算机网络正在蓬勃发展,多用户的操作系统也已出现而TORNADO还只有单用户版本,显然是不能适应的,为了提高库的利用效率,开发多用户的TORNADO是极为必要的,我们在开发的过程中必须解决在DBMS中实施并发控制、与操作系统的接口以及死锁、恢复等问题,最后开发出一个面向CAD/CAM的多用户工程数据库管理系统—MEDBMS。
该多用户系统还包含了简单的数据库版本管理能力,数据库版本在工程设计中具有特殊的意义。我们来看一个实际例子:美国麦克唐纳公司研制的F-4战斗机,从1961年交付海军使用以来,共生产了舰队防空型、海军全天候型、侦察型、空军战术型、空军战斗轰炸型、西德订购的简化单座型、英国空军使用型等十余种机型,这些型号都是在F-4设计的基础上做局部修改、添加而成的。于是某种型号的设计就相当于把保存在数据库中的F-4设计资料找出相应的某个节点,添加一个分支,把新设计的资料连接在这个节点上,最后各种型号的设计资料形成一树状结构,所谓数据库版本的管理功能,就是对该树的维护功能,每种不同型号对应数据库的某一个版本,从这个版本的叶节点向根节点搜索,就可以获得该型的全部设计资料,由此可见数据库的版本管理在工程设计中具有非常重要的意义和价值,所以作为工程数据库的DBMS必须具有这种功能。
三.数据模型的选择
1. 网状数据模型
TORNADO是一个网状数据库,它的这些不足总的来说,都是可以改进和完善的,但其中有两点需要提出来讨论:
(1)用户针对TORNADO编写应用程序时,必须要对该库的实体结构了解得很清楚,
也就是所谓的用户接口比较低。
(2)查找记录的速度比较慢。
这两点在一定程度上影响了系统的效率。不过在船舶和机械工程行业中应用,TORNADO数据库的规模可以控制在中等程度,效率还是可以接受的。如果数据库是超大规模的,这就是一个大问题了。其实这不是TORNADO数据库特有的问题,而是网状模型所固有的,因为在网状数据库中数据的存取机制有三种:入口点的存取方法,用DBK(每个记录的数据库码)直接存取记录,以及导航的存取方法。这三种机制中,一般用户都是采用导航的方法,它是根据记录之间的逻辑联系来存取记录,所以编写应用程序必须要对实体型以及实体型之间的联系了解很清楚。在超大规模的数据库中,实体型有成百上千个,实体之间的联系就更为复杂了,要求用户对整个实体结构了解清楚是做不到的。另外,查找路径很长的话,就会大大降低系统的效率。由此看来,若采用网状数据模型来研制超大型数据库管理系统是有困难的,必须另辟蹊径。
2. 关系数据模型
到了八十年代中期关系数据库系统已经发展得相当成熟,它采用SQL语言作为查询语言,使用起来非常方便,得到广大用户的青睐。新开发的一些商业和事务处理的应用系统,都采用关系数据库作为它们的后台支撑。但在工程设计领域(如VLSI﹑CAD/CAM﹑CIMS等)中,包含的数据除了数字字符型外,还有图形数据、变长的非结构化数据等,数据实体也很复杂,一个工程对象可以由几十个甚至几百个简单实体所组成。在工程设计中往往需要对这种实体的描述能力,也就是说要求DBMS能直接支持把一个复杂实体作为单一的实体来描述,并作为一个整体来进行操纵。另外,在语义方面也有不少问题需要解决,如构成复杂实体的诸实体中,有的可能是与其它的复杂实体共享的,有的只是某复杂实体的组成部分;有的实体可独立存在,而有的实体依赖于它的复杂实体存在而存在,这些因素都直接会影响数据操纵的语义动作。例如对复杂实体的删除操作,必然将转化为对构成复杂实体的诸子实体的删除,但又必须考虑这些子实体是否为其它复杂实体所共享等因素。所以对复杂实体的定义和操纵的支持是DBMS处理工程数据库时所应具有的一个主要功能。
关系模型在处理工程数据时的不足之处主要表现在以下几方面﹕
(1) 关系模型不能自然地表达复杂对象的结构,也就是对于一个复杂实体不能用一个表来表示,只能分解成多个关系来描述。于是这个复杂实体的内部结构和由这种结构所描述的一个逻辑上作为整体的外部实体之间缺乏一一对应关系,这样在对这个复杂实体查询时,系统效率将严重降低。
(2) 关系中元组是以关键字的属性值作为唯一标识,在关键字值不稳定时对维护由于引用而产生的数据库一致性带来了很大的困难。
(3) 缺乏数据抽象:在关系模型中只有“表”结构概念,而在工程应用领域远远不能满足需要,例如聚合概念—就是把由多个子实体组成复合实体抽象成一个聚合实体;又如概括概念—把相似实体归类为一个更一般的实体型。
3.〝非规范化〞关系模型
这些年来有关复杂对象模型的研究基本上是想充分利用关系模型的一切优势,克服它在表述复杂对象模型时所表现的不足。人们作了两方面的努力:一是扩展关系模型,主要是取消第一范式限制,形成〝非规范化〞的关系模型,并相继出现了嵌套关系模型以及相应的嵌套范式的形式定义和分解算法。总的说来,非一范式关系模型的主要优点是:克服了平关系不能自然地表述复杂对象的缺点,与平关系有自然的联系,从而可以充分利用平关系系统的研究成果,有较坚实的理论基础。其主要缺点是不能方便表述对象共享。
4. 面向对象数据模型
另一方面是面向对象数据库的研究: 面向对象数据库(OODB)是面向对象程序设计语言在数据库领域应用的产物,它的主要优点有:
(1)OODB中的继承机制使得数据库的设计和编程成为可重用的,因而有潜力达到降低超大型数据库的设计和改进的难度。
(2)OODB中的对象标识允许对象之间的引用和共享,这样既可以自然地表示复杂对象,又可以表示复杂对象之间的联系。
(3)由于类(在OODB中类是把有相同属性和方法的对象组织在一起的一种结构)和抽象数据类型之间的相似性,OODB为类型系统的扩展提供了方便的支持手段。
但OODB仍然存在许多不足之处,它缺乏通用数据库的特征,例如大多数OODB缺乏查询设施,或者由于其查询语言不能与ANSI SQL语言兼容;对象间引用仅仅提供了对象间的二元关系,对处理多对多联系比较困难;对大颗粒概念,没有定义视图的工具等等。
由于以上原因,对新一代工程数据库DBMS的研制仍然受到极大的关注。
四.新一代工程数据库DBMS的研制
从九十年代开始,西北工业大学数据库课题组承担了国防〝八五〞预研课题〝工程数据库管理技术〞的研究任务,我们经过较长时间的研究,讨论了关系模型的各种扩展和面向对象模型的优缺点,采取了〝以满足工程应用的需求为目标,在技术上博采众长,有所创新〞的原则,最后形成了一种具有面向对象风格的扩展非一范式数据模型,取名为〝Angel数据模型〞。1992年9月方案通过了有关部委的专家评审,该系统已于1995年通过了部级鉴定。系统的主要工作包含以下内容:
1. 针对面向对象模型和关系数据模型的不足,设计一种新的数据模型,称为Angel数据模型,并形式地 描述其语义。
2. 针对Angel数据模型,建立相应的代数系统。其主要特点是:
(1) 从Angel的继承语义出发,系统地讨论查询结果在继承层次中的定位问题,验证其合理性。
(2) 把类和关系的操作统一在同一代数系统下。
(3) 模型和代数操作紧密结合,使其具有很大的实用价值。该代数系统为Angel提供了封闭的查询模型,为建立视图机制查询优化提供理论基础。
3. 对Angel数据模型建立适用于复杂对象推理的逻辑语言— A-logic的语法、语义作了全面的讨论并给出严格的描述,允许用灵活多样的方式进行数据库建模。
4. 为Angel系统设计了具有SQL风格的描述性数据库语言。对继承层次和构造层次都
能进行有效的查询和操纵,也能进行部份传递闭包运算的处理。
5. 设计了灵活的规则管理子系统,以增强Angel系统的主动反应能力。
目前,Angel系统只是一个原型系统,没有经过大量的实际应用,必然存在很多需要改进的地方。