[转]XML与关系数据

     XML作为一种可扩展标记语言,其自描述性使得XML本身非常适用于异构应用间的数据交换,而且这种交换不以预先规定的数据结构定义为前提因此具备很强的开放性和广阔的应用前景,而现有的几乎所有大型应用系统都是和数据库相关联的,所以以XML中性载体进行数据交换和信息共享必然要和数据库相联系,同时,基于XML的数据交换,实现数据库的XML数据双向存取,才能将XML数据同具体应用程序集成,进而使之同现有的业务规则相结合,最后真正实现基于XML的分布式数据交换与信息共享。所以,XML技术和数据库技术的结合就成为必然的趋势,在XML文档和数据库之间实现数据的双向传输就成为XML技术应用研究的热点之一。     
     从技术角度讲,XML和关系数据同属于数据管理的手段。狭义的XML仅仅指一种语言和采用该语言所描述的XML文档,广义的XML包括XML语言、XML文档以及所有与XML相关的工具和技术,例如,XML解析器及解析技术,XML转换技术(XSL、XSML)等。 广义的XML与DBMS大致具有相似的作用  XML与DBMS相同之处是:
      ---- 提供数据存储,关系数据以数据库系统为手段、XML以文件系统为手段。
      ---- 提供对数据的直接存取访问,两者都不需要用户关心数据的物理结构。
      ---- 提供数据的模式描述:XML采用DTD(Document Type Definition,文档类型定义)或XML Schema(XML规范)来描述数据的逻辑结构;关系数据通过关系模式来描述数据的逻辑结构。
      ---- 提供应用逻辑接口:XML采用SAX(Simple API for XML)和DOM(Document Object Model)定义应用编程接口,使应用程序能够访问和更新XML文档的样式、结构和内容;关系数据采用ODBC、JDBC、OLEDB等。     
     作为两种相近的技术,人们不禁要问:    
      ---- 问题一:为什么不用XML替代关系数据,直接将数据存放在可实现Web环境下信息共享与数据交换的XML文件中,以利于直接交换?     
     ---- 问题二:为什么有了关系数据,还需要采用XML技术?    
     ---- 问题三:如果互相不能替代,XML和关系数据库在现实应用中应该是什么样的关系?     
      带着以上问题,对这两种技术进行分析比较。    
      XML比关系数据的优点:
      ---- 跨平台。
      ---- 直接动态支持Web操作。
      ---- XML在数据描述方面灵活、可扩展、自描述。     
      XML比数据库的不足:
     ---- 数据存取的高效性,索引功能可以极大的提高数据的查询速度。
     ---- 并发访问机制。
     ---- 强大的安全机制。    
    相对XML关系数据库的优势在于:
     ---- 技术成熟、应用广泛。
     ---- 数据管理能力强(包括存贮、检索、修改等)。
     ---- 数据安全程度高。
     ---- 稳定可靠的并发访问机制等。
    另一方面, 随着Web技术的不断发展,信息共享和数据交换的范围不断扩大,传统的关系数据库也面临着挑战。
      ---- 第一,数据库技术的应用是建立在一定的数据库管理系统基础上的,各数据库管理系统之间的异构性及其所依赖操作系统的异构性,严重限制了信息共享和数据交换范围。
      ---- 第二,数据库技术的语义描述能力差,大多通过技术文档表示,很难实现数据语义的持久性和传递性,而数据交换和信息共享都是基于语义进行的,这样在异构应用数据交换时,不利于计算机基于语义自动进行正确数据的检索与应用。
     ---- 第三,数据库属于高端应用,需要昂贵的价格和运行环境等服务。     
     总之,数据库在数据管理方面具有管理方便、存贮容量小、检索速度快、修改效率高、安全性好等优点,但客观上需要用一种应用方式将其丰富的数据有效的发布出来,以消除平台差异、增强语义描述功能、降低环境要求。    
    相对于数据库技术,XML技术在数据应用方面具有很多优点。  
     ---- 第一,跨平台,XML文件为纯文本文件,不受操作系统、软件平台的限制。
     ---- 第二,易表义,XML具有基于Schema自描述语义的功能,容易描述数据的语义,这种描述能为计算机理解和自动处理。
     ---- 第三,XML不仅可以描述结构化数据,更可以有效描述半结构化、甚至非结构化数据。
     另一方面,XML技术在数据管理方面存在缺点 
     ---- 首先,XML技术采用的是基于文件的管理机制、文件管理存在着容量大、管理困难的缺点。
     ---- 第二,目前XML的检索是基于节点的检索,存放大量甚至海量数据的XML文件造成检索速度极低。
     ---- 第三,解析手段有缺陷,XML具有两种解析机制,SAX方式是基于文件的解析,速度慢,DOM方式是基于内存的方式,资源消耗极大
     ---- 第四,修改效率低,目前XML的修改是基于节点的。
     ---- 最后,XML的安全性及并发操作机制也是需要解决的问题之一。     
     总之,XML在数据应用方面上具有易表义、跨平台等优势,但客观上需要一种有效的存贮、检索和修改等方面的管理机制。    
     从上述分析不难得出,在数据管理方面数据库尤其是关系数据库具有其它方式(包括普通文件、XML文件、对象数据库)无法比拟的优越特性;另外,在数据应用方面,尤其是在Web信息共享及异构应用数据交换方面,XML又具有其它技术无法比拟的优点。    
      到此,上述问题的答案便很明了。    
      ---- 问题一:人们在现实中还是习惯用关系数据库管理数据,绝非仅仅习惯使然,更深层的原因是XML缺乏象关系数据库这样的有效的数据管理手段,造成数据存贮管理困难、检索修改效率极低,这同时也是制约XML技术普及的因素之一,XML尚不能代替关系数据库。    
     ---- 问题二:通过XML技术降低数据库的使用条件、可以使其中丰富的数据资源得到利用。并且XML在异构数据交换方面具有很大优势。    
     ---- 问题三:XML和关系数据库分别在数据应用和数据管理方面各有优势(如上所述),应是一种相辅相成、扬长避短的关系。     
     于是从技术角度讲,“以关系数据为存贮手段,以XML为交换载体”的数据管理模式就成为一种趋势。XML存放在关系数据库中,XML数据以虚拟XML文档的形式存在,从用户的角度,XML文档和数据库之间的区别是不透明的。数据库中存在的产品数据虚拟的XML文档,对用户而言,重要的不是数据存在何处,而是数据的逻辑结构合理性和操作界面的方便性。    

你可能感兴趣的:(数据结构,xml,应用服务器,Web,虚拟机)