APP下载

ASCM系统中XML数据关系化存储研究

2011-04-23王丽娟张光辉

河南农业大学学报 2011年2期
关键词:结点文档农户

陈 姗,王丽娟,张光辉

(河南农业大学信息与管理科学学院,河南郑州450002)

XML(eXtensible Markup Language,可扩展标记语言)具有自定义性、可移植性及其可扩展性等优势,便于表达各种类型的数据,常作为数据存储和交换的中介[1~4],同时 XML将其数据内容与应用程序分开存储,可大大提高数据交换和联合查询的效率.关系数据库技术在大规模数据处理中的高效性、稳定性、可移植性和可扩展性是其他技术无法比拟的,该技术可在一个系统中同时处理XML数据和关系数据.XML和关系数据库技术的结合可解决异构系统的数据集成问题.

目前XML数据在关系数据库中的存储方法很多,有的是直接把XML数据进行转换存储到关系数据库中,有的先把XML文档模式映射到关系模式,然后再把XML数据存储到映射后的关系模式中.国 内 外 研 究 学 者 提 出 Edge,STORED[5],DTD[6],XPARENT[7]等许多技术方案.但目前的研究成果主要应用于工业领域,涉及农业方面的应用较少,特别是将XML数据关系化存储技术应用到农业供应链管理ASCM(Agriculture supply chain management)系统方面还鲜见报道.

ASCM系统的突出特点是数据更新速度快,其查询效率的高低直接影响到农资供应商、种植商(农户)、批发市场、零售商、消费者等主体的经济效益.为高效率的实现ASCM系统中各农业数据库系统的不同来源、格式、特点、性质的异构数据存储,基于XML的ASCM系统信息集成框架,本文提出一种XML数据到关系数据的有效转换方法,尽可能多地保持XML模式信息以便文档重构,为建立统一的农业资源信息共享平台[8~11]奠定基础.

1 ASCM系统框架结构

基于XML的ASCM系统的框架结构共分为应用层、集成层、数据层(如图1所示).应用层:为农户等主体提供统一的界面查看全局模式;并以XML的格式显示来自底层的查询结果.集成层:是应用层和数据层之间传递数据的工具.由中介器和包装器构成,中介器和包装器通过ORB/IIOP通信.查询分析器接收并检查查询语句的语法,查询分解器根据元数据字典将全局查询分解成针对各个局部数据库的若干子查询并交给相应的包装器,集成器将包装器返回的查询结果整合后以全局模式的形式返回给用户,元数据字典存储数据源的链接信息、公共数据模型以及公共数据模型与数据源的映射规则.包装器负责将子查询转换成符合每个数据源模型和模式的查询,并把查询结果转换成XML格式然后返回给中介器.数据层:由分布的异构数据源构成,是整个集成系统的数据提供者.主要功能是接受农户等主体的具体查询请求,并将查询结果以关系数据的形式返回给包装器.

图1 ASCM系统框架Fig.1 ASCM system framework

2 ASCM系统中XML数据到关系数据转换

ASCM系统中XML文档存储的关键是如何建立XML文档在关系数据库中的关系表,其转换过程如图2所示.主要包括模式转换和数据转换2大部分.

图2 XML数据到关系数据表的转换过程Fig.2 Conversion process of XML data to relational data

2.1 模式转换

在分析DTD模式文档的基础上,采用基于模式的结构映射方法,首先简化并解析DTD文档,然后将简化后的DTD文档绘制成DTD图并存储在ASCM系统的映射模型库中,根据 DTD图产生DTD内联图,同时存储到映射模型库和RDB中.DTD内联图到关系模式的映射方法存储在ASCM系统映射模型库中,方便相应的XML文档根据DTD内联图进行模式转换.

2.2 数据转换

根据XML实例文档建立XML树,并存储在RDB中,根据模式转换过程中产生的DTD内联图和ASCM系统映射模型库中模式映射的方法,将XML数据存储到相应的关系表中.

3 ASCM系统中XML模式到关系模式的转换

ASCM集成系统的主要任务是完成XML数据和关系数据的相互转换,其中的关键部分是实现XML模式到关系模式的转换,转换过程不仅要实现数据结构的转换,还要考虑到XML数据的语义保持和自身的顺序性、层次性等特点.基于ASCM系统的模式转换步骤如下.

3.1 DTD图到DTD内联图的转换

DTD文档的结构可以由图G=(V,E)来表示.其中V是图中结点的集合,E是图中边的集合.结点v表示元素或属性信息,e表示结点之间的关系.每个结点由对应元素或属性的名称标注,属性名称前加@以示区分.每条边e包含以下信息:“,”:只有一个值;“* ”:有0到多个值;“+”:有 1到多个值;“?”:多个值选择.默认情况下边信息为“,”.

