xml数据库中几个容易混淆的概念

  • 作者:未知 来源:未知 添加时间:2006年7月3日 字体:

  • 当开发人员谈及xml数据库时,他们往往指的是两个概念:存储xml数据的数据库,利用xml数据库的dbms。绝大多数主要的dbms产品允许你无需改变现有的数据库就可以集成xml数据到程序中。现在让我们讨论一下xml数据库并探讨其特性。

    原始的xml数据库

      一个原始的xml数据库(nxd)可以是很简单,也可以是很复杂。我这样定义一个数据库的概念:永久稳定数据的集合。在这样的定义下,一个nxd能在逻辑上存储一个xml文档。当xml:db initiative对一个nxd还有更多的要求时,我想以上的定义也可以满足。

      以下的代码行可以用作于一个nxd:

      〈@xml version=”1.0”@〉
      〈diet〉
      〈meal mealname=”breakfast”〉
      〈item itemname=“toast” unit=”slice” quantity=“2” /〉
      〈item itemname=“bacon” unit=”strip” quantity=“2” /〉
      〈/meal〉
      〈/diet〉

      很显然,数据的集合以xml格式存储。如果它被存放在一个flat文件,它也会满足我们对nxd的定义:永久稳定数据的集合。

      一个nxd使用相同的方式来存储xml文档(比如:flat文件,关系数据库或级别数据库,对象数据库)。

      flat文件

      一个简单的flat文件是一个最简单的xml数据库模型。作为一种“变种”,你可以存储很多xml文档在一个目录层次。为了扩展前面的范例,看看以下的模型:

    diets\
    diets\atkins
    day1.xml
    day2.xml
    day3.xml
    day4.xml
    diets\3daydiet
    day1.xml
    day2.xml
    day3.xml

      diets目录包含了子目录,并且每一子目录很多xml的flat文件。

     关系数据库

      关系数据库中的xml数据库可以分为三种模型:coarse-grained(粗糙纹理型), medium-grained(中等级别纹理型),或 fine-grained(优良纹理型)。

      coarse-grained(粗糙纹理型)模型在逻辑上与flat文件模型有些不同。你可以使用一个关系数据库来存放每一个xml文档。例如,以下的代码可以存放一个xml文档:

      create table diets
      ( dietname varchar2(30),
       xmldocument varchar2(32000)
      )

      fine-grained(优良纹理型)模型将xml文档的每一成分映射到关系数据库中。为了能够将flat模型转移到关系数据库,你必须使用两种改变方式。对以上的范例,你不能再使用子目录名来代表diet的名称,你也不能再使用文件的名称来传递diet的日期。表a显示了diet的xml文档的文件类型定义(dtd);表b显示了将dtd映射到关系表的数据定义语言(ddl)。除此之外,表c还包括了相应的xml语法。

      medium-grained(中等级别纹理型)模型介于coarse-grained(粗糙纹理)模型与 fine-grained(优良纹理)模型之间。使用这一模型,你可以将信息存储在meals 表的xml_items列中。

      对象数据库

      你也可以通过使用一个对象数据库来执行nxd。有些对象数据库是基于文档对象模型(dom),这允许xml与数据库有紧密的结合。例如,一旦你提供一个食物方面的dtd,你可以开始保存这些食物,而不需要额外的配置。

      数据库管理系统

      对于dbms,你可以有多种选择。你可以通过使用开放程序如exist或ozone来建立自己的dbms,或者购买商业产品如tamino xml server。

      绝大多数关系数据库卖主都使他们的数据库能够使用xml,至少的,xml数据库(xedbs)能够返回xml文档查询的结果。另外很多也可以保存xml数据。例如,oracle 提供了一个xml剖析器,一个xpath引擎,一个xslt处理器,一个xmlsql工具,以及使用xml的方法。

      所以,使用关系数据库存储的nxd和存储xml数据的xedb有什么区别呢?一个nxd是基于xml文档概念而建立,而xedb与其它没有过多的关联。而且,很多规范适用于nxd,而dbms只适用标准的查询和存储数据的xml文档,比如xpath。

      xml数据库不是新概念

      xml数据库在逻辑观点上不是新概念,虽然在逻辑执行上是新的。如果你想要执行一个xml数据库,你可以使用nxd,xedb,或者是二者的结合。然而,如果你所在的公司对现有的数据库已经有一定的投资,你所做的第一个调查就是核实你的dmbs卖主是否提供使用xml的工具。无论你使用的哪一种xml数据库方式,你都要非常理解每一种数据库的特性,这才是最重要的。 

  • 上一篇:用xmlhttp组件解析图片地址并保存
  • 下一篇:xml相关资源
  • 最后更新时间:2024年12月22日
  • 返回页面顶端
ppdesk