admin 管理员组文章数量: 1184232
2024年4月20日发(作者:java数组转list集合)
ISSN 1009-3044
E—mail:jslt@cccc.net.cn
http://www.dnzs.net.en
Te1:+86—55 1—5690963 5690964
ComputerKnowledge and Technology电脑知识与技术
Vo!.6,No.19,July 2010,PP.5143—5144
探讨XML数据库技术
陈熙妍
(南海广播电视大学,广东佛山528200)
摘要:现在XML已经得到广泛应用。在数据库领域,许多关系数据库系统提供了存储XML文件的功能。但是关系数据库仅提供对
XML文件本身进行存储或者读取的功能,并不能从DOM树检索部分文档或节点。因而就产生了原生XML数据库,XML数据不经
任何转换而按原结构形状直接存入数据库内,因而对XML的应用来说是最优的。该文即是在这个方向上做了一些初步的探索。
关键词:XML:数据库:关系数据库:数据库映射
中图分类号:TP31l 文献标识码:A 文章编号:1009—3044(2010)19—5143—02
1 XML与数据库
现在对XML数据库的应用一般分为支持XML的数据库系统和原生XML数据库。现在很多企业都把XML作为数据库的一个
补充,大的数据库厂商都在数据库产品内置了对XML的支持,这样将XML与数据库配合使用,这样的相互配合利用可以使它们各
自发挥出威力,也能提高信息产品的灵活性。但是基于关系型数据库管理系统的支持XML的数据库系统也存在着一些问题:映射
过程复杂繁琐;对较复杂的数据结构,映射的速度很慢;映射过程中会丢失元数据信息;存入和取出的XML文件可能不一致;数据
必须有严格的结构;不支持包含混合内容的文件;灵活性、扩展性较差。如果你要查询历史数据、存储Web页面、进行电子商务,而
XML又在其中作为数据传输载体,则你就需要选择支持XML的数据库和中间件。原生XML数据库为XML文档定义了一个f逻辑)
模型,并根据该模型存取文件。它有一个XML文档作为它的基本的逻辑存储单元,就像关系型数据库在表格里也有一行作为基本
的逻辑存储单元。原生XML数据库并不需要一些特定的潜在的物理存储模型,例如它可以建立一个关系型、层次型或面向对象的
数据库,或使用专有的存储格式,例如索引,压缩文件。
表1
关系数据章
2 XML数据库与关系型数据库的比较
如表1所示,XML数据库有其自身的优点:可仔储以文
档为中心和以数据为中心的XML:有很大的灵活性;适用于
处理结构复杂、深层嵌套的数据,适于处理半结构化数据和
数据 暑;蔓结构组织
节专可里占多 元素靶蔼慧藿
元素可以嵌套
元素青字
元素可建归
数据结构可选
数据存储在多个表中
表格单元只能育一个值
表格单元中的数据不能再划分
列是无J芋的
几乎不支持递归元素
非结构化数据:它是多种异构数据源的数据共享和集成:异
构系统间的互操作。但XML数据库也有自身的缺点:产品不
成熟;许多标准仍处于发展过程中;技术不为大家所熟悉;不
适合事务处理:支持的工具较少:产品问的可互操作性较差。
可直接存取XML文件
缝嗣符台XML标准的查询语吾
必需育库结构
获取XML文件通常需要大量的表连接操作
使用基于SQL的语言查询
3 XML与数据库映射
为了在数据库和XML文档之间传递数据,必须在文档结构和数据库结构之间建立映射,这种映射可以有两个分类:模板驱动
和模型驱动
1)以模板驱动映射
模板驱动就是通过在XML文档中嵌入可以被中间层功能代理支持的sql指令来实现数据的映射。值得注意的是,当前基于模
板驱动的映射只能应用于在关系数据库和XML文档之间传递数据。
21以模型驱动映射
模型驱动就是通过在DTD/Schemas中定义数据模型的方法,建立数据库中数据与XML文档中数据的映射。模型驱动的映射是
一
种深层次的映射,是模式和模式之间的映射。XML文档和面向对象数据库的结构都是树型结构,这两者的映射相较XML与关系
数据库的映射来得简单。所以采用模型驱动。将XML文档映射到面向对象数据库,也就足根据DTD/Schemas生成数据库模式过程。
具体实现步骤为:
①按照深度有限原则从XML文档树的树叶往树根进行遍历;
②每当碰到除叶结点和根结点以外的内部结点,就查看数据库中是否存在对应的抽象数据类型,若不存在,则创建,并保证该
结点所有子结点是该抽象数据类型的域;
⑧循环遍历XML文档树也就是重复2),直至根结点的直接子结点(次根结点);
④创建基于次根结点所对应抽象数据类型的对象,该对象是根结点所对应的对象;
⑤将XML文档中各元素的属性值填人对象的相应域。
3)对D0M对象的操作
查找D0M对象的例子
收稿日期:2010—05—22
本栏目责任编辑:代影 * 数据库与信息蕾理 5143
ComputerKnowledgeandTechnology电脑知识与技术
‘
第6卷第19期(2010年7月)
document.getElementById()
・
・
document.getElementsByClassName0
document.getEIementsByNameO
document.getElementsByTagName0
操作dom对象的例子
・
・node.appendChild0
・node。removeChild0
・
None.innerHTML=‘<h2>test</h2>’
总而言之,现在人们正在尝试通过把XML文档映射到不同数据库模型的模式定义的方法来表示层次化的数据。
4 XML数据库技术的应用
XML文档有两种用途,分别是:以数据为中心的文档(data—centirc documents)和以文档为中心的文档(document—eentric doeu.
1)以文档为中心(Document—centifc mode1)
ments),区分它们的目的在于它们各自不同的特性将影响到我们如何选择XML在数据库中的存储方式。
xML作为标记语言最初的用意,提供一种比HTML更好的方法来描述内容,如:书本、电子邮件、广告、XHTML文件等,主要为
人类设计的。它具有不规则的结构,而且数据的粒度也比较大。
21以数据为中.心fData—centric model1
XML用作锚构化数据的存储和交换格式。有非常规则的结构,主要是方便机器处理。例如:定货单、飞机时刻表、科学数据、股市
报价等。从严格意义上讲可细分为结构化数据和半结构化数据semi—structured data)。
5关于xinl文档解析或编程接口
对于XML文档之上的任何处理,比如转换后装入数据库,或是查询,都会经过一个XML数据解析器。
SAX和D0M是针对XML文档的两种不同的应用程序编程接口API,目前的XML数据库产品均支持这两种解析方式。
DOM的解析过程是将整个XML文档读入,然后构建一个驻留内存具有层次的树结构 应用程序则可用DOM提供的一组接口
来操作这个树结构,因而DOM被认为是基于树或基于对象的解析。
SAX是基于事件的解析,SAX采用一种顺序访问快速读写XML数据的方式,解析文档时,会针对不同对象触发一系列事件,并
激活相应的事件处理函数(程序员编写),从而完成对XML文档的访问。SAX事件是无状态的,事件仅仅给你发现的文本,但它不会
告诉你什么元素包含这文本,你必须自己编写状态管理代码;另外SAX事件不是持久的。
6从数据库读数据然后写到xmJ的例子
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.OleDb;
namespace DB2XML
f class Program
{ static void Main(stirng[】args)
{ var con=new 0leDbConnection(”Providel=Microso1f.Jet.OLEDB.4.0;Data Source=\”Nwind-mdh、…’);
con.Open0;
var adapter=new 0leDbDataAdapter(”select术from customers”,con);
var db:new Northwind0;
adapter。Fill(irb);
db.WriteXml(”customers.xml”1;
) } l
7未来的技术发展方向
1)异构数据源的集成。如何从对数据的集成过渡到对系统的集成,从而在远景目标上实现类似于网格计算( d computing)概
念的系统,恐怕是XML数据库工作者的核心任务之一。
2)底层索引结构。B+并不是最好的。
3)并发加锁协议。
4)XML模式规范化是一个值得关注的方向。
8结束语
无论如何,XML正在迅速地发展和不断地完善中,前景非常光明。例如,XML查询语言(XQL)即是针对XML在数据库方面的
应用。在这个领域内.还有很多问题有待我们去研究和解决。
参考文献:
【1】Chaudhri A B.XML数据管理~纯XML和支持XML的数据库系统[M].邢春晓,译.北京:清华大学出版社,2007.
5144 数据库与僖息蕾鼍一 t 本栏目责任编辑:代影
版权声明:本文标题:探讨XML数据库技术 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1713564528a640979.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论