XML与关系数据库 .pdf
XML与关系数据库
前面我们讲到了XML的数据存取机制,从一个较高的层面上分析了数据存取
的多种方式。作为其中的一种,数据库的数据存取机制似乎倍受青睐,但我们并未
对此作比较深入的探讨,这一节里我们对XML与数据库的关系进行更进一步的详
细分析。
我们知道,关系数据库提供了对于大批量数据的有效存储管理和快速信息检
索、查询的功能。从体系结构上看,数据库技术的发展历经了网络型数据库、层次
型数据库、关系数据库、面向对象数据库。虽然面向对象数据库融入了面向对象技
术,但是到目前为止,在各个领域使用最广的还是关系数据库。关系数据库管理系
统(RDBMS)采用二维表格作为存储数据的模型,如下图10-1所示,
字段字段字段
行
行
行
行
图10-1关系数据库二维表
表格由行和列组成,一般情况下,列被称作“字段”,用于表示组成数据有效
信息的属性,而行则用于指示一条完整的数据记录。由于数据间的相关性可以通过
表与表之间关键字(外键)来关联,由此产生了“关系”类型数据库的由来。
关系数据库有自己的查询语言——结构化查询语言(StructuredQueryLanguag
e,SQL)。SQL最初由IBM提出,后经不断发展,已于1986年成为业界标准并被
广泛采用。SQL是非过程性的。当SQL语句传送到数据库服务器后,服务器返回
满足条件的结果或结果集(视具体查询项目而定)。一般情况下,大多数支持SQL
的服务器系统均采用客户/服务器架构,现在又发展到更为先进的分布式处理架构。
这样一来,SQL服务器既可以接收客户应用程序发送的查询请求,也可以接收其他
服务器的查询请求,这些服务器可能是其他SQL服务器,也可以是XML服务器。
就数据存储而言,关系型数据库已经是相当成熟的应用,从80年代商用产品
出现至今,早已深入企业储存及数据应用的核心。相较之下,XML部分技术尚且
在发展阶段。关系型数据库是透过详细定义和控制结构化数据的方式,达到数据增、
删、查询的目的。因此它是以字段数据型态的精确定义,将数据以列的方式一笔笔
储存,再透过数据表之间的互相关联,建构出数据和数据结合后的复杂结果,因此
企业在日常营运可以仰赖这种方式来储存数据。但是,定义好的关系型数据库一旦
要修改字段,牵动的范围相当大,既会影响到过去的数据,也会影响到其它相关联
的数据表。因此它在变动的弹性上较小。然而由于企业内产生的数据并非总是这么
规矩,一旦遇到非结构化的数据型态,关系型数据库便显得左右支绌,施展不开手
脚。相对而言,由于XML是以阶层式的树状结构作为储存架构,通过元素(Eleme
nt)和属性(Attribute)来包含数据,再利用XMLschema控制数据的正确性。这
种架构特性,让XML随时可以新增字段,只要吻合XMLschema的定义,字段便
可以弹性置入。此外,XML透过元素和属性描述数据,以及不需转译编码的文字
型态,让它可以不受操作系统和应用程序的限制,在数据交换上相当容易进行,而
且它的内容除了可以被人类解读之外,也能被机器或应用程序所辨读。鉴于这些X
ML的优势,可以解决关系型数据库在应用及储存上的不足,因此传统数据库大厂
纷纷在关系数据库的基础上推出支持XML的方式。
关系型数据库在支持XML上大致有三种方式:一种是把xml文件原封不动的
存储在关系数据库的字段里面(严格的说这不是一种新的支持方式,而是关系数据
库天生就有的功能。);另一种是将XML的树状结构数据拆解成数成关系型数据库
的之后再存入数据库,一旦需要存取时,再通过组合,还原成XML文件;还有一
种