<?xml version="1.0" encoding="gb2312"?>

<!-- RSS generated by oioj.net on 4/16/2004 ; 感谢LeXRus提供 RSS 2.0 文档; 此文件可自由使用，但请保留此行信息 --> 
<!-- Source download URL: http://blogger.org.cn/blog/rss2.asp       -->
<rss version="2.0">

<channel>
<title>kevinwu2901的博客</title>
<link>http://blogger.org.cn/blog/blog.asp?name=kevinwu2901</link>
<description>kevinwu2901的博客</description>
<copyright>blogger.org.cn</copyright>
<generator>W3CHINA Blog</generator>
<webMaster>webmaster@blogger.org.cn</webMaster>
<item>
<title><![CDATA[<收藏>XML与数据库]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=kevinwu2901&amp;id=2649</link>
<author>kevinwu2901</author>
<pubDate>2005/2/1 17:32:34</pubDate>
<description><![CDATA[<P>&lt;收藏&gt;</P>
<P>XML与数据库 </P>
<P></P>
<P>编者按:&nbsp;数据库管理系统是一种技术十分成熟、应用非常广泛的系统，而XML是一种发展势头十分强劲的新的数据管理手段。随着XML的逐步成熟，是否有一天将用XML替代数据库，直接将数据存放在可实现Web环境下信息共享与数据交换的XML文件中，以利于直接交换？有了数据库技术，还需要XML吗？本文对此进行了探讨。&nbsp;</P>
<P>诞生于二十世纪60年代的数据库技术及其应用系统，在经历了层次数据库、网状数据库到关系数据库、面向对象数据库的发展后，已成为计算机信息系统中的重要基础和支柱。但是，上个世纪90年代以来，Internet的飞速发展使人类社会的信息量迅速膨胀，对信息管理和信息交换的需求更是空前强烈和迫切，使得已在传统的商业处理领域内趋于成熟的数据库技术，面临着许多新的问题和挑战。与此同时，XML技术诞生并迅速成长起来，在诸多领域得到广泛的支持，有着广阔的应用前景，在一定程度上形成了对数据库技术的挑战，目前有不少将XML用于数据库应用的研究正在进行中。&nbsp;</P>
<P>数据库技术面临的挑战</P>
<P>传统数据库的应用领域主要是针对商业与事务处理。Internet时代到来以后，Web改变了人们习惯的处理方式，也给数据库技术提出了一个必须面对的重要问题：即如何有效地存储和管理Web上以指数增长着的数据（文档），使它们既能被高效地操作和维护，又能在Web这个平台上方便地表示和交换。&nbsp;</P>
<P>当前，典型的问题有：&nbsp;</P>
<P>1.将现有数据库中数据转换成适于Web的形式，需要相当的工作量。时至今日，虽然从CGI、Server&nbsp;API、Scripts到Java等等出现了许多解决方法，并且已在实际应用中取得了很好的效果，但仍有问题存在。&nbsp;</P>
<P>2.传统数据库中的数据以二进制码的形式存储，并且不同的数据库管理系统有各自的专有格式，这既带来了表示上的困难，更是进行交换的一大障碍。而随着网络的发展，数据交换的能力已成为新的应用系统的一个至关重要的指标。&nbsp;</P>
<P>当然，我们也已经看到，数据库技术正在积极地吸收和利用Web方面的新技术。当前主流的数据库产品都宣布了对XML的支持。但是，数据库管理系统（DBMS）与XML的这种捆绑是否能够充分发挥效率，还需要在实际中检验。&nbsp;</P>
<P>XML与数据库技术的比较</P>
<P>从技术角度讲，XML和关系数据同属于数据管理的手段。狭义的XML仅仅指一种语言和采用该语言所描述的XML文档，广义的XML包括XML语言、XML文档以及所有与XML相关的工具和技术，例如，XML解析器及解析技术，XML转换技术（XSL、XSML）等。广义的XML与DBMS大致具有相似的作用，XML与DBMS相同之处在于：&nbsp;</P>
<P>1.&nbsp;提供数据存储。关系数据以数据库系统为手段，XML以文件系统为手段。&nbsp;</P>
<P>2.&nbsp;提供对数据的直接存取访问。两者都不需要用户关心数据的物理结构。&nbsp;</P>
<P>3.提供数据的模式描述。XML采用DTD（Document&nbsp;Type&nbsp;Definition，文档类型定义）或XML&nbsp;Schema（XML规范）来描述数据的逻辑结构;&nbsp;关系数据通过关系模式来描述数据的逻辑结构。&nbsp;</P>
<P>4.&nbsp;提供应用逻辑接口。XML采用SAX（Simple&nbsp;API&nbsp;for&nbsp;XML）和DOM（Document&nbsp;Object&nbsp;Model）定义应用编程接口，使应用程序能够访问和更新XML文档的样式、结构和内容；关系数据采用ODBC、JDBC、OLE&nbsp;DB等。&nbsp;</P>
<P>作为两种相近的技术，两者也存在很大差别：&nbsp;</P>
<P>相对XML，关系数据库的优势在于：技术成熟、应用广泛；数据管理能力强（包括存储、检索、修改等）；数据安全程度高；稳定可靠的并发访问机制等。另一方面，随着Web技术的不断发展，信息共享和数据交换的范围不断扩大，传统的关系数据库也面临着挑战。第一，数据库技术的应用是建立在数据库管理系统基础上的，各数据库管理系统之间的异构性及其所依赖操作系统的异构性，严重限制了信息共享和数据交换范围。第二，数据库技术的语义描述能力差，大多通过技术文档表示，很难实现数据语义的持久性和传递性，而数据交换和信息共享都是基于语义进行的，这样在异构应用数据交换时，不利于计算机基于语义自动进行正确数据的检索与应用。第三，数据库属于高端应用，需要昂贵的价格和运行环境等。&nbsp;</P>
<P>归结起来，数据库在数据管理方面具有管理方便、存贮占用空间小、检索速度快、修改效率高、安全性好等优点，但客观上需要用一种应用方式将其丰富的数据有效地发布出来，以消除平台差异、增强语义描述功能、降低环境要求。&nbsp;</P>
<P>相对于数据库技术，XML技术在数据应用方面具有很多优点。第一，跨平台。XML文件为纯文本文件，不受操作系统、软件平台的限制;&nbsp;第二，易表义。XML具有基于Schema自描述语义的功能，容易描述数据的语义，这种描述能为计算机理解和自动处理。第三，XML不仅可以描述结构化数据，还可以有效描述半结构化，甚至非结构化数据。但另一方面，XML技术在数据管理方面存在明显缺点。首先，XML技术采用的是基于文件的管理机制，文件管理存在着容量大、管理困难的缺点；第二，目前XML的检索是基于节点的检索，存放大量甚至海量数据的XML文件造成检索速度极低；第三，解析手段有缺陷。XML具有两种解析机制，SAX方式是基于文件的解析，速度慢，DOM方式是基于内存的方式，资源消耗极大；第四，修改效率低，目前XML的修改是基于节点的；最后，XML的安全性及并发操作机制也是需要解决的问题之一。&nbsp;</P>
<P>总体上看，XML在数据应用方面上具有易表义、跨平台等优势，但客观上需要一种有效的存储、检索和修改等方面的管理机制。&nbsp;</P>
<P>发展趋势</P>
<P>通过上述分析比较不难得出，&nbsp;在数据管理方面数据库尤其是关系数据库具有其他方式（包括普通文件、XML文件、对象数据库）无法比拟的优越特性。而在应用方面，尤其是在Web信息共享及异构应用数据交换方面，XML又具有其他技术无法比拟的优点。通过比较，有这样几点结论：&nbsp;</P>
<P>1．人们在现实中还是习惯用关系数据库管理数据，绝非仅仅习惯使然，更深层的原因是XML缺乏像关系数据库这样有效的数据管理手段，造成数据存贮管理困难、检索修改效率极低，这同时也是制约XML技术普及的因素之一，XML尚不能代替关系数据库。&nbsp;</P>
<P>2．通过XML技术降低数据库的使用条件、可以使其中丰富的数据资源得到利用，并且XML在异构数据交换方面具有很大优势。&nbsp;</P>
<P>3．XML和关系数据库在数据应用和数据管理方面各有优势，应是一种相辅相成、扬长避短的关系。&nbsp;</P>
<P>从技术角度讲，“以数据库为存贮手段，以&nbsp;XML为交换载体”的数据管理模式是一种趋势。XML存放在关系数据库中，&nbsp;XML数据以虚拟XML文档的形式存在。从用户的角度，XML文档和数据库之间的区别是不透明的。数据库中存在的产品数据虚拟的XML文档，对用户而言，重要的不是数据存在何处，而是数据的逻辑结构合理性和操作界面的方便性。&nbsp;</P>
<P>目前，虽然处理和操作XML文档的开销要显著地大于关系数据库系统中类似的表。其中，对XML文档进行装载和转储的开销占了很大的比例。XML文档的长度对其处理开销有非常明显的影响。但无论如何，XML正在迅速地发展和不断地完善中，前景非常光明。例如，正在开发和标准化之中的XML查询语言（XQL）即是针对XML在数据库方面的应用。同时，在这个领域内，还有很多问题有待我们去研究和解决。</P>]]></description>
</item>
</channel>
</rss>