|
登录注册 |
☦ 上海交通大学论坛 > 数据库 > 浏览当前帖子 | 手机版 关闭左侧栏 |
基于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 |
论坛帮助 会员认证删帖申请 联系我们 |