金色坐标

关注互联网和IT科技的个人博客

« 现在的黑客越来越嚣张中国会出生暴雪和GOOGLE吗 »

大型关系数据库对XML存储的支持

XML在数据库中的存储,按照分片大小可以分为三种粒度:一是细粒度存储,存储后XML中每个元素和属性都可以单独访问;二是粗粒度存储,它将XML文档作为一个整体来进行操作,这个类似于平面文件的存储机制只不过是存放在数据库中;第三种是中度粒度存储,即通过一个混合方法来平衡以上两种极端的优势。

1,Oracle XML开放技术

XML模块化了结构和半结构化数据,Oracle9i支持结构化和半结构化数据,也支持复杂的和未结构化的数据。由于Oracle9i可以本地实现存储、查询、表现形式和XML数据的操作,所以Oracle9i是对XML开放的。

数据是做为使用对象视图的相关表或做为CLOB中的XML文档而存储的,使用Oracle文本能搜索存储在XML类型列和CLOB列中的XML文档。在Oracle9i中XML数据以下列方式存储:

(1)生成XML方式:XML数据在数据库中通过对象关系表存储或作视图,当需要时数据能被动态的恢复成XML格式。

这种方式的优点在于,当XML是一种交换格式且存在的企业数据库仅限于XML结构时使用生成XML方式,这是在数据库中使用XML最通用的一种方法,XML仅仅用于交换过程本身且是暂时的。

(2)组合XML方式:XML文档存储的方式与它在CLOB中存储方式相同。这种方式是把XML文档作为一个整体从数据库中传输,是一种粗粒度的存储方法。

2,IBM DB2 XML扩展器 (DB2 XML Extender)

IBM 的XML扩展器提供两种存取方法以把DB2当作xml仓储使用:

(1)XML列:将完整的XML文档作为DB2的一个列来存取,这也是一种粗粒度的存储方法。

(2)XML集合:解析XML文档,映射到一组关系数据库表中,或者从一组关系数据库表中重组XML文档。

XML文档的DTD存放在DTD仓储中,此外还有一个数据访问定义DAD(Data AccessDefinition)文件负责数据库表与XML文档结构的映射。

3,Microsoft SQL Server 2000

SQL Server 2000中SQL-to-XML和XML-to-SQL的映射机制是不对称的。

数据库中有一个存储XML查询视图的工具,允许用户从多个关系中检索数据,且可以在一个具有任意嵌套的XML文档中连接数据,通过给select语句添加一个FOR XML子句来实现。

向数据库中存储XML文档时使用一个新的模块OPENXML,处理流程是首先在内存中解析XML文档得到文档的DOM表示,然后将XML元素映射到一个模式中,最后删除内存中数据。




原创文章,如转载请注明:转载自金色坐标 [ http://www.kingxy.com/ ]

本文链接地址:http://www.kingxy.com/archives/172.html
  • quote 3.joy
  • xml本来就是一种数据存储格式,不过更方便于网络传输。
  • 2009-8-27 17:56:58 回复该留言

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

订阅博客

  • 订阅我的博客:订阅我的博客
  • 关注新浪微博:关注新浪微博
  • 关注腾讯微博:关注腾讯微博
  • 通过Google订阅本站
  • 通过鲜果订阅本站
  • 通过电子邮件订阅
  • 本站支持WAP访问

Search

Google

最新评论及回复

最近发表

金色坐标博客——京ICP备09009094号

本站采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载本站内容必须也遵循“署名-非商业用途-保持一致”的创作共用协议.
KingXY Blog - This site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License.