原生XML数据型态与关系型数据库合作紧密

2008-12-4    | |
打印本文章
RSS

导读:原生XML数据型态与关系型数据库合作紧密,XML比关联性数据库更具弹性 ,XML透过元素和属性描述数据,以及不需转译编码的文字型态,保留XML原生数据格式成为主流。

关键词:XML 数据型态 数据库 数据 数据格式

正在加载数据...

  从早期将XML转换为关系型数据表或大型对象,到今日转向原生XML数据型态,关系型数据库与XML之间的合作日益紧密。

  10年前XML开始起草并向W3C提案,而在1998年后成为W3C的标准。事隔10年之后,XML已经随着网络应用日益普及,更在Web Services和SOA推波助澜下,可以预见XML的角色将会更形重要。

  观察XML的重要发展趋势之一,是XML和关系型数据库的合流。IBM去年6月在美国发表的新版本数据库DB2 9.0,便以原生XML数据型态和存取技术作为改版重点之一。

  事实上,微软于2005年年底推出的SQL Server2005同样也在XML上下了一番功夫,改变过去将XML转换成关系型数据表的存放方式,让开发人员可以用XML的方法使用储存在数据库中的XML文件或 片段。其它如Oracle或Sybase等数据库也都具备在数据库中处理XML的技术和工具。由于XML部分技术仍在审议,因此每家数据库厂商除对标准的规格支持外,也各自发展不同的实作方式。

  XML比关联性数据库更具弹性

  就数据储存而言,关系型数据库已经是相当成熟的应用,从80年代商用产品出现至今,早已深入企业储存及数据应用的核心。相较之下,XML部分技术尚且在发展阶段,为什么关系型数据库竞相拥抱XML呢?

  比较两者处理数据的方式,关系型数据库是透过详细定义和控制结构化数据的方式,达到数据增、删、查询的目的。因此它是以字段数据型态的精确定义,将数据以列(row)的方式一笔笔储存,再透过数据表之间的互相关联,建构出数据和数据结合后的复杂结果。企业在日常营运可以仰赖这种方式来储存数据,像是ERP、CRM这种应用程序产生的数据,都可以透过数据库来储存。

  由于XML是以阶层式的树状结构作为储存架构,透过元素(Element)和属性(Attribute)来包含数据,再利用XML schema控制数据的正确性。这种架构特性,让XML随时可以新增字段,只要吻合XML schema的定义,字段便可以弹性置入。相对而言,关系型数据库一旦要修改字段,牵动的范围相当大,既会影响到过去的数据,与其它数据表的关系也必须一并思考在内,在变动的弹性上较小。由于企业内产生的数据并非总是这么规矩,一旦遇到非结构化的数据型态,关系型数据库便显得左右支绌,施展不开手脚。

  此外,XML透过元素和属性描述数据,以及不需转译编码的文字型态,让它可以不受操作系统和应用程序的限制,在数据交换上相当容易进行,而且它的内容可以被人类解读之外,也能被机器或应用程序所辨读,微软在Vista或新版本的Office上,就大量应用XML作为应用程序的设定或文件的产出格式。

  鉴于这些XML的优势,可以解决关系型数据库在应用及储存上的不足,因此传统数据库大厂纷纷实作出支持XML的方式,让企业的资料应用可以更为全面。

  保留XML原生数据格式成为主流

  关系型数据库在支持XML上大致有二种方式,一种是将XML拆解成关系型数据库的运作逻辑,另外一种则是保留XML原有的运作方式,后者又称之为原生XML数据库。

  早期关系型数据库的作法趋向前者,将XML的树状结构数据拆解成数成关系型数据库的型态之后再存入数据库,一旦需要存取时,再透过自订支持XML查询的SQL语法将它组合、还原成XML文件。另外一种原生型数据库的做法,则是保留阶层式的XML格式存进数据库,并且利用XML的树状节点特性,进行查询节点数据或新增、删除数据。

  以SQL Server为例,在2000版本时,支持XML的方式便是将XML数据转成关系型数据的存放方式,无论是储存或查询都还是使用关系型引擎为主。而SQL Server2005遵循W3C InfoSet规格,以特有的内部结构存放XML文件,并保存XML文件语意。新的XML技术可以透过变量或数据域位定义XML Schema,验证XML数据输入或更新时的正确性。此外可以利用业界标准XQuery进行查询,也引进XML索引技术,提升查询效率。

  无独有偶,IBM的DB2 9.0也提出了pureXML的技术与概念,诉求原生的XML数据型态,一改过去作法,直接保留原来树状结构的数据型态,同时也支持XML索引功能和XQuery查询。此外,在查询技术上,DB2 9.0整合middle ware的技术,让开发人员可以忽略底层的数据是关系型数据库或XML,开发人员可以透过擅长的SQL或XQuery语言进行查询,取得所需的结果。关系型数据库的成熟度加持XML的阶层式特性协助关系型数据库在处理数据时更为全面,同样的,关系型数据库也能为XML带来好处。

  对于XML的储存、使用而言,由于它本身是档案型的数据储存方式,在安全管理的机制上并没有良善的处理方式,一旦储存在数据库中,就可以享有资料库本身的安全机制。透过关系型数据库的查询语法,也可以和其它相关记录字段作交易管理,数据库的写入锁定机制还可以解决多人作业时写入冲突的问题。

  此外像是搜寻、更新、备份/还原、交易管理和记录稽核等,XML数据同样可以享受数据库带来的这些管理机制。过去需要程序开发人员劳心劳力之处,透过数据库本身的机制,就可以强化XML的体质。

  储存为XML或关系型数据的裁量

  XML与关系型数据库的合流,固然为企业数据带来更全面的应用方式,但对数据库开发人员而言,既然数据库同时可以储存关系型结构化的数据与XML阶层式的数据,如何裁量数据储存的方式,也形成了一个挑战。由于XML具有跨平台、跨组织交换数据的特性,又具有阶层性的弹性结构关系,因此企业的数据如果有B2B的应用需求或跨系统的交易机会,XML是相当理想的储存方式。另外如果数据结构有经常变动的可能,关系型数据库显然较难胜任,XML就可取而代之。

  这些透过XML数据能作更有利的应用,那么储存为XML数据型态就势所必然。相较之下关系型数据库在技术的成熟度上,或者查询速度上都是更有效率的数据处理方式,如非必要,利用原来的结构化储存方式即可。

原文出处:http://www.erpworld.net/article/2008-11-04/1104250452008.shtml
来源:BLOG    
  评论
 
尽管SOA服务部署让企业可再利用现有组件,但要保留资本支出并保持重复性事务顺序和管理却很麻烦。SOA事务涉及到了多种服务、不同平台和各种供应商……
 
随着2.0版本的发布,Java™Server Faces(JSF)现在可以轻松地实现健壮的、Ajax风格的Web应用程序。
 
现在是SOA领域动荡变化的时期,其发展变幻莫测,而这仅仅只是开始。由于服务设计、服务总线、服务治理甚至服务本身都处于不断变化中,而且各大公司仍在重审这一舞台……
 
本手册描述了使用普元EOS所需要掌握的XML基本技能,主要是针对XML及XPath的相关概念、框架的介绍。
 
现在是SOA领域动荡变化的时期,其发展变幻莫测,而这仅仅只是开始。由于服务设计、服务总线、服务治理甚至服务本身都处于不断变化中,而且各大公司仍在重审这一舞台……
本技术手册旨在探讨如何为封装WS-BPEL流程逻辑所需的Web服务设计WSDL定义。因为SOA提倡用“契约优先”的方式来设计服务,所以理解由WS-BPEL引发的这种独特服务契约设计理念,是成功构建有效流程和服务的关键因素。
本专题分六部分探讨SOA设计模式,当初设计面向服务架构的一大初衷就是降低服务间耦合度,由此提高服务的灵活性和自由度。
本专题分六部分探讨服务定向原则,主要探讨如何将服务定向原则应用于构成服务的自动化逻辑。如何越过单个服务层面,应用作为范例的服务定向并形成能够封装整个企业领域的服务层。
最新更新
专家答疑
技巧
Eric Newcomer
是否存在某些经验法则,让人们在网络互操作性和进程互操作性二者之间做出选择?换句话说,如果我遇到吞吐量问题,是不是就不该选择Web服务了?
Jason Bloomberg
评价“企业mashups”的标准是什么?尤其是在企业mashups和“主机包装”项目的关系上?我们对企业mashups的定义是:丰富网络环境下,一套建立在SOA基础之上的组合……
Rami Jaamour
你能解释一下什么是回归测试吗?怎样才能保证你的回归测试是正确的呢?回归测试旨在揭示所有由软件修改所引起的回归,在当今复杂多变的商业环境下……

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
登录Email
请输入您的登录Email
密码
下次自动登录