硅谷杂志:基于关系数据库的时态XML存取研究 |
2012-12-04 09:39 作者:郑弘佳 来源:硅谷网 HV: 编辑: 【搜索试试】
|
|
【硅谷网12月4日文】据《硅谷》杂志2012年第18期刊文,时间是自然界无所不在的客观属性,更是信息的重要属性。能够根据时序进行访问的XML文档称之为时态XML。针对时态XML文档这种特殊的文档,应用一种数据模型进行时态的扩展并在此数据模型的基础上研究基于关系数据库时态XML数据的存储和查询方法。该方法使时态XML的查询变成可以在关系数据库里使用SQL语句的一般查询。
0引言
随着Web技术的发展,扩展标记语言(XML)作为下一代Web的“数据表达”和“数据交换”的标准正在成为事实。把XML与数据库结合,是当前数据库研究领域的一个热点。然而,时间是自然界无所不在的客观属性,更是信息的重要属性,将时态引入XML具有重要的现实意义。越来越多的数据使用XML进行表示和存储,而如何对XML数据进行有效地存储、查询变得尤为重要。引入“时态表达”后,XML文档多了时态的属性,这样就能够记录下XML文档的一系列修改痕迹[1]。另一方面,加入了时态信息之后,相对于传统关系模型的灵活性差以及SQL语言的可扩展性低等缺点,XML比这两者能够更好地支持时态信息表达和时态查询。
1XML与数据库
XML即可扩展的标记语言,是一套定义语义标记的规范,它将文档用标记定义成计算机方便识别的数据类型。随着网络应用发展,XML数据已大量存在,尤其是电子商务、数字图书馆等应用理念的发展使XML类型的数据成为当前主流的数据形式。
传统的数据库中的数据结构性很强,而Web上的数据最大特点就是半结构化。XML可作为表示半结构化数据的模型,可以很容易地将XML的文档描述与关系数据库中的属性一一对应起来,实施精确地查询与模型抽取[2]。
相对于数据库技术,XML技术在数据应用方面具有跨平台、易表义等优点。XML文件又是数据的集合,我们甚至可以把数据库中的数据和XML数据看成是同一数据的不同表现形式。如果能过在这两种数据表现形式之间提供一映射,那么就可以实现这两种数据表现形式的转换。同样也可以将数据从基于关系数据库的存储形式,转变成标记语言的XML格式。
正如摘要中提到的,时间是自然界无所不在的客观属性,真实的事件无一不打上时间的烙印:一个事件必定是在某个时间点上发生的。时态特性是信息的客观存在,加入了时态的xml能够提供对时态数据库切实有效的支持方案[7]。在本文中讨论了实现时态xml在关系数据库中的存储和查询的处理。本文对XML进行有效时间的扩展,提出了一个基于结点有效时间标记的时态XML数据模型,基于这种存储模型,我们对时态XML的查询可以最终转换为对传统表结构和数据的查询。
2XPath及时态XML的扩展描述
2.1XPath简介
XPath[3]基于XML的树形结构建立数据模型,XML文档被描述为一棵由结点集构成的树模型(treemodel),它有7种类型结点。其中,文档顺序是对文档中所有结点定义的一个顺序,该顺序对应于在XML文档中每个结点的开始标记的出现顺序。XPath模型完整的保持了XML文档的信息,包括文档的结构和数据。可以直接在这个模型的基础上对XML文档进行操作[4]。在XPath语法中,是通过一系列的路径匹配规则来实现的,路径匹配与文件路径的表示相仿。
2.2时态XML的扩展描述
能够支持“时态”的XML为时态XML。时态XML中的有效时间描述了数据对象在现实世界中真实有效的时间,它可以用扩展了时态的XPath来描述[5]。需要注意的是,XML的父节点的有效时间区间必须覆盖所有子节点的有效时间区间。另外需要提出的是,本文采用在XML树结点加入了有效时间标记的例子来说明XML文档的存储和查询的实现。为了讨论的方便,本文中的时间粒度为年,并且使用MicrosoftSQLServer2000为数据库软件。将下表1表示成时态XML文档就是表1下方的时态XML文档:
表1雇员记录的有效时间历史
name title dept salary vstart vend
Jim manager Technology 8000 2003 now
Juny - Sales 5000 2000 2004
- HR 5000 2004 now
3时态XML文档在关系数据库中的存取
目前,基于关系数据库的查询处理是对XML的查询处理研究中一个重要的思路。当前很多关系数据库产品中都有对xml的支持。XML查询处理建立在关系数据库之上的优点是可以直接利用关系数据库成熟的查询优化和索引技术[6],也不用为并发控制、安全性等问题做额外的工作。当然在实现上也还是有点复杂,关键的步骤有:1)将XML数据转存到关系数据库的表中;2)将XML查询转化为对应的SQL查询。
3.1时态XML文档在关系数据库中的存储
XML文档在关系数据库中的存储也有很多种方法,比如按字符串存储、树表示法、映射关系等[7]。本文采用基于路径的XML树表示方法,首先从根结点开始按树的先序遍历给各结点编号,如下图1所示:
图1按树的先序遍历给各结点编号
接着,把所有结点分为两类,存进两个表中,即值表和非值表中。存储为以下关系模式(Schema)[8],其中下划线表示主键:
value_table(DocId,Id,Value1,Path,ParentId,Level1)
no_value_table(DocId,Id,Name,Path,ParentId,Level1)
在时态XML的表示模型中,每个结点都有一个“有效时间戳”(validtimetag)标记。这是一种基于结点的时间标记。在表示xml的树状图加入有效时间维信息,把有效时间的起止分为两个字段vstart和vend来存储,这就是描述时态XML的数据模型。
本文中为了优化数据的存储和处理性能,把时间的粒度定为天,相应的存储类型就为int。但是对于历史数据库中特殊的时态元素“now”,由于它仅仅是表示特殊时态元素的特定符号,具体语义需要在应用中语义确定。所以相关列的数据类型仍定为int,但取值则取它的最大值9999。
其中,加入有效时间标记的值表和非值表的存储结果如下图2和图3所示:
图2值表加入有效时间的存储结果
图3非值表加入有效时间的存储结果
3.2时态XML文档在关系数据库中的查询
基于XML的树状结构,查询分为值查询和路径(结构)查询两种,加入了时态的XML还有时态信息的查询。归根到底,查询都是查询路径与目标路径的匹配过程。在本文中,我们对XML文档的查询是将XML查询转换为SQL语句查询的。给出一个XQL查询表达式,诸如‘/Company//Employee’可以被查询处理器翻译为以下的SQL语句查询:
select*
fromno_value_table
wherePathlike'/Company%/Employee'
下面我们举个例子来说明一个查询时态XML的方法:查询2004年Company中叫Juny的员工工作在哪个部门。
该查询的SQL语句如下
select*
fromvalue_tableasV
whereV.vstart<=2004andV.vend>2004andV.ParentId=(
selectN.Id
fromno_value_tableasN
whereN.Pathlike'/Company/Branch/Employee/Dept'andN.ParentId=(
selectN.ParentId
fromno_value_tableasN
whereN.Id=(
selectV.ParentId
fromvalue_tableasV
whereV.Value1='Juny')))
这个查询的例子比较复杂,要用到值表和非值表两个表的嵌套查询。基本思路是这样的:先找出Juny的父结点->找出Juny父结点的ParentId->找出路径为‘/Company/Branch/Employee/Dept’并且父结点Id与之前查询的Id相等的结点Id->增加时间约束条件。查询结果返回如下图所示:
图4时态XML查询结果
4结束语
本文研究扩展了有效时间的XML文档如何在关系数据库产品(MicrosoftSQLSever2000)中实现存储及查询的,采用了有别于其他文献的方法将有效时间标记存储在结点上。在时态XML文档的存储问题上,本文采用基于路径的存储方法,有利于能够保存XML的完整信息。同时把时态XML树的所有结点分为有值和无值的两类,分别对应两个表存储到关系数据库中。在对待时态信息上,本文研究把有效时间区间分为两个属性,作为表的两个属性,并使用整型数据,增加了可操作性。本文举例子说明查询时态XML文档的方法,使时态XML的查询变成可以在关系数据库里使用SQL语句的一般查询。
注释:
i:MicrosoftSQLSever中没有时间区间数据类型,本文把有效时间的起止分为两维属性,并用整型数据来模拟时间区间。
作者简介:
郑弘佳(1985-),女,广东汕头人,硕士,助理工程师,研究方向:数据库、办公信息化。
|
|
|
|
【对“硅谷杂志:基于关系数据库的时态XML存取研究”发布评论】 |
版权及免责声明:
① 本网站部分投稿来源于“网友”,涉及投资、理财、消费等内容,请亲们反复甄别,切勿轻信。本网站部分由赞助商提供的内容属于【广告】性质,仅供阅读,不构成具体实施建议,请谨慎对待。据此操作,风险自担。
② 内容来源注明“硅谷网”及其相关称谓的文字、图片和音视频,版权均属本网站所有,任何媒体、网站或个人需经本网站许可方可复制或转载,并在使用时必须注明来源【硅谷网】或对应来源,违者本网站将依法追究责任。
③ 注明来源为各大报纸、杂志、网站及其他媒体的文章,文章原作者享有著作权,本网站转载其他媒体稿件是为传播更多的信息,并不代表赞同其观点和对其真实性负责,本网站不承担此类稿件侵权行为的连带责任。
④ 本网站不对非自身发布内容的真实性、合法性、准确性作担保。若硅谷网因为自身和转载内容,涉及到侵权、违法等问题,请有关单位或个人速与本网站取得联系(联系电话:01057255600),我们将第一时间核实处理。
|
|
|
|