XML数据库:最新进展和发展方向
2008-02-23 05:26:14来源:互联网 阅读 ()
虽然学术界和工业界对XML数据库的研究和研发并不完全一致,但是两者的目标却很相似:解决现有问题,扩展应用领域。
1.学术界和工业界的两种不同索求
Ronald Bourret 在他那篇著名的《XML Database Products》中,将XML数据库产品分为中间件(Middleware)、支持XML的数据库(XML-Enabled Databases)、纯XML数据库(Native XML Databases)、XML服务器(XML Servers)、Wrappers、内容管理系统(Content Management Systems)、XML查询引擎(XML Query Engines)、XML Data Binding、Discontinued products等九种,在业界影响很大。但是,在XML数据库的研究和研发人员眼里,或许只有支持XML的数据库、纯XML数据库能够称得上是真正意义上的XML数据库。支持XML的数据库能够被看做是支持XML数据的数据库系统,他可能是关系数据库、对象数据库等。就在一年半以前,更有相当多的人在争论关系库支持的XML数据库和纯XML数据库孰优孰劣的问题。但是,纯XML数据库却在这种争论中悄然进步,在技术上有了长足的发展。
人们已越来越倾向于认为XML数据库就是纯XML数据库。随着金融界确立XBRL(XML的一个子集)标准和政府规范电子政务的XML格式,实践推动着XML数据库技术不断向前发展。
XML数据库系统从最初简单的查询引擎,不断地加入查询优化、事务处理、触发器、并发控制、代数系统等传统的数据库技术,一步步地从性能和功能上完善自己。
从现在XML数据库的产品情况来看,学术界的实验系统和市场产品之间有着些许微妙的差别,尽管他们的主流技术是一致的。
学术界完成的实验室原型系统一般侧重于下面的一些特点:
● 专注于查询性能的提高,对查询优化的研究较多。为了提高查询效率,学术界十分重视索引结构的设计,先后提出二十几种适合于XML数据的索引方式,比如影响很大、简单易用的三元组索引,并在此基础上研发出了以结构化联接为基础的查询模式匹配方法。
● 强调平台无关性。在XML数据库研究的早期,业界曾存在一个争论:到底将XML数据存储在关系库中,还是另外研发存储XML的物理数据库。这在一定程度上影响着XML的研究者,在设计索引结构时必须考虑使索引过的XML数据能够存储在多种数据库结构中。
● 从理论的角度较多地考虑了XML数据库的模式设计规范化问题。设计了基于键的函数依赖推理,在如何优化XML数据库设计、消除数据冗余和不一致方面有了一些实质上的进展。
工业界的XML数据库产品更加强调实用,有着一些和学术界原型系统不尽相同的特点:
● 现有的主流XML数据库产品都在底层提供collection数据结构,以存储XML元素节点,通过B 树结构来索引这些元素节点。这一点和关系库系统的底层处理如出一辙。在collection之上一般还会有一级或两级索引,以加快查询处理速度。这一点比平台无关的实验原型系统更高效实用。
● 市场上的数据库产品通过引入日志管理,建立了较完善的事务处理机制,这为上层的数据库应用研发提供了便利。现在的商用XML数据库一般提供事务处理功能,包括提交、回滚和日志文档。通过提供事务日志机制,纪录系统执行的每个事务的周详情况,确保在系统出现问题后能够完全恢复。
● 增强了对异构数据源的集成管理。树型结构的XML数据有其难以管理的一面,但是,XML技术的可扩展性又使得他具备集成异构数据源的强大能力。因此,市场上的XML数据库产品普遍具备较强的集成多种数据源的功能。这也是当前市场上的XML数据库产品的一大亮点。
2.实验室的原型系统和商用化产品
最近几年以来,在学术界和工业界的一起推动下,如雨后春笋般诞生出大量的XML数据库原型系统和商用产品。
在Ronald Bourret的《XML Database Products》中一共列了36种XML数据库产品,大致上可分为三大类型:
● 商业类(commercial):如Ipedo、Tamino、Natix、Xyleme等。其中,美国Ipedo公司的Ipedo XML Database和德国Software AG公司的Tamino是其中的佼佼者,成为现在市场上的主流产品。
● 研究类(research):如Stanford大学早期研发的Lore等。
● 开放源码类(open source):其中影响较大的是Berkeley DB XML、dbXML、XDB和Xindice。
需要指出的是, Lore database systems 只是Stanford大学早期针对半结构化数据而研发的数据库系统。Lore连同其专设语言Lorel都是为半结构化数据而写的。尽管说XML数据在某种程度上也是一种半结构化数据,但是,两者之间还是有着一些差别,导致Lore database systems很难成为一种完全意义上的XML数据库系统。
事实上,在学术界,真正受到关注的XML数据库原型系统有三家:密歇根大学安阿伯分校的Timber、西雅图华盛顿大学的Tukwila和威斯康星大学麦迪逊分校的Niagara。其中,影响最大的是Timber,在该系统的实施过程中,产生了许多有关XML数据库的新的概念和方法。当然,多伦多大学的Tox也是个相当不错的系统,尤其是其出色的索引结构。但是,总体上不如前面的三家有名。
3.核心技术的进展
综合XML数据库的实验室原型和商业产品的共性,形成了如图1所示的一幅XML数据库的一般结构图。依据图1, XML数据库的核心技术主要包括:
1.查询语言
自从1995年XML技术的研究和研发逐渐升温以来,形形色色的XML查询语言不断问世。比较有代表性的如早期的 XML-QL、XQL、UnQL,后来的Quilt、Xpath,连同由Quilt发展而来的XQuery。在W3C的极力推动和学术界、工业界的大力支持下,XQuery逐渐在这些查询语言中脱颖而出,成为事实上的工业标准。
XQuery的FLWR语句规范,有着和关系数据库的SQL完全类似的表达方式,使得他在一般用户眼里,也变得友好起来。
而Xpath能够理解为是XQuery的一个子集。Xpath表达式在相关文献中被证实和查询模式树是等价的,这也和学术界推崇的模式树查询方式一致,使得实验室系统能够毫不困难地处理Xpath查询表达式,并能进行查询优化。这一点在XML数据库研究中显得颇有价值。
2.XML文档解析
在图1中,将XML文档载入数据库时,会经过一个XML数据解析器。数据解析器会依据一定的规则对XML数据进行解析后装入数据库。现在的数据解析器一般提供SAX(simple API for XML)和DOM(document object model)两种方式。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇: C语言-编程实例-文档加密一例
下一篇: 链表的C语言实现之循环链表及双向链表
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash