本发明专利技术涉及一种XML文档到关系数据库的映射方法,属于计算机数据处理领域。该方法通过建立有序标识树、建立主、从表以及将XML文档的有序标识树逐项分别映射到关系数据主表和从表对应的字段中,从而完成XML文档到数据库的映射。本发明专利技术与传统映射方法相比,不仅可以有效地保持XML文档的结构,而且可以显著节省存储空间,还能提高数据查询效率,具有实际应用价值。
【技术实现步骤摘要】
本专利技术涉及一种XML文档映射方法,尤其涉及一种XML文档到数据库的映射方法,属于计算机数据处理
技术介绍
XML (eXtensible Markup Language,可扩展标记语言)具有平台无关性、自描述性、可扩展性、简单易于处理等优点,其相关技术的成熟使之成为Internet数据表示和交换的标准。XML在Web服务、电子商务和数据集成等诸多领域具有广泛应用。基于关系数据库技术的的存储应用十分普遍,但XML数据存储与关系数据库存储的数据转换是当前没有解决的核心技术问题。目前,基于关系的XML存储研究受到国内外研究者的重视,发表了一些重要的研究成果,但是总的来说根据存储时是否使用 XML 模式(DTD 或 XML Schema)可以分为以下两类:结构映射方法和模型映射方法。结构映射方法是在进行关系数据库的XML存储时,先根据XML模式(或挖掘出XML文档中固有的模式信息)生成相应的关系模式,然后再根据生成的关系模式对XML文档进行解析分解并将其存放于相应的数据表中。结构映射方法中比较有影响的主要有STORED方法、DTD方法、CPI方法和p_schema方法。模型映射方法是将任何XML数据都存放在有固定关系模式的数据库中,而不考虑 XML 文档的模式,其本质就是存储XML文档的结构信息。按XML数据的存储方式不同,模型映射方法主要有基于边的方法和基于节点的方法两种。其中,基于边的方法中比较有影响的主要有Edge方法和Xparent方法;基于节点的方法中比较有影响的主要有XRel方法。与结构映射方法相比,模型映射方法具有以下三个优点:⑴支持任何静态(XML 模式不变)或动态(XML 模式不断变化)的 XML 数据存储;⑵支持任何格式良好的而没有XML模式的 XML 数据存储;⑶不需要对数据库模型进行任何扩展就可以支持 XML 的存储。以上关于XML存储的研究所提出的方法多种多样,但都不同程度的存在着一些问题。第一种结构映射方法对XML文档的格式要求过于严格,耗费大量的数据空间,没有考虑数据库存储及查询方面的性能等因素;而第二种模型映射方法中插入节点后需要重新标识,动态更新非常困难,提取父-子和祖先-后代节点关系也很很麻烦。此外,模型映射方法中的基于边的方法不能有效地处理正则路径表达式查询和XML结构查询,在查询过程中需要对表进行大量连接操作,因而效率特别低;基于节点的方法,例如XRel模型,则占用了大量的存储空间。申请号为PCT/US2002/030783的国际专利申请公开了一种将XML模式映射到对象关系数据库系统的方法,该方法首先将XML模式注册到数据库系统中,然后将注册的XML模式映射为数据库系统所支持的模式,最后将符合所述XML模式的XML文档存储到数据库系统中。此外,申请号为200410073869.5的中国专利也申请公开了一种基于模式的XML存储方法,该方法依据XML文档的模式信息,选取了该模式定义的特定节点作为记录节点,把输入的XML文档划分成一个一个记录,并记录其类型,对得到的记录按类型进行分类,类型相同的记录存储在一起,最终将XML文档映射到了关系数据库表中。采用这两种方法,映射后的XML文档占用的存储空间相对较小并且查询效率得到一定提高。但这两种方法都属于结构映射方法,是基于模式的,不同XML文档的模式很可能有差别,对这些模式信息的提取和管理本身就是一个极其繁琐的问题。在映射过程中,关系表不是预定义的,而且产生表的数量也不确定。如果XML的嵌套深度很大,可能产生大量的关系表。此外,XML定义的元素、属性顺序信息在映射后一般不予以保证,并且注释、处理指令等信息也有可能被遗弃。综上所述,目前广泛采用的结构映射方法以及传统的模型映射方法都不同程度的存在着一些缺陷,因此都不能较好的解决XML文档到关系数据库映射这一问题。
技术实现思路
本专利技术的目的是:针对上述现有XML映射方法存在的问题和不足之处, 鉴于模型映射方法具有的优势,提出一种不仅可以显著节省存储空间以及提高查询效率,并且动态更新十分方便的XML文档到数据库的映射方法。为达到上述目的,本专利技术XML文档到数据库的映射方法步骤如下: 步骤1、建立有序标识树——根据XML文档节点结构,将XML文档映射成对应的有序标识树。通常,所述有序标识树由按祖先后裔顺序连接的元素节点(元素节点可以包含子元素节点)、与叶节点连接的文本值、以及与相应元素节点连接的属性节点构成,给XML文档节点(元素和属性)赋予唯一的标识。这样,可以对节点进行如先序、中序或后序遍历。步骤2、在数据库中设置主、从表——根据步骤1所建立的有序标识树,在数据库中设置存储基于文档结构信息的主表和存储基于文档内容的从表。即这两个表分别为documents主表和tags从表,基于文档本身结构信息的存储放在documents表,基于文档内容的存储放在tags表。所述主表宜由用于标记XML文档的主键字段和用于以编码字符串描述该文档节点结构的文本字段构成。即主表的结构可以表示为documents(doc_id,doc_structure)。其中:doc_id是唯一标识的主键字段,由每个文档本身产生来标记该文档;doc_structure是包含编码字符串的大文本字段,用来描述文档结构,文档节点结构的任何变化都映射在这个字段中。所述从表宜由用于连接主表的外键字段、用于标记主键字段的主键标识字段、用于标记文档内容名或属性的名字段,以及用于标记文档内容的文本字段构成。即从表的结构可以表示为tags(doc_id,tag_id,tag_name,tag_value)。其中:doc_id 是连接documents表的外键,反映主从表间的关系;tag_id是每个标记产生的主键标识字段;tag_name是标记名或属性名字段;tag_value是标记属性的文本字段。步骤3、XML文档映射到数据库——将XML文档的有序标识树逐项分别映射到数据库相应的主表和从表对应的字段中,从而完成XML文档到数据库的映射。上述映射算法可以采用W3C文档对象模型DOM(Document Object Model,DOM)表示内存中的XML文档,建立一个遍历XML文档的栈后,以相反的顺序把XML文档映射到关系数据库主表和从表的各字段元素压入栈,以便保留它们在doc_structure字段里的顺序。 归纳起来,本专利技术与现有技术相比,具有以下显著优点:1.存储空间占用少。由于本方法将XML文档仅映射为两个关系数据库表,且主表中存储XML文档的结构信息为字符串形式,与其它方法相比,较大程度节省了存储空间。2.查询效率高。当对XML文档进行查询时,首先将对XML文档的查询语句转化为对关系数据库表的查询语句SQL,然后采用SQL对关系表查询时,只需要做一下字符串匹配操作来判断节点的父子关系,而不需要对大量的关系表进行频繁的连接操作,因此显著提高了查询效率。3.动态更新容易。如果增加子树节点(元素和属性),仅仅是在字符串的合适位置做插入操作即可本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种XML文档到数据库的映射方法,其特征在于包括以下步骤:
步骤1、建立有序标识树——根据XML文档节点结构,将XML文档映射成对应的有序标识树;
步骤2、在数据库中设置主、从表——根据步骤1所建立的有序标识树,在数据库中设置存储基于文档结构信息的主表和存储基于文档内容的从表;
步骤3、XML文档映射到数据库——将XML文档的有序标识树逐项分别映射到数据库相应的主表和从表对应的字段中,从而完成XML文档到数据库的映射。
2.根据权利要求1所述的XML文档到数据库的映射方法,其特征在于:所述有序标识树由按祖先后裔顺序连接的元素节点、与叶节点连接的文本值、以...
【专利技术属性】
技术研发人员:宋余庆,陈健美,鉴保瑞,耿飚,
申请(专利权)人:江苏大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。