面向对象数据库系统及其在Web中的应用

关 键 词: 面向对象数据库系统;面向对象软件开发;XML;Web;软件工程;软件复用技术
        1   数据库的新技术和新问题

        为了更好地了解新事物,首先应该了解它的发展历史。数据库对于计算机界人士来讲应该是个老话题,但数据库技术所涉及、处理的一些问题却是计算机的核心、根本问题。因为计算机最终是信息的处理,数据库就是用来管理具有大量的、持久的和共享的特性的数据。随着计算机科学的不断发展,数据管理技术也在不断地改进

        数据库系统的研究在查询优化、对象-关系数据库系统、主动数据库、数据复制和数据库并行性等领域取得了重大突破。而在数据库未来的研究中,针对网络日趋普及的状况,数据库界应当扩充数据库管理的概念,使之包容Web和其它联机数据存储的内容,真正实现语义Web。并且在数据库系统中做到过程和数据的统一,实现数据管理的智能化,支持软件的复用技术,进一步发挥数据库技术的重要作用。

        2   面向对象的数据库设计

        面向对象的数据库设计吸收了语义数据模型和知识表示模型的基本概念,借鉴了面向对象程序设计和抽象数据类的思想,在面向对象技术盛行的今天,具有非常实用的价值。

        2.1   面向对象的数据库设计原理

        2.1.1   对象、类、类的继承

        可以结合关系数据库设计和面向对象技术来理解面向对象的数据库设计原理。在面向对象数据模型中,分析问题的最初着眼点是对象,现实世界中的实体都可以模拟成对象。对象具有两个性质:

        属性:描述对象的状态、特性等;

        方法:描述对象的行为特性,对对象进行的各种数据库操作。在类中记录的是方法的调用接口,方法实现的过程是独立的,这是对象的封装性。在数据库设计中将遇到很多对象,而每个对象都有相应的属性和方法,所以可以把对象类似地看作关系数据库中具体的每一条记录。

        对大量的对象可以归并成类,对象是类的实例。即同一类的对象具有共同的属性和方法,这样就避免了大量说明信息的重复。类可以类似地认为是关系数据库中的表,对象与类之间的关系类似于记录和表的关系。但两者之间有区别:关系数据库中不允许有两条属性全部相同的记录,而在对象的实例化过程中,可以产生两个属性、方法完全相等的对象,但这两个对象并不同一,因为在O-O数据模型中,每个对象都有一个唯一的标识符OID,对象的OID是区别对象的唯一标志。

        子类和其超类之间具有继承性,子类可以继承所有超类中的属性和方法,这里面就存在多继承的问题。继承性是OODBMS的一个突出特点,它支持复用技术。

        2.1.2   对象永久化

        OODBMS产生的一个目的是提供永久的对象存储。在存储机制中引入了指针的概念,指针是内存地址的某种形式,这样的地址只在程序执行期间是有效的,每次启动之后,对象的地址将是不同的。当存储一个对象时,不管内存指针是否是在内存中的,需要把它们转变成一个永久的唯一标识,才能在该对象的生命周期中都有效。一个对象既是数据又是方法,所以OODBMS应该同时存储对象程序和数据。因为各个对象的数据值不同,而给定类的每个对象具有相同的方法,因此对该类的每个对象实例,我们只需要存储这些方法一次,在每个对象具体调用某个方法时,通过指针指向方法所在的位置。

        2.2   面向对象数据库

        市场上有许多面向对象的数据库系统可供选择,例如ObjectStore、Versant Developer Suite、Poet FastObjects和InterSystems公司的Caché等。由于还没有明确的标准评价OODBMS,所以对象数据库管理组织(Object Database Management Group,ODMG)的标准应当是当前评价OODBMS最好的准绳。大部分的OODBMS具有如下特点:遵从ODMG标准;具有一定的兼容性,在所支持的Unix或Windows操作系统的某些版本中是兼容的;提供数据库浏览器、客户端缓冲、保证不同级别的数据库安全以及对XML的支持。应用时可以使用标准的SQL和基于ODBC的方式访问OODB。

        3   面向对象的软件开发技术

        O-ODBMS借鉴了O-O软件开发技术中的基本思想,比如对象、类、类的继承、封装等概念。所以两者在许多方面都是互通的。

        3.1   需求分析阶段:

        我们知道,软件开发分析阶段的最终目的是建立需求模型,一般是绘制出类框图。在类框图中提供这样一些信息:问题处理所涉及的各种类、及其属性和相应的方法、类之间的关系(继承、关联等)。所以,在面向对象的分析阶段,设计者就能通过类框图确定数据库的结构。因为目前国内还没有广泛使用的OODBMS,所以我们可以使用关系数据库设计方法(如图一)来模拟表示OODBMS。

        OID(对象标识符) 属性1 属性2 方法1 方法2

        001 attribute0011 attribute0012 minterface0011 minterface0012

        002 attribute0021 attribute0022 minterface0021 minterface0022

        ---------- ---------- ---------- ---------- ----------

        00n attribute00n1 attribute00n2 minterface00n1 minterface00n2

        (图 一 )

        图中第一行对应类的属性和方法,下面是具体的每个对象,当然要有OID来标识不同的对象。Minterface*表示方法调用的接口,真正的方法过程体独立于对象之外。

        3.2   实现阶段:

        O-O数据库设计应该是面向对象软件开发设计步骤中的核心。当然这一步工作与分析过程是紧密结合的。分析人员可以在进行了需求分析之后比较快速地生成一个OODBMS,另外面向对象的程序设计工具均提供了与数据库相连的控件,编程人员可以使用SQL(SQL3)访问数据库,对数据库内容进行定义、查询等操作。SQL3是对标准SQL的扩展,包括对面向对象数据库管理的支持。它的出现超越了数据库管理的惯例,在SQL3中结合了三组新的概念和方法:对抽象数据类型的支持,对表定义的增强,以及使SQL3提高竞争力的对语言构造的扩展。

        4   数据库设计与Web的结合

        面向对象数据库设计较之关系数据库在关于可描述数据的形式上有较大的突破。后者因为必须满足第一范式的要求,所表示的数据必须是原子形的(意义上不能再分),而Web中提供的信息资源能够表示形式各异的数据(文档、代码、URL地址等),O-ODBMS恰恰符合这种特点,所以说O-ODBMS应当是Web中数据库设计比较合适的模式。

        4.1   XML(扩展性标记语言)的特点

        XML的建立应该是面向对象数据库设计的应用。它突破了传统数据库设计的思路,不单纯支持对数据的管理,还支持对各种文件形式的资源和代码的管理。是当今网络时代为了处理各种形式的数据而应运产生的。

        XML以文档形式记录各种信息(包括元信息、结构化数据、半结构化数据),使用简单的标记描述封装的信息,它的数据建模的依据是面向对象数据库的思想,每个具体的对象也可以有相应的属性和方法。XML处理器可以将XML文档转换成用户需求的中间数据模式(如关系数据模式),供应用程序操作。它使得我们可以更加快速的在网上搜索所需要的资源。

        XML同时采用智能—数据(过程—数据)的思想,是数据库设计新技术的体现。它对Web技术作出的突出贡献除了描述信息的形式多样以外,还提高了Web中的查询级别,使得从传统数据库模式下的基于关键字的严格查询技术提高到一种语义上的灵活的查询技术。缺点是还没有建立成熟的与用户交互的接口,缺乏与SQL语句类似的成熟的数据库操作语言。如果这个问题真正解决了,对建立真正的语义Web是非常重要的。

        4.2   XML下Web的体系结构:(暂略)      

        4.2.1   有利于文档的交换:

        基于上图的Web的体系结构,客户端—浏览器或程序—将一个XML文档作为请求发送给服务器,那么在服务器之间就存在数据的交换,XML正是面向对象型数据库与关系型数据库以及其它模型数据库之间转换的桥梁。而因为XML具有:平台独立性、文件的自描述性、文件能够显示层次化信息等优点,所以XML文件较之普通的文件或数据库等传输格式具有明显的优势。

        4.2.2   DOM和数据库:

        XML为在不同的数据库之间传递信息提供了理想的机制。因为各个服务器所描述的数据在格式、类型等方面均有差异,而服务器相互之间要传递数据,首先就要进行不同数据之间的转换(翻译过程)。利用DOM(Document Object Model)文档对象模型能够简化各种数据库之间信息传递的方式,它以文档形式存储信息,将文档中的每个项目看作节点(元素、属性、注释、处理指令、甚至构成属性的文本),从而减少为传递的各种类型的数据进行翻译的过程。

        当然,关系数据库系统是传统的比较成熟的数据库系统,现在在线的网上数据有一大部分是关系数据库支持的,而面向对象数据库技术正日趋发展,与关系数据库相比,在Web的应用中将更具有优势。

        5   面向对象数据库设计与软件复用技术

        从软件工程的角度来衡量一个系统或一种模式的性能是否优越,重要的因素是考虑它能否较好的支持软件复用技术。软件复用技术对于系统的可用性起到重要的作用。

        我们知道OODBMS的原理性思想是从面向对象的软件开发技术中借鉴而来的。而且大家都清楚面向对象的软件开发技术从分析到设计到实现都具备支持软件复用的技术。比如类的三个特性:封装性、继承性、多态性,决定了代码的重用性;分析阶段模型的重用技术等。面向对象技术支持软件的产业化。原因是它提出了组件、构件、中间件的概念。组件可以解决软件系统的可操作性、可扩展性、语言独立性和跨平台的操作能力等问题,软件组件可以看作是一种软件集成电路元件,是可方便地插入到语言、工具、操作系统、网络系统中的二进制代码和数据。这也是面向对象技术之所以流行的一个重要原因。

         以上这些支持软件复用的技术都可以应用到OODBMS中。因为OODB中同样是以对象为操作的核心,对象具有其属性和方法,类的三个特性及代码重用等技术均能够在OODB中体现出来。所以说OODBMS同样是支持软件复用技术的,尤其是当它作用在面向对象软件开发的分析与设计阶段,更能够体现这个特性。

        6   小结

        OODBMS具有其突出的特点,当系统所涉及的数据结构复杂,数据类型多样化,操作流程与对象结合密切,但操作流程比较固定的时候,我们可以采用面向对象数据库系统来管理数据;当然在Web中对各种资源信息进行管理的较好的数据库模式应该是面向对象的;同时它也为解决数据库新技术和新问题提供了思想源泉。但OODBMS有其缺点:首先要求采用面向对象程序设计;其次是大部分企业仍然采用传统数据格式,要进行转换将花费较大的人力和物力;现在的OODBMS没有提供有效的查询和报表工具;最后是在并发控制和事务管理能力上相对传统数据库产品而言是不成熟的。所以要根据具体要解决的问题来选择适当的数据库管理模式。

        

        References: 

        [1]   《数据库处理——基础、设计与实现》 David M。Kroenke著  电子工业出版社

        [2]   《XML高级编程》 Didier Martin著       机械工业出版社

        [3]   《数据库系统原理》 王能斌 著           电子工业出版社

        [4]   《软件工程》 杨文龙 等著     电子工业出版社


        OODBMS and the applications on the Web á

        NAME LIU Xiao-lu 

        (Dept. of Computer Engineering, Nanjing Institute of Technology, Nanjing  210013 , China)

        Abstract: *The paper analyzes the principle and the working mechanism of OODBMS,summarize its characteristics;talks about the applications of XML which bases on the mode of O-O;analyzes the relationship of OODBMS and O-O software development,and the sustentation of OODBMS to the reuse technology.*

        Key words: *OODBMS;O-O software development;XML;Web;software engineering;reuse technology*

你可能感兴趣的:(热门软件技术)