哎呀,怎么没人来看,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的检索是基于节点的检索[2][83][84],存放大量甚至海量数据的XML文件造成检索速度极低;第三,解析手段有缺陷,XML具有两种解析机制,SAX方式是基于文件的解析,速度慢,DOM方式是基于内存的方式,资源消耗极大[20][81];第四,修改效率低,目前XML的修改是基于节点的[7];最后,XML的安全性及并发操作机制也是需要解决的问题之一。 
总之,XML在数据应用方面上具有易表义、跨平台等优势,但客观上需要一种有效的存贮、检索和修改等方面的管理机制。 
从上述分析不难得出, 在数据管理方面数据库尤其是关系数据库具有其它方式(包括普通文件、XML文件、对象数据库)无法比拟的优越特性;另外,在数据应用方面,尤其是在Web信息共享及异构应用数据交换方面,XML又具有其它技术无法比拟的优点。 
到此,上述问题的答案便很明了。 
问题一:人们在现实中还是习惯用关系数据库管理数据,绝非仅仅习惯使然,更深层的原因是XML缺乏象关系数据库这样的有效的数据管理手段,造成数据存贮管理困难、检索修改效率极低,这同时也是制约XML技术普及的因素之一,XML尚不能代替关系数据库。 
问题二:通过XML技术降低数据库的使用条件、可以使其中丰富的数据资源得到利用。并且XML在异构数据交换方面具有很大优势。 
问题三:XML和关系数据库分别在数据应用和数据管理方面各有优势(如上所述),应是一种相辅相成、扬长避短的关系。 
于是从技术角度讲,“以 关系数据为存贮手段,以 XML为交换载体”的数据管理模式就成为一种趋势。XML存放在关系数据库中, XML数据以虚拟XML文档的形式存在,从用户的角度,XML文档和数据库之间的区别是不透明的。数据库中存在的产品数据虚拟的XML文档,对用户而言,重要的不是数据存在何处,而是数据的逻辑结构合理性和操作界面的方便性。 

解决方案 »

  1.   

    如果xml用得太多会慢死了,有些必要的可能稍微用一下!!!
      

  2.   

    如果用xml来存储数据,那就两个字:麻烦
    如果象我们这样用,那就爽了:www.htok.net
      

  3.   

    绝对的比较少。XML作为一种规范协议,也并不是万能,它的好处是统一在任何平台,任何语言中都能用,象http协议一样。
      

  4.   

    本人看了很多都是说xml的好处,要真到用时缺点全暴露出来了要是小型的系统用xml还可以,像论坛什么的还不成什么问题,系统一大起来,数据错综复杂,用xml比较烦有没有人碰到我上面说的那些问题呀??怎么解决的
      

  5.   

    在提供一些接口的地方用xml,或者是一些树状结构用吧完全用它来存储数据,那么光维护就麻烦了
      

  6.   

    哈哈,不管xml多么麻烦,总有些配置文件喜欢用xml写,已经成为一种该死的习惯了