登录注册
上海交通大学论坛 > 数据库 > 浏览当前帖子 手机版 关闭左侧栏
基于XML的数据库总体分析[4]
返回本版】  【发表帖子】  【回复帖子 浏览量  4259      回帖数 0
英雄泪2008    等级  

楼主 发表于  2011/7/8 10:29:42    编 辑   



  基于XML的数据库产品分类 

  根据Ronald Bourret在XML Database Products一文中的描述,XML Database 
中包含有七种类型的产品,分别为:  

  * 中间件(Middleware ) 

  1、 与XML相结合能驱动XML的数据库(XML-Enabled Databases),比如Oralce 
和微软都宣称在它们最新的数据库产品都都能够和XML进行无缝的衔接。 

  2、 原始的XML数据库(Native XML Database) 

  3、 XML服务器(XML Servers) 

  4、 XML应用服务器,比如IBM的WebSphere  

  5、 内容管理系统(Content Management Systems) 

  * 可持久化的DOM实现(Persistent DOM Implementations) 

  下面我们对每一种产品做一个具体的说明和介绍 

  中间件:所谓中间件就是用来在XML文档和数据库之间进行处理和转化的软件。 
主要应用于以数据为中心的应用里面,它可以用各种各样的语言编写,一般来说 
它需要用到ODBC, JDBC,或者是 OLE DB. 尽管它可以通过Internet进行是数据的 
传输,但是一般它都是通过Web服务器来实现数据的传输。 

  下面我们需要考虑当把XML文档存储到数据库中,如何选择适合你应用程序的 
中间件。 

  实际上,在我们选择中间件的时候,我们要考虑下面一些因素 

  1. 数据类型: XML不支持数据类型,也就是说,在XML文档中的所有数据都 
是文本,即使数据它本身代表了另外一种数据类型,比如日期或者整数。通常, 
数据传输中间件将把数据转化为□□类型。 

  2. 二进制数据处理:有两种通常的方法存储XML文档中的二进制数据:未经 
过解析的实体(unparsed entities)和Base64编码。 

  3. Null类型处理:在关系数据库世界中,NULL表示该数据不存在,它和0或 
者是空字符串当然是不一样的。当然,XML也支持NULL的概念。如果一个可选择的 
元素类型或者属性是NULL的话,它就不包括在这个文档里面。当映射一个XML文档 
的结构到数据库或者根据数据库内容生成XML文档的时候,你需要考虑可选元素类 
型和属性跟可NULL的列之间的映射。 

  4. 字符集:一个XML文档可以包含任何Unicode字符,而不幸的是,许多数 
据库并不支持Unicode。因此如果你的数据包括非ASCII字符的时候,需要注意数 
据库和中间件对这些字符的处理。 

  5. 关于XML中的处理指令:处理指令并不是XML文档中的数据,因此中间件 
就很难决定如何存储它们。所以在选择中间件的时候,要看它们对处理指令的处 
理情况。 

  6. 标记存储:注意不同的中间件对标记的处理是不一样的。而且在数据库 
中的存储模式也不同,见下面的例子: 

  <description> 
  <b>Confusing example:</b>  
  </description> 

  在数据库中存储的形式如下: 

  <b>Confusing example:</b> <foo/> 

  这主要是因为数据库不能识别<b>和<foo>是标记还是文字。 

  典型的中间件有: 

  ADO:它可以实现数据库和XML文档之间的双向转换。XML支持把一个记录集 
合对象保存为一个XML文档,它也能够把一个XML文档作为一个记录集合进行处 
理,这样就在XML文档和数据库之间提供了一个桥梁。这种映射实际上是模型驱 
动的,数据可以被看成是一棵对象树,一个具有嵌套结构的树可以作为一个嵌 
套的记录结果集被显示,反之也是如此。另外,如果记录集合数据有变化的话, 
可以反映到相应的XML文档中,而XML文档中内容的变化也可以导致数据库内容 
的变化。  

  ASP2XML:主要是通过一个COM对象实现XML文档和基于ODBC或者是OLE DB的 
数据库之间数据的传递。该产品实际上是基于模型驱动的,把XML文档看成是一个 
单一的表,当把数据从数据库传递到XML文档的时候,用户指定一个SELECT语句, 
输出包含了ASP2XML专用的标签。当把XML文档的数据传递到数据库的时候,XML 
文档必须包含ASP2XML专用的标签。该COM对象是支持自动化的,也就是说它能够 
在剧本语言中使用,比如ASP。 


                                             To be continued. 
1
表情
所有内容均为会员自愿发表,并不代表本站立场.
论坛帮助 会员认证删帖申请 联系我们