【硅谷网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存取研究
时间: 2024-12-15 12:25:55
硅谷杂志:基于关系数据库的时态XML存取研究的相关文章
硅谷杂志:展望云计算的发展趋势 云计算研究综述
[硅谷网11月4日文]据<硅谷>杂志2012年第16期刊文称,采用文献分析方法简述云计算的定义.分类.支撑技术和架构,从计算架构.编程模型和平台研究等方面介绍云计算的各项相关技术的研究现状和部分技术方案,展望云计算的发展趋势,可为云计算相关研究提供参考. 关键词:云计算:并行计算:虚拟化:按需使用 0引言 云计算(CloudComputing)是在2007年第3季度才诞生的新名词,它是在信息技术进步和应用需求拉动两方面成熟的条件下逐渐演化而来的.从最基本的层面来说,云计算是一种信息服务的交付和
硅谷杂志:基于HMM模型的入侵检测技术研究
[硅谷网12月10日文] 据<硅谷>杂志2012年第18期刊文称,入侵检测技术作为计算机安全技术的一个重要组成部分,已经受到越来越广泛地关注.作为一种新的动态安全防御技术,它是继防火墙之后的第二道安全防线.主要研究当前入侵检测一直无法很好解决的两个问题,即 复杂网络攻击的检测和网络在入侵攻击下的风险评估. 0前言 自上世纪90年代以来,基于TCP/IP的互联网得到了飞速的发展,信息的传递和处理超越了时间和空间的限制,网络信息化已成为不可阻挡的趋势,但其安全性也受到越来越多的挑战.于是人们针对网
硅谷杂志:基于DLINQ的库存管理系统的设计与实现
硅谷网12月8日文 据<硅谷>2012年第18期刊文,DLINQ库存管理系统是企业管理的主要部分,当前我国很多企业库存管理体系还不够完善,工作效率不高,库存积压严重,库存的成本大大提高,最终影响着企业的现金流问题.库存管理问题一直困扰着企业的发展壮大,也是学术界和商业界要 重点解决的课题之一.随着计算机网络技术的不断发展,基于DLINQ的库存管理系统的开发 具备很多可行性条件,不管在技术上还是资金上,准备工作都已经做到位.DLINQ的库存管理系统一旦成功实现运行,有利于提高企业的 整体库存管理
java-采用Java语言实现基于关系数据库的OWL本体构建
问题描述 采用Java语言实现基于关系数据库的OWL本体构建 求各位大神帮忙写一个采用Java语言实现基于关系数据库的OWL本体构建的程序,谢谢
Android平台基于Pull方式对XML文件解析与写入方法详解_Android
本文详细讲述了Android平台基于Pull方式对XML文件解析与写入方法.分享给大家供大家参考,具体如下: XML技术在跨平台的情况下的数据交互中得到了广泛的应用,假如我们需要开发一个Android应用程序,需要同服务器端进行数据交互,通过XML文件可以很方便的在Android平台和服务器之间进行数据传输,具体实现涉及到对XML文件进行解析及写入的技术.本文实现在Android平台上基于Pull方式对XML文件解析的技术. XmlPullParser是一个Java实现的开源API包(源码下载地
Android平台基于Pull方式对XML文件解析与写入方法详解
本文详细讲述了Android平台基于Pull方式对XML文件解析与写入方法.分享给大家供大家参考,具体如下: XML技术在跨平台的情况下的数据交互中得到了广泛的应用,假如我们需要开发一个Android应用程序,需要同服务器端进行数据交互,通过XML文件可以很方便的在Android平台和服务器之间进行数据传输,具体实现涉及到对XML文件进行解析及写入的技术.本文实现在Android平台上基于Pull方式对XML文件解析的技术. XmlPullParser是一个Java实现的开源API包(源码下载地
Android基于Pull方式解析xml的方法详解
本文实例讲述了Android基于Pull方式解析xml的方法.分享给大家供大家参考,具体如下: Pull解析和Sax解析很相似,都是轻量级的解析,在Android的内核中已经嵌入了Pull,所以我们不需要再添加第三方jar包来支持Pull. Pull解析和Sax解析不一样的地方有: (1)pull读取xml文件后触发相应的事件调用方法返回的是数字 (2)pull可以在程序中控制想解析到哪里就可以停止解析. 来看看实例: book.xml如下: <?xml version="1.0"
基于云计算的软件资源服务平台研究
基于云计算的软件资源服务平台研究 东华大学 张玄 论文的主要研究内容和创新点如下:首先,论文介绍了云计算的特点和实现云计算的相关技术,对传统的软件资源相关理论及其管理系统进行了分析,指出了传统软件资源管理系统在软件资源共享使用时存在的不足,提出了基于云计算的资源服务平台框架,并对平台进行了设计和研究.其次,根据软件资源服务平台的特点以及需求,对实现云计算的技术框架,选择基于实现MapReduce并行编程模型的Hadoop云计算系统开源框架,可以降低实现成本,并使得软件资源管理和复用效率大幅提高
基于java语音缓存系统的研究与设计,怎么写毕业论文???是否需要做一个系统
问题描述 基于java语音缓存系统的研究与设计,怎么写毕业论文???是否需要做一个系统 这个东西是什么>??是否需要做出一系统,这个论文怎么写,谁帮写好能通过重谢 解决方案 这个应该是不需要做一个系统的,这并不是一个项目或者安卓的app,并不是偏向实践方向的,而是更偏向理论放心吧.个人理解,具体的建议你问问你的导师吧 解决方案二: 如果你什么都不会,那就胡乱抄抄类似的文章吧google总会用吧.http://www.docin.com/p-65599058.html 解决方案三: butaiqi