农户数据库信息XML文档对应的DTD如farmerInfo.dtd 所示,根据 DTD 的简化规则[12,13]简化DTD,简化后的DTD按照转换规则转换为DTD图:元素和属性直接转换为DTD图的结点,元素与子元素或属性的关系转换为结点之间的边,箭头由父元素指向子元素或属性.转换后的农户信息DTD图如图3所示.

farmerInfo.dtd

<!ELEMENT农户信息(农户*)>

<!ELEMENT农户(名字,农资需求+,农产品出售*,地址*,电话)>

<!ATTLIST农户id ID#REQUIRED>

<!ELEMENT名字(#PCDATA)>

<!ELEMENT农资需求(名字*,数量*)>

<!ELEMENT农产品出售 (名字*,数量*)>

<!ELEMENT数量(#PCDATA)>

<!ELEMENT地址(城市,地区)>

<!ELEMENT城市(#PCDATA)>

<!ELEMENT地区(#PCDATA)>

<!ELEMENT电话(#PCDATA)>

图3 农户信息DTD图Fig.3 Farmers'information DTD figure

ASCM系统数据量大,信息更新速度快,查询效率的高低直接关系到农户、农资供应商、零售商等主体的经济效益,因此应该最大程度地提高查询效率.如果将DTD图中的结点直接映射为关系表,那么对于ASCM系统数据库中嵌套较深、子元素或属性个数较多的DTD文档来说,在查询时会过多的使用连接操作,从而影响查询效率的提高.对于DTD图中只有唯一值的结点,即边信息是“,”的结点,我们称之为可内联结点,可以将该结点信息内联到父结点中保存,以此达到减少生成关系表数目的目的.本文在DTD图的基础上采用内联方法实现XML模式到关系模式的转换,该方法中最重要的是实现DTD图到内联图的转换,具体转算法如图4.

根据DTD内联图构造算法,对农户信息DTD图进行深度优先遍历,根据图中的每个结点的信息以及结点之间边的信息进行处理,得到的农户信息DTD内联图如图5所示.

3.2 DTD内联图到关系模式的转换

在农户信息DTD内联图的基础上实现XML模式到关系模式的转换,主要考虑2个方面:一方面是充分利用图中结点的信息;另一方面还要考虑XML数据的顺序性和层次性,为以后XML数据的重构做好准备.

DTD内联图到关系模式的转换思想是:将内联图中每个结点e转换为关系模式的一个表T,e中可内联的结点转换为表T中的字段.如果结点e不是根结点,添加parentID字段来存储父结点位置;对于入度大于1的共享结点e,添加parentType字段来保存父结点的类型;如果e是普通的元素类型结点,添加endID字段来存储最后一个子元素的编号;如果e是叶子元素类型结点,则在e对应的表中添加字段名作为字段来存储结点本身.对于可内联的结点f,如果f是元素类型而不是属性类型,添加字段f.ID和f.endID存储本元素相关信息;如果f是属性或叶子元素类型结点,添加同名字段名来存储结点本身.如果e是元素结点,标注e.ID作为关系e的主键,否则让e.ID和e.parentID共同作为关系e的主键.根据上述转换策略,可以把农户信息DTD内联图转换为关系模式,得到的结果见图6.

图6 农户信息关系模式Fig.6 Farmers'information relational schema

4 ASCM系统中XML数据到关系数据的转换

4.1 XML 树的构造

模式转换过程中用DTD图来表示XML文档的模式信息,数据转换中使用XML树表示XML文档的数据信息.XML树构造方法和DTD图构造方法相同,结点表示XML文档中的元素,边表示元素间的父子关系.ASCM系统中农户信息实例文档见图7,按照全局顺序编码方法[14]对应的XML树见图8.

4.2 XML文档信息到关系表的转换过程

根据模式转换过程中产生的DTD内联图、关系模式和数据转换过程中产生的XML树,可以将XML文档数据插入到相应的关系表中.具体转换思想是:遍历XML树中的每个结点元素e,求出它在DTD内联图中对应的结点d,如果d是不可内联的结点,说明e可能包含有其他的元素或属性,这些元素或属性应保存到d对应的表中;如果d是可内联的,e包含的信息保存在父结点所对应的表中.

根据模式转换结果图6可知farmerInfo.xml可产生7个关系表,根据图6的关系表和字段,参考转换思想,依次添加图7和图8的数据信息,得到农户信息farmerInfo.xml生成的关系数据表,如表1~7所示.字段ID、内联结点f的字段f.ID均表示元素结点的全局顺序;如果元素结点e.ID=e.endID,表示元素结点e在XML树T中是一个叶子结点;parentType表示父结点类型,主要用于区分共享结点的父结点来源,由父结点名称表示.其中表5地址表及其字段对应图6中的地址关系模式,元组值(11,2,13,12,12,郑州市,13,13,金水区)表示地址元素结点的全局顺序为11,它的父元素结点编号为2(即农户结点),最后一个子元素为地区,地址结点的内联结点城市的全局顺序为12,该城市结点的最后一个子元素编号为12,因此该城市结点是叶子结点,内容为“郑州市”,地址结点的内联结点地区的全局顺序为13,该地区结点是叶子结点,内容为“金水区”.表6名字表及其字段对应图6中的名字关系模式,元组值(6,5,6,农资需求,碳酸氢铵)表示该名字结点的全局顺序为6,父元素结点编号是5(即农资需求),该名字结点是叶子结点,父元素类型为农资需求,内容为“碳酸氢铵”.

表1 农户信息表Table1 Farmers'information table

表2 农资需求表Table2 Products demand table

表3 农产品出售Table3 Products sales table

表4 农户表Table4 Farmers'table

表5 地址表Table5 Address table

表6 名字表Table6 Name table

表7 数量表Table7 Amount table

5 结语

本研究针对ASCM系统数据量大、数据更新快等特点,在模式映射的基础上提出一种内联算法,将XML数据存储到关系数据表中,可较大程度减少生成的关系表数量,直接提高ASCM系统数据的查询效率.整个转换过程包括模式转换和数据转换2部分,模式转换过程中重点介绍了DTD内联图的构造算法和DTD内联图到关系模式的转换思想,整个转换过程充分考虑到了XML数据顺序性、查询效率等问题,尽量保证信息的完整性,为实现ASCM系统信息共享提供一种有效的方法和手段.

[1] 孙会峰,万会蕊.基于XML的粮食储备库异构信息集成平台设计[J].河南工业大学学报:自然科学版,2008,29(4):60-63.

[2] 许 峰,张雪洁,李凤生,等.XML数据集成平台的研究与应用[J].计算机工程与设计,2009,30(13):3212-3215.

[3] 邵秀丽,韩建彬,阎仲蹼.基于XML的异构数据源间数据交换的实现研究[J].南开大学学报:自然科学版,2007,40(3):9-14.

[4] 赵芳云.基于XML的异构数据源查询系统设计[J].计算机应用与软件,2009,26(8):185-188.

[5] DEUTSCH A,FERNANDEZ M,SUCIU D.Storig semistructured data with STORED[C]//DELIS A,FALOUTSOSC,GHANDEHARIZADEH S.Proceedings of ACM SIGMOD International Conference on Management of Data.Philadelphia Pennsylvania:ACM Press,1999:431-442.

[6] SHANMUGASUNDARAM J,TUFTE K,HE G,et al.Relational databases for querying XML documents:Limitations and Opportunities[C]//ATKINSON M P,ORLOWSKA M E,VALDURIEZ P,et al.Proceedings of 25th international conference on very large data bases.Edinburgh,Scotland:Morgan Kaufmann Publishers Inc,1999:302-314.

[7] JIANG H,LU H,WANG W.Path materialization revisited:an efficient storage model for XML data[C]//WECKERT J.Proceedings of the 13th australasian database conference. Darlinghurst, Australia:Australian Computer Society Inc.,2002:85-94.

[8] 陈 桦,麻风梅,韩艳艳.基于XML的异构数据集成模式研究[J].微电子学与计算机,2009,26(1):137-139.

[9] 袁晓洁,于士涛,李志梁.基于Mediation的异构数据集成系统HDIS设计与实现[J].计算机工程与应用,2006,42(1):162-165.

[10]朱 静,陈忠良.异构数据源集成的实现[J].内蒙古大学学报:自然科学版,2005,36(4):458-461.

[11]张 丽,田银磊.基于PDA的小麦测土配方施肥信息移动查询系统[J].河南农业大学学报,2010,44(3):340-342.

[12]温立东,黄上腾.基于DTD的XML文档到关系模式的映射规则研究[J].计算机工程与应用,2006,42(24):164-166

[13]张先利,陈玉兰,于建华.基于图的XML DTD到关系模式的映射[J].计算机应用,2008,28(2):123-128.

[14] TATARINOV I,VIGLAS S,ALMADEN K,et al.Storing and querying ordered XML using a relational database system[C]//FRANKLIN M J,MOON B,AILAMAKI A.Proceedings of the 2002 ACM SIGMOD international conference on management of data.Madison,Wisconsin:ACM Press.2002:204-215.

猜你喜欢

结点文档农户
农户存粮,不必大惊小怪
浅谈Matlab与Word文档的应用接口
基于八数码问题的搜索算法的研究
让更多小农户对接电商大市场
有人一声不吭向你扔了个文档
Ladyzhenskaya流体力学方程组的确定模与确定结点个数估计
粮食日 访农户
农户存粮调查
基于RI码计算的Word复制文档鉴别
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat