XML拆分的优缺点

日期: 2009-12-15 作者:Matthias Nicola and Pav Kumar-Chatterjee翻译:孙瑞 来源:TechTarget中国 英文

要理解XML shredding的概念,可以参考下面的图示。在这个例子中,XML文档中包含了客户名称、地址以及电话等信息,它们被映射到两个关系表当中。文档可以包含多个电话元素,因为客户与电话是一对多的关系(手机、家庭座机、办公室座机)。所以,电话号码就被拆分到一个单独的表当中。

在关系型目标架构中,每一个重复的元素(如电话信息)都可以分配到额外的一个表当中。假设客户信息还包含多个Email地址、多个账户、最近订单列表以及每个订单对应的多种商品等重复元素,那么关系型目标架构中的表数量将急剧增加。将XML文档拆分成数量巨大的表,你的逻辑业务对象中会产生复杂的碎片,直接导致应用程序开发的难度与出错率提……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

要理解XML shredding的概念,可以参考下面的图示。在这个例子中,XML文档中包含了客户名称、地址以及电话等信息,它们被映射到两个关系表当中。文档可以包含多个电话元素,因为客户与电话是一对多的关系(手机、家庭座机、办公室座机)。所以,电话号码就被拆分到一个单独的表当中。在关系型目标架构中,每一个重复的元素(如电话信息)都可以分配到额外的一个表当中。假设客户信息还包含多个Email地址、多个账户、最近订单列表以及每个订单对应的多种商品等重复元素,那么关系型目标架构中的表数量将急剧增加。将XML文档拆分成数量巨大的表,你的逻辑业务对象中会产生复杂的碎片,直接导致应用程序开发的难度与出错率提升。而查询拆分的数据或重新组装原始文档需要复杂的多路连接。

  XML 文档拆分示例图

  相反地,根据XML文档的复杂程度、可变性以及用途,适当地进行拆分或许也是一个不错的选择。下表总结了将XML文档拆分成关系表的优缺点。

  在许多XML应用场合,XML数据的结构与使用率都决定了拆分工作的困难。这也就是为什么DB2支持XML列,使得用户无需转换就可以对XML数据进行索引与查询。有些时候,你会发现部分拆分或XML混合存储可以最大地满足你的应用需求。

  •   部分拆分的概念,就是将XML文档中元素或属性的一个子集拆分成关系表。当应用不需要XML的所有数据值时,这样的方法将很有效。
  •   XML混合存储就是当向一个XML列插入一个XML文档时,抽取选定的元素或属性并将它们冗余存储在关系列中。

  无论你选择全部拆分还是部分拆分XML文档,DB2都提供强大的功能,可以实现以下效果:

  •   再插入关系列之前,执行数据值的自定义转化。
  •   将相同的元素或属性拆分到表的多个列中。
  •   将不同的元素或属性拆分到表的同一列中。
  •   指定条件来管理是否对相应元素进行拆分。
  •   在拆分过程中使用XML Schema进行XML文档验证。
  •   同拆分数据一同存储完整XML文档。

翻译

孙瑞
孙瑞

相关推荐

  • Oracle Hyperion 11.1.2.1 迁移特性与问题

    Oracle Hyperion 11.1.2.1包含可以简化移植的新工具,它们在很多情况下能够减少操作步骤。但还是有诸如Essbase Studio的一些问题必须在以后的版本中进行修复。

  • SQL Server 数据访问策略:CLR

    CLR在很大程度上解放了TSQL逻辑运算能力不足的问题,而且CLR拥有丰富的语言支持,C#,VB.NET等;在.Net Framework基础上,拥有复杂的过程逻辑和计算。

  • 在Oracle数据库中使用XML数据获取业务信息

    只需要通过从一个XML表中提取数据,我们就能发送XML格式化的采购订单给下游使用,这与需要更多转换步骤的多个关系型表才能实现形成明显对比。

  • 详解如何将关系型数据发布为XML

    抽取是通过使用XMLType视图实现的,本质上是物化为SQL执行的一个存储查询结果。XMLType视图允许文档为中心的应用程序把底层的关系结构查询为虚拟的XML文档。