CN102456053B - 一种xml文档到数据库的映射方法 - Google Patents

一种xml文档到数据库的映射方法 Download PDF

Info

Publication number
CN102456053B
CN102456053B CN 201010527890 CN201010527890A CN102456053B CN 102456053 B CN102456053 B CN 102456053B CN 201010527890 CN201010527890 CN 201010527890 CN 201010527890 A CN201010527890 A CN 201010527890A CN 102456053 B CN102456053 B CN 102456053B
Authority
CN
China
Prior art keywords
xml document
document
database
node
xml
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN 201010527890
Other languages
English (en)
Other versions
CN102456053A (zh
Inventor
宋余庆
刘哲
刘毅
陈健美
鉴保瑞
耿飚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiangsu University
Original Assignee
Jiangsu University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jiangsu University filed Critical Jiangsu University
Priority to CN 201010527890 priority Critical patent/CN102456053B/zh
Publication of CN102456053A publication Critical patent/CN102456053A/zh
Application granted granted Critical
Publication of CN102456053B publication Critical patent/CN102456053B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种XML文档到关系数据库的映射方法,属于计算机数据处理领域。该方法通过建立有序标识树、建立主、从表以及将XML文档的有序标识树逐项分别映射到关系数据主表和从表对应的字段中,从而完成XML文档到数据库的映射。本发明与传统映射方法相比,不仅可以有效地保持XML文档的结构,而且可以显著节省存储空间,还能提高数据查询效率,具有实际应用价值。

Description

一种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.动态更新容易。如果增加子树节点(元素和属性),仅仅是在字符串的合适位置做插入操作即可,而XML文档原有的标识不需要更改,因此动态更新非常容易。
4.通用性强。由于最终依据建立的有序标记树来建立数据库表,因此不仅适用于XML文档数据,而且还适用于任何树状数据结构,通用性较强。
附图说明
    下面结合附图对本发明作进一步的说明。
图1 为本发明实施例一的XML文档;
图2为图1中XML文档的树形示意;
图3 为图1XML文档到关系数据库映射算法示意图;
图4为图2对应的documents表;
图5为图2对应的tags表;
图6为插入的XML文档片段;
图7为图6等价的tags表记录片段。
具体实施方式
为使本发明的目的、优点以及技术方案更加清楚明白,以下通过具体实施例,并结合附图,对本发明进一步详细说明。
步骤1、建立有序标识树。对于图1中的XML文档,图2给出了相应的树形结构。
根据XML文档节点的结构,将XML文档映射成对应的有序标识树,该有序标识树由按祖先后裔顺序连接的元素节点(元素节点可以包含子元素节点)、与叶节点连接的文本值、以及与相应元素节点连接的属性节点构成。给XML文档节点(元素和属性)赋予唯一的标识。可以对节点进行如先序,中序或后序遍历。
XML文档D可以表示为一棵有序标识树T=(V,v0,∑,type,tag,val,≤),其中:V是XML节点的集合;v0∈V是树的根节点;有穷字母表∑是文档D的元素和属性名称组成的集合;函数type:V→{elem,attr,text}确定节点类型,type(v)=elem若v为元素,type(v)=attr若v为属性,type(v)=text若v为文本;Ve={v|v∈V∧type(v)=elem}表示元素节点集合,Va={v|v∈V∧type(v)=attr}表示属性节点集合,Vt={v|v∈V∧type(v)=text}表示文本节点集合;函数tag:Ve∪Va→∑返回元素或属性节点的名称;函数val:Va∪Vt→str返回属性或文本节点的值,str是XML文档中所有合法字符串的集合。二元关系≤∈V2定义XML文档顺序,在文档D中如果节点u出现在v之前或u=v,则(u,v)∈≤或记为u≤v。
此逻辑数据模型只定义了构成XML文档的主要数据:元素、属性和文本,而忽略处理指令、注释等次要数据,因此V=Ve∪Va∪Vt。元素节点可以有0个、1个或多个子元素节点,子元素节点的类型可以是元素、属性或文本;属性和文本节点没有子元素节点。T中每个元素和属性节点都被赋予唯一的标识,称为节点id。对于任意v∈V,其节点id记作id(v)。节点集合可以表示为节点id的集合。
根据定义1可以写出上述XML文档的逻辑数据模型T=(V,v0,∑,type,tag,val,≤),其中:
Figure 614738DEST_PATH_IMAGE001
步骤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文档到数据库的映射。
其中,本实施例主表doc_structure字段的规则如下:
⑴ doc_structure字段由一系列长序列相关键组成;
⑵ 每个键以字母表中字母为开始,元素用“T”,属性用“A”,必须依照顺序来定界键。字母后面紧跟着一个数值型数字代表tag_id;
⑶ 如果元素中有一些属性,那么这个键在doc_structure中的标识将由下面的一些键定义这些属性。
⑷ 如果元素中含有一些子元素,那么这些子元素将由尖括号括起来的键字符串表示。
根据上述映射规则,本映射算法可以采用W3C文档对象模型DOM(Document Object Model,DOM)表示内存中的XML文档,建立一个遍历XML文档的栈后,以相反的顺序把XML文档映射到关系数据库主表和从表的各字段元素压入栈,以便保留它们在doc_structure字段里的顺序。该映射算法的详细描述如图3所示。
通过上述算法,XML文档的所有结构信息以及节点信息都被映射到了关系数据库表中。
为了更详细的阐述上面介绍的映射算法,结合图1和图2给出具体的算法示例。本实施例中,树里的每个节点(元素和属性)标识假定按照先序遍历的。经过转换之后,这个文档将在documents表里有一条记录显示,如图4中documents表所示的doc_id为50,图5中tags表包含文档内容的所有记录。此时文档对应的doc_structure字段如下:T100<T101A102<T103T104T105A106A107>T108A109<T110T111T112A113A114>>。
根据上述方法能很容易保持文档的结构,例如要删除id为101的作者的sex属性,这个属性是A107,所需做的仅是简单的从doc_structure字符串中删除子串A107操作。假设需要在已经存在的标记之间新增一个book标记,仅仅是在上面的字符串的合适位置做插入操作即可,如新增一本书其结构如图6所示,相应的tags表的记录片段如图7所示,其等价的键字符串是T150A151<T152T153>。这个新的子串将在合适的位置被插入到doc_structure,来保留文档的原先次序。此时doc_structure字段将变成:T100<T101A102<T103T104T105A106A107> T150A151<T152T153>T108A109<T110T111T112A113A114>>。
除上述实施例外,本发明还可以有其他实施方式。凡采用等同替换或等效变换形成的技术方案,均落在本发明要求的保护范围。

Claims (3)

1.一种XML文档到数据库的映射方法,其特征在于包括以下步骤:
步骤1、建立有序标识树——根据XML文档节点结构,将XML文档映射成对应的有序标识树;
步骤2、在数据库中设置主、从表——根据步骤1所建立的有序标识树,在数据库中设置存储基于文档结构信息的主表和存储基于文档内容的从表,所述主表由用于标记XML文档的主键字段和用于以编码字符串描述该文档节点结构的文本字段构成;所述从表由用于连接主表的外键字段、用于标记主键字段的主键标识字段、用于标记文档内容名或属性的名字段,以及用于标记文档内容的文本字段构成;
步骤3、XML文档映射到数据库——将XML文档的有序标识树逐项分别映射到数据库相应的主表和从表对应的字段中,从而完成XML文档到数据库的映射。
2.根据权利要求1所述的XML文档到数据库的映射方法,其特征在于:所述有序标识树由按祖先后裔顺序连接的元素节点、与叶节点连接的文本值、以及与相应元素节点连接的属性节点构成。
3.根据权利要求2所述的XML文档到数据库的映射方法,其特征在于:所述步骤3的映射采用W3C文档对象模型DOM表示内存中的XML文档,建立一个遍历XML文档的栈后,以相反的顺序把XML文档映射到关系数据库主表和从表的各字段元素压入栈。
CN 201010527890 2010-11-02 2010-11-02 一种xml文档到数据库的映射方法 Expired - Fee Related CN102456053B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010527890 CN102456053B (zh) 2010-11-02 2010-11-02 一种xml文档到数据库的映射方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010527890 CN102456053B (zh) 2010-11-02 2010-11-02 一种xml文档到数据库的映射方法

Publications (2)

Publication Number Publication Date
CN102456053A CN102456053A (zh) 2012-05-16
CN102456053B true CN102456053B (zh) 2013-08-14

Family

ID=46039250

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010527890 Expired - Fee Related CN102456053B (zh) 2010-11-02 2010-11-02 一种xml文档到数据库的映射方法

Country Status (1)

Country Link
CN (1) CN102456053B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102768673B (zh) * 2012-06-12 2016-04-20 北大方正集团有限公司 一种可扩展的xml数据节点标识号码的编码方法及装置
CN103514291B (zh) * 2013-09-29 2017-02-08 西安交通大学 一种文本中树形结构数据的显示方法
CN110222236B (zh) * 2016-06-06 2021-05-04 福建榕基软件股份有限公司 Xml报文模板的生成及更新方法及其系统
CN106227879A (zh) * 2016-08-03 2016-12-14 王华勇 家谱标准数据库建立方法及系统
CN106354834B (zh) * 2016-08-31 2020-01-31 广州慧睿思通信息科技有限公司 一种xml数据差异化储存对全文检索的优化方法
CN107943763A (zh) * 2017-11-29 2018-04-20 广州迈安信息科技有限公司 一种大文本数据处理方法
CN108170759B (zh) * 2017-12-22 2020-10-23 平安养老保险股份有限公司 投诉案件处理的方法、装置、计算机设备及存储介质
CN108228774A (zh) * 2017-12-28 2018-06-29 重庆邮电大学 一种关系模型到xml的转化方法
CN108319684A (zh) * 2018-01-31 2018-07-24 国信优易数据有限公司 一种可扩展标记语言xml文件的存储方法及装置
CN108984713B (zh) * 2018-07-09 2022-07-05 中国银行股份有限公司 一种xml文件处理方法及装置
CN110955714B (zh) * 2019-12-03 2023-05-02 中国银行股份有限公司 一种将非结构化文本转化为结构化文本的方法及装置
CN111125439A (zh) * 2019-12-06 2020-05-08 北京信息科技大学 一种xml数据处理方法、系统和存储介质
CN113051438A (zh) * 2021-03-24 2021-06-29 中国工商银行股份有限公司 一种数据调用方法、装置及设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1560766A (zh) * 2004-02-17 2005-01-05 北京大学 面向可扩展标记语言模式的键约束自动生成方法
CN101984434A (zh) * 2010-11-16 2011-03-09 东北大学 基于可扩展语言查询的网页数据抽取方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101901234A (zh) * 2009-05-27 2010-12-01 国际商业机器公司 将xml数据转换为资源描述框架数据的方法和系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1560766A (zh) * 2004-02-17 2005-01-05 北京大学 面向可扩展标记语言模式的键约束自动生成方法
CN101984434A (zh) * 2010-11-16 2011-03-09 东北大学 基于可扩展语言查询的网页数据抽取方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Native XML数据库存储模型研究;盛惠娟;《中国优秀硕士学位论文全文数据库》;20051231;第23-24页 *
盛惠娟.Native XML数据库存储模型研究.《中国优秀硕士学位论文全文数据库》.2005,第23-24页.

Also Published As

Publication number Publication date
CN102456053A (zh) 2012-05-16

Similar Documents

Publication Publication Date Title
CN102456053B (zh) 一种xml文档到数据库的映射方法
CN102033954B (zh) 关系数据库中可扩展标记语言文档全文检索查询索引方法
Kaushik et al. Exploiting local similarity for indexing paths in graph-structured data
US7461074B2 (en) Method and system for flexible sectioning of XML data in a database system
Härder et al. Node labeling schemes for dynamic XML documents reconsidered
US7886224B2 (en) System and method for transforming tabular form date into structured document
US20060047646A1 (en) Query-based document composition
CN102819585B (zh) 一种xml数据库文档控制方法
CN116204660B (zh) 一种多源异构数据驱动的领域知识图谱构建方法
US20100146005A1 (en) Method and apparatus for storing document data in docbase management system
US8543614B2 (en) Packing nodes into records to store XML XQuery data model and other hierarchically structured data
CN112000851B (zh) 一种键值模型、文档模型和图模型数据的统一存储方法
CN101963993B (zh) 一种数据库单表记录快速查找的方法
Leonardi et al. DTD-Diff: A change detection algorithm for DTDs
Liu et al. Dynamically querying possibilistic XML data
CN101183376A (zh) 基于关系代数范围运算的xml数据库查询方法
CN101826088A (zh) 信息模型配置及存储装置、方法
Sundaram et al. A change detection system for unordered XML data using a relational model
CN110019306A (zh) 一种基于xml格式文件的sql语句查找方法及系统
Hsu et al. UCIS-X: an updatable compact indexing scheme for efficient extensible markup language document updating and query evaluation
Dweib et al. Schemaless approach of mapping XML document into Relational Database
Maluf et al. Netmark: A schema-less extension for relational databases for managing semi-structured data dynamically
Bin-Thalab et al. TMIX: Temporal model for indexing XML documents
Kim et al. A partition index for XML and semi-structured data
Marks et al. Optimizing Queries for Web Generated Sensor Data.

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent for invention or patent application
CB03 Change of inventor or designer information

Inventor after: Song Yuqing

Inventor after: Liu Zhe

Inventor after: Liu Yi

Inventor after: Chen Jianmei

Inventor after: Jian Baorui

Inventor after: Geng Biao

Inventor before: Song Yuqing

Inventor before: Chen Jianmei

Inventor before: Jian Baorui

Inventor before: Geng Biao

COR Change of bibliographic data

Free format text: CORRECT: INVENTOR; FROM: SONG YUQING CHEN JIANMEI JIAN BAORUI GENG BIAO TO: SONG YUQING LIU ZHE LIU YI CHEN JIANMEI JIAN BAORUI GENG BIAO

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130814

Termination date: 20151102

EXPY Termination of patent right or utility model