### XML“走进”数据库

可扩展标记语言(XML，Extensible Markup Language)目前正在成为各种数据特别是文档的首选格式。由于它具有标记不同字段(field)的能力，使得搜索变得更简单和动态化，从而把企业准备扔进废纸篓的文件变成了进行数据挖掘的宝藏。XML 把内容从演示格式中解放出来，使材料可以多次重复使用。这样一来，同样的内容可以分别用于新闻发布、白皮书、宣传册、演示和 Web 页面。对那些需要把不兼容的系统融合在一起的企业，XML 可以充当公共传输工具，以中性格式进行数据传输。此外，XML 还可以处理各种数据，包括文本、图像和声音，并且可以由用户进行扩展以处理任何特殊类型的数据。
XML 的特性使之成为在线和离线数据的共同语言。
现在的问题是，怎样管理 XML 标记的数据。一种很有希望的方法是用数据库对 XML 进行存储、检索和操作，即把 XML 标记的数据收入一个框架中，在一种更容易管理、更系统化、更为人们所熟悉的环境中完成搜索、分析、更新和成果输出工作。
这里有两种不同的观点：纯粹派认为，只有以 XML 原始的格式存储 XML 的数据库才能称为 XML 数据库；另一些人认为，只要能存入和检出 XML，且它本身又是一个数据库，那它就是一个 XML 数据库，而不必考虑数据是怎样存入的。我们暂且把两派之争放在一边，凡内部不是以 XML 格式存储的 XML 数据库，叫做“XML- enabled 数据库”；如果内部以 XML 格式存储数据，就称为“native-XML 数据库”。
使用现有的数据库类型和产品而不是以原始格式来存储 XML，是出自以下几种考虑：首先，普通的关系数据库和面向对象数据库已尽人皆知，而 native-XML 数据库是新的；其次，人们熟知现有的关系数据库和面向对象数据库，也了解它们的行为和性能，因此，他们不愿意转向 native-XML 数据库，因为其性能，特别是可伸缩性尚未经过检验；最后，在企业看来，选择关系数据库和面向对象数据库是比较安全的，不到迫不得已用不着冒险使用新的 native-XML 数据库。
所幸的是，您用不着去冒险。现在已经有一些能够很好地处理 XML 的 XML-enabled 数据库，并且是由久经考验的关系数据库和面向对象数据库担此重任。这些数据库在收到 XML 后，将其分解为字段并按通常的方式存储它们，当检索 XML 时，这些字段再被拼接成原状。
设在麻省 Reading 的 Xyvision 企业解决方案公司研制的 Content@XML 是一套内容管理系统，它可以在任何一种流行的关系数据库中存储 XML 文件。其好处是可以开展基于内容的协同工作，进行多通道内容输出。一家技术出版商选用了 Content@XML，他们说 XML 将他们 2 周的工作压缩到几分钟，“该系统接受的是 XML 材料，给出的却是你想要的任何格式的结果。”
Lotus 公司的 Domino 数据库也可以处理 XML，而且其 XML Toolkit 甚至可以让您像在 native-XML 数据库中一样创建和处理内容。
在关系数据库中处理 XML 数据时，可用第三方中间件进行转换，其中有一种产品称为 XML-DBMS,这是一种基于 Java Database Connectivity(JDBC) 的工具，可以在 XML 文档和数据库之间传输数据。
不过，利用关系数据库和面向对象数据库存储 XML 也遭到一些批评。例如，有人认为，XML 最具吸引力的特性之一是其分层结构，而关系数据库却将 XML 映射成关系表，从而将 XML 结构变成了平面的行和列。另外，遇到大型或复杂文档时，在 XML 与数据库之间进行来回转换要耗费相当多的处理时间，从而降低了 Web 页面的生成速度。
目前，native-XML 数据库已经开始出现，尽管人们还不能完全信任它，但的确有一些 native-XML 数据库开始在实际应用中受到得青睐。另外，主流的数据库厂商也可能在适当的时机推出自己的 native-XML 数据库产品。
第一个，可能也是最有名的商用 native-XML 数据库是位于美国加州的 Software AG 公司开发的 Tamino。除了可以存储和访问 XML 外，Tamino 还具备多项功能，包括 Open Database Connectivity、符合 Unicode 要求、HTTP 通信及处理非 XML 数据的能力。Gartner Group 的一份报告指出：“Tamino 特别适用于需要从多种不同平台和格式整合信息并向业务伙伴或客户散发这些信息的机构。”
据介绍，Tamino 拥有直接 XML 检索和特殊检索的能力，其查询语言强大而简短，可进入任意深度，使 SQL 相形见绌。
其他 native-XML 数据库包括 dbXML、eXcelon 和 XHive/DB，分别由美国的 dbXML Group LLC 公司、 eXcelon 公司和荷兰的 The Connection Factory 公司研制。奇怪的是，对 native-XML 数据库的主要批评之一是性能问题。有人预见到，当所搜寻的信息位于大文档的未尾时，由于缺乏其他机制，native-XML 数据库只能艰苦跋涉到最后，而关系数据库和面向对象数据库则可以将文档分成小块同时进行搜索，速度当然要快得多。
当然，上述困难并非无法克服，只要在存储时给各文档分别加上索引就行了。Tamino 就具有这种索引能力，从而弥补了大型文档搜索的不足，另外，native-XML 存储消除了不必要的转换操作。目前，Tamina 有 Windows NT、Windows 2000、Solaris 和 SCO Unix 等版本，将来还要出 Linux 和一些大型机版本。
目前，许多主流的数据库厂商都在把 XML 支持结合到其产品中，或者提供可在其数据库中使用 XML 的工具。IBM 提供了 XML Extender for DB2，以允许用户在 DB2 中存储 XML 文档，并提供一些新功能协助用户处理 XML 文档；Microsoft 的 SQL Server 6.5 和 7.0 也进行了 XML 扩充，据悉 SQL 将来要加入 XML 输出选项，用以向其他系统传送信息。Oracle 也拥有功能强大的 XML 索引引擎。
有专家预计，这些数据库厂商不久将推出自己的 native- XML 数据库，以满足基于 Web 的电子商务对 XML 数据处理的需求。
总之，XML 的需求正在扩大，新的应用包括采用 XML 标签的 Internet 搜索引擎、必须快速输出结果的电子商务系统、带 XML 标签的电子数据交换、数据重复使用和内容个性化。作为处理上述应用的一环，XML 数据库的需求也将快速增长。