一种基于关系的XML原型系统的设计与实现.docVIP

一种基于关系的XML原型系统的设计与实现.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种基于关系的XML原型系统的设计与实现.doc

一种基于关系的XML原型系统的设计与实现 【摘 要】本文探讨了XML文档到关系数据库的转换问题,制定了一系列映射规则并给出若干映射算法。 【关键词】XML;关系数据库;转换 随着XML的广泛应用,XML正在成为数量庞大的数据源,如何利用RDBMS强大数据管理功能管理XML数据已成为一个研究热点,由于XML数据与关系数据库的数据模型不同,实现XML数据与数据库数据的相互转换显得尤为重要。 1 数据转换的设计方案 将XML文档映射为关系模式进行存储,有两大类映射方法:模型映射和结构映射。对于模型映射,利用xml文档中的数据模型的结构显性或隐性地映射成其他数据模型的结构,要实现数据库和xml文档间的数据转换的关键是在数据库模式和schemas和DTD之间建立映射关系,用具体的模型来实现数据间的映射。 1.1 边模型映射方法 一个XML文档是一个树状结构,能够用一个有序有向边标记图来表示,按深度有限的原则从树叶往树根搜索,每碰到一个内部节点则创建对应的抽象数据类型,直到根节点的直接子节点,创建基于次根节点所对应的抽象数据类型对象,该对象就是根节点对应的对象,最后将XML文档中各元素的属性值填入对象中的相应域。 有了XML图之后,用来存储边信息的边表有三种设计方案: Edge、 Binary、 Universal 三种边表设计方案和两种值表设计方案,一共有六种存储模式。通过对结构关系数据库大小,执行不同类型XML查询的执行时间,从关系数据重构XML文档的时间等三个性能参数进行量化分析,结论是:Binary边表带内联值表的存储模式能获得最好的综合性能。 1.2 数据模型 一个XML文档可以被建模为一个树,因此,一个XML文档的集合可以被建模为一个森林。一个根结点的树指向一个XML文档,一个根结点是非文档结点的树指向一个XML文档片段。因此一个XML查询即可以在一个XML文档树或文档森林上进行,也可以在一个XML文档片段或森林片段上进行。 如何从一个DTD生成一个关系型结构?对于每种包含元素或者混合内容的元素类型,新建一个表和一个主键字段,对于每个包含混合内容的元素类型,创建一个单独的表格,其中存放未析数据,通过父元素主键链接到父表格,对每个有元素或者混合内容的子元素,通过父元素主键将父元素表格和子元素表格相连接。 如何从一个关系型的结构生成一个DTD?对于每个表新建一个元素,对于表格中的每个字段,新建一个属性或者是只包含未析数据的子元素;对于每个表格字段中提供主键的主键/外键的关系都新建一个子元素。 1.3 扩展先序列表 为了有效地实现对文档树中任意两个结点对之间的祖先/后裔关系,利用扩展先序列表写出它的先序遍历序列,然后根据图中各个节点左右孩子的状况进行加以遍历。基于节点的索引本质上即是将XML数据分解为数据单元的记录集合,同时在记录中保存该单元在XML数据中的位置信息。通过编码技术索引每一个节点,节点之间的结构关系通过编码可以在常数时间内确定它可以很好地支持正则路径表达式。 2 XML文档到关系数据库的映射方案 2.1 XML文档到关系数据库映射 XML文档到数据库的映射往往忽略XML文档的物理结构(例如实体、引用文本部分及编码信息)及某些逻辑结构(如处理指令、注释以及子元素和模型组在元素声明中出现的顺序)。因为数据库和应用程序只关心XML文件中的数据,因此在映射算法中先不考虑这些物理结构和逻辑结构的映射。 2.2 文档转换到关系数据库的算法描述 根据上述映射规则,可以将元素之间的树型关系存入RDBMS。不过,首先需要对XML文档进行解析以获得DOM树,并且要给DOM树中的每个元素节点分别绑定唯一的ID(这在遍历DOM树时实现)。事先建一张元素关系表,表的字段分别代表当前元素节点的ID、当前元素节点的父节点ID、当前元素节点的名称。然后根据上述算法对XML文档进行解析。 2.3 关系数据库中的数据恢复成XML形式的算法描述 根据上述的存储策略,可以从关系数据库中将数据恢复成XML形式:根据元素关系表来建立XML文档中元素的嵌套关系,并分别查询元素内容表和属性值表来将各元素的内容和各元素的属性及值插入元素节点。 3 原型系统的设计与实现 这个原型系统实现了两种方法的存储,一种是以块结构存储,第二种以模型为基础的映射存储,通过原型的实现让我们可以更加清楚直观的理解XML存储到关系数据库的概念。 整个原型系统的工作流程是将读入的XML文件经过解析遍历,并在遍历的同时进行判断结点类型,插入相应的关系数据库表中。 3.1 功能模块 (1)classRdb主要用于创建数据库的连接。 (2)classtest主要用于实现解析文档并映射到关系数据库的工作,这是对于上述算法的具体实现,主要实现函数有test(),stepThrough(Node sta

文档评论(0)

fa159yd + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档