admin 管理员组

文章数量: 1086019


2024年4月19日发(作者:toggle bit)

第8卷第12期 

2009年l2月 

南阳师范学院学报 

Journal of Nanyang Normal University 

VoI.8 No.12 

Dee.2009 

XML数据与关系数据库的转换及实现 

张振莲,李金莱 

(南阳师范学院计算机与信息技术学院,河南南阳473061) 

摘 要:XML已经成为因特网上数据表示和数据交换的新标准,关系数据库是应用系统中最常用的数据库技术.讨论 

了XML文档与关系数据库的结合技术,并介绍了SQL Server2005中对XML文档的处理技术与具体实现方法. 

关键词:XML;DataSet;数据库 

中图分类号:TP 3l】 文献标识码:A 文章编号:1671—6132(2009)12—0077—04 

XML近年来逐渐成为因特网上数据表示和数 

化并在浏览器中显示,或者通过DOM接口编程同 

据交换的新标准.不同于描述数据显示格式和布局 

其他应用相连,DOM即文档对象模型,它能读取 

的HTML,它描述的是数据本身的意义和数据实体 XML文档中的节点,是最基本也是最底层的XML 

之间的复杂嵌套关系,此特性使得XML既可以表 存取技术,它实际上是提供一组API来存取XML 

示结构化的数据,如关系和对象数据,也能够表示 

数据.第二种是关系型数据库,这种方法通过中间 

半结构化的数据,如Web数据…. 件在数据库和XML文档之间建立桥梁关系,便于 

通常用户会有各种各样的应用需要使用XML 开发各种动态应用.它通过数据库系统对数据进行 

来进行数据传输.XML数据源有很多,大体可分为 

管理,然后再利用服务器端应用(ASP、JSP Serv— 

以下三种:一种是XML格式的纯文本文档,这种来 

let)等进行动态存取.第三种则来源于其他各种应 

源是基本的也是最为简单的。存储在文件中的数据 用数据,如邮件、目录清单、商务报告等. 

可以直接读取,然后通过XSL对XML文档进行转 

参 考 文 献 

2005,2(4):139—142. 

[4] 李绍民.TMS320F206 DSP的以太网接口设计[J].大 

万冬云.嵌入式网络中WEBSERVER的实现[J].微 

连民族学院学报:自然科学版,2003,5(3):3—5. 

计算机信息,2004,20(1】):85—87. 

[5] 李明.嵌入式互联网络接口的设计与开发[J】.工业 

[2] 李继容,鲍芳,何湘初.以太网在工业自动化领域的 

控制计算机,2002(8):39—40. 

应用及研究[J].计算机应用研究,2002,19 

[6] 

李明,康静秋,贾智平.嵌人式TCP/IP协议栈的研究 

(9):l26—128, 

与开发[J].计算机工程与应用,2002,35(16): 

[3] 

徐爱钧,袁晓莉.嵌入式WEB服务器设计及其在远 

l】8—122. 

程监测中的应用[J].长江大学学报:自然科学版, 

An implementation method of embedded network interface 

LIANG Hui-jun,JIA Song-hao,YANG Cai,LI Fang—fang 

(School of Computer and Information Techonlogy,Nanyang Normal University,Nanyang 47306 1,China) 

Abstract:The paper uses the full—duplex plug—and-play ethernet controller of RTL8019AS,the hardware and 

software of the embedded communication on controller are developed,and the design and realization of the soft— 

ware and hardware system for single—clip collecting system are discussed.It achieves an embedded network inter- 

faee method. 

Key words:embedded system;single chip;network communication;controller 

收稿日期:2009—08—3l 

作者简介:张振莲(1967一),女,河南南阳人,副教授,主要从事数据库技术方向方面的研究 

78・ 南阳师范学院学报 第8卷 

1 XML与关系数据库的结合 

从严格的意义上来说,XML仅仅意味着XML 

文档.因为尽管一个XML文档包含数据,但是如果 

不通过其他的软件来进行数据处理的话,它本身只 

不过是一个文本文件.它缺少数据库所必需的一些 

东西,如有效的存储组织、索引结构、安全性、事务 

处理、数据完整性、触发器、多用户处理机制等. 

关系数据库管理系统(flDBMS)采用二维表作 

为存储数据的模型,表格由行和列组成,列被称作 

“字段”,用于表示组成数据有效信息的属性,行则 

是用于指示一条完整的数据记录.而XML文档属 

于半结构化的数据,将它与结构化的关系数据库数 

据进行转换时,关键问题是建立不同结构层次之间 

的映射关系.即如何将XML文档的结构与关系数 

据库数据的结构(关系表)对应起来. 

1.1关系数据库数据的XML发布 

关系数据库数据的XML发布可以根据建立映 

射的方式的不同,通常分为两种数据转换方法:基 

于模板的转换方法和基于模型的转换方法. 

(1)基于模板的数据转换方法 

该方法并不事先定义好XML文档与其他的数 

据之间的映射关系,而是在XML文档中嵌入一些 

可执行的指令.这些指令在转换过程中被系统识别 

和执行,执行的结果被替换到指令所在的位置,从 

而生成目标XML文档. 

基于模板的数据转换的映射是相当灵活的,如 

些产品允许把结果集放到XML文档的任何位 

置;同时可以对SELECT语句设置参数,并且可以 

使用for循环语句和if条件语句等.值得注意的 

是,当前基于模板的数据转换的映射只能应用于关 

系数据库和XML文档之间传递数据. 

(2)基于模型的数据转换方法 

该方法用事先定义好的数据模型来映射XML 

文档结构与其他格式数据结构之间的关系.也就是 

说把数据从数据库传送到XML文档是用一个具体 

的模型实现的,这样,XML可以被结合到基于模型 

映射的产品上.在XML文档中,两种模型是很常见 

的:表格模型(table mode1)和数据专用对象模型 

(data—specific object mode1). 

表格模型:许多中间件软件包用表格模型在 

XML文档和关系数据库之问传递数据.它把XML 

文档表示为一个单一的表格或者是表格的集合.把 

数据从XML文档传递到数据库的时候,表示一个 

单一的表格或者视图.但是,当结果集合不止一个 

的时候,或者当XML文档包括多个复杂嵌套的时 

候,这种传递方式就不能适应了. 

数据专用对象模型:把一个XML文档表示为 

由数据对象构成的树,每一个元素类型和对象相对 

应.主要在面向对象和层次数据库中使用,通过传 

统的关系一对象模型可以映射到关系数据库中.但 

这种模型并不是文档对象模型(DOM). 

1.2 XML数据到关系数据库的存储映射 

XML数据到关系数据库的映射主要有两种方 

法:一种是结构映射,一种是模式映射.前者根据 

XML文档的DTD或SCHEMA所描述的结构进行 

映射,而后者则无需DTD或SCHEMA,直接将XML 

文档映射为基于XQuery的图模型.对于无模式的 

XML文档数据,由于没有遵循统一的结构,所以不 

适合进行结构映射,而模式映射的以下一些特点使 

得其成为无模式XML数据管理的首选:(1)这种 

方式可适应于任意XML文档,无论是DTD或 

SCHEMA、固定还是经常变动的应用;(2)适用于 

没有DTD(或SCHEMA)约束的XML文档的转换; 

(3)这种方法无需对关系数据库进行扩展就可支 

持XML应用. 

2 XML和数据库的结合技术 

2.1 传统数据库提供对XML的支持 

在Internet高速发展的今天,开发基于XML的 

动态应用如动态信息发布、动态数据交换等越来越 

多,各大传统数据库厂商为了满足这一市场需求, 

提供了传统数据库对XML的支持.在这一点上, 

Oracle和Microsoft走在其他厂商的前面.微软的 

SQL Server通过XML SQL提供对XML的几种访 

问功能,达到对XML提供早期的基本的支持.SQL 

Server2005通过三种方式支持XML技术: 

(1)在SELECT语句中增加了FOR XML条件 

子句.FOR XML条件子句有三种选择,用来指定如 

何把SELECT语句映射到XML上去. 

(2)通过XPath进行信息定位.通过模式映射 

的方式,也就是在XML文档的元素和属性以及在 

数据库中的表和字段之间建立映射关系.这里把 

XML看成是一棵对象树,而使用XPath的一个子 

集来进行查询. 

(3)在存储过程中使用OpenXML函数.Ope— 

nXML函数被用来提取XML文档的任何一个部 

分,并把它当做一个表格,然后就可以用SELECT 

语句中的FROM指定这个表格,通过INSERT语句 

在XML文档和数据库之间传递数据,并可以用 

XPath来指定具体的元素或者属性. 

2.2数据转换中间件 

第l2期 张振莲等:XML数据与关系数据库的转换及实现 ・79・ 

ADO.NET:它可以实现数据库和XML文档之 

间的双向转换.XML支持把一个记录集对象保存 

的FOR XML扩展功能,支持在服务器端以XML 

文档的形式返回SQL查询结果.另外,关键字 

为一个XML文档,它也能够把一个XML文档作为 

OPENXML还能够提供从XML文档中提取行集合 

的能力. 

个记录集进行处理,这样就在XML文档和数据 

库之间提供了一个桥梁.这种映射实际上是模型驱 

动的,数据可以被看成是一棵对象树,一个具有嵌 

套结构的树可以作为一个嵌套的记录结果集被显 

3.1 XML数据的存储 

在SQL Server 2005用户可以用普通的CRE— 

ATE TABLE语句创建带有XML列的表,然后就可 

示.反之,也是如此.另外,如果记录集合数据有变 

化的话,可以反映到相应的XML文档中,而XML 

文档中内容的变化也可以导致数据库内容的 

变化‘ . 

ASP2XML:主要是通过一个COM对象实现 

XML文档和基于ODBC或者是OLE DB的数据库 

之间数据的传递.把XML文档看成是一个单一的 

表,当把数据从数据库传递到XML文档的时候,用 

户指定一个SELECT语句,输出包含了ASP2XML 

专用的标签.当把XML文档的数据传递到数据库 

的时候,XML文档必须包含ASP2XML专用的标 

签.该COM对象是支持自动化的,也就是说,它能 

够在脚本语言中使用. 

2.3纯粹XML数据库管理系统 

XML数据库是相对比较新的产品,设计的目 

的也是为了存储和处理XML文档.它的基本的存 

储单元是XML文档 .这种数据库维持原有文档 

的数据结构和相关的元数据,而不关心数据的底层 

存储格式,只能通过XML特有的相关技术进行存 

储.可以通过在原文档的基础上建立相应的索引机 

制,来提高检索效率. 

XML数据库管理系统保留了文档的原始结构 

和XML原有的优点,存储简单,同时有利于对文档 

进行进一步的数据挖掘,但是信息的格式、内容相 

对复杂. 

3 SQL Server 2005中对XML的支持 

SQL Server 2005引入了一种称为XML的本机 

数据类型.用户可以创建这样的表,它在关系列之 

外还有一个或多个XML类型的列,此数据类型是 

第一类类型,就像INT或VARCHAR一样,为了更 

好地支持XML模型特征(例如文档顺序和递归结 

构),XML值以内部格式存储为大型二进制对象 

(BLOB).SQL Se ̄er 2005允许使用一系列XML 

特定的函数对此数据类型进行本地查询和处理.它 

还支持存储数据库中的XML架构的集合,从而启 

用基于数据库的架构验证 .另外,SQL Server 

2005极大地扩展了xML组合(SELECT...FOR 

XML语句)的功能,SQL Server通过SELECT语句 

以通过多种方式存储XML数据. 

非类型化的XML数据类型:当XML数据的架 

构为未知,或架构为已知,但映射到关系数据模型 

非常复杂并且难于维护时,可以使用非类型化的 

XML数据类型.非类型化的XML允许存储XML 

内容片段.例:CREATE TABLE xtable(id INT PRI— 

MARY KEY,book XML not nul1). 

类型化的XML数据类型:当XML数据的架构 

为已知时,可以使用类型化的XML数据类型.使用 

类型化的XML有利于对数据的有效性验证以及存 

储和查询的优化处理.对于类型化的XML,使用 

DOCUMENT(不允许片段)或CONTENT(允许片 

段)规范指定是否允许存储内容片段,同时必须提 

供XML的架构集合.例:CREATE TABLE xtable 

(int INT PRIMARY KEY,book XML(CONTENT 

COn)). 

3.2 XML数据的查询和修改 

XQuery语言是一种巧妙地使用XML结构的 

查询语言,可以跨各种数据表示查询,而不管这些 

数据是物理存储在XML中,还是通过中间件被视 

为XML .它使查询简洁易懂,而又相当灵活,可 

以查询大范围的XML信息源,其中包括数据库和 

文档. 

XML数据类型提供了四个检索XML值或实 

例的方法:query()、value()、exist()和nodes(), 

以及修改XML数据的modify()方法. 

query()方法:用于提取XML实例的部分. 

XQuery表达式求值为一个XML节点列表.以这些 

节点中的每一个为根的子树按照文档顺序返回,结 

果类型为非类型化的XML.例:SELECT id,book. 

query( /book/date )FROM xtable. 

value()方法:从XML实例提取标量值.它返 

回XQuery表达式所求值的节点的值.该值被转换 

为value()方法的第二个参数所指定的T—SQL 

类型.例:SELECT book.value (/book/@ISBN) 

[1] , varehar(50) FROM xtable. 

exist()方法:用于对XML实例进行存在性检 

查.如果XQuery表达式求值为非空节点列表,则 

返回1;否则,返回0.例:SELECT id,book FROM 

8O・ 南阳师范学院学报 第8卷 

xtable WHERE book.exist( //book[@ISBN=”l 包含在XML文档中显示出来. 

8610—0157—6”] )=1. 

ELEMENTS:如果指定了该选项,列将以子元 

nodes()方法:产生特定XML数据类型的实 

素形式返回.否则,列将被映射为XML属性.该选 

例,每个实例都将其上下文设置为XQuery表达式 

项只支持在AUTO模式下使用. 

所求值的不同节点.特定的XML数据类型支持 

BINARY base64:在查询中指定该选项可以返 

query()、value()、nodes()和exist()方法,并且 回base64编码格式的二进制数据.在RAW和EX. 

可以用于count(:.=)聚合和NULL检查.所有其他 

PLICIT模式下,不指定该选项检索二进制数据的 

的使用都会产生错误. 

结果是产生错误. 

modify()方法:允许修改XML实例的某些部 假如有一个用户表,有三个字段,把表的值显 

分,例如添加或删除子树,或者更新标量值.例: 

示为XML格式,可以用: 

UPDATE xtable SET book.modify( replace value of 

SELECT ID,User

——

Name,User

——

pwd FROM Tb

—— 

(/book[@ISBN=”1—8610—0157—6”]/last— 

User F0R XML RAW 

name)[1]with”wang”). 

SELECT ID,User

— 

Name,User

—.

pwd FROM Tb

—— 

3.3将数据以XML的方式显示 

User FOR XML RAW.ELEMENTS 

对XML的支持的首要一点就是允许用户直接 

从数据库中取出,并以XML的方式显示出来.为 

4 结束语 

此,需要为SELETE语句配置一个FOR XML子句, XML文档是因特网上数据表示和数据交换的 

其语法如下: 

新标准,而关系数据库是非常成熟的数据库技术, 

『FOR{XML{RAw l AUTO I EXPLICIT]} 

两者的结合可以取长补短,进一步推动XML数据 

[,XMLDATA][,ELEMENTS][,BINARY 库技术的发展. 

BASE64]}] 

FOR XML子句的XML有三种模式:RAW、 

参 考 文 献 

AUTO或者EXPLICIT,选择的模式决定了结果 

[1]章义,黎峰.基于XML的数据库存储访问技术[J]. 

XML文件的形式和组成. 

计算机工程与设计,2005(1):208—211. 

RAW模式:将查询结果的每一行以一个带有 

[2] 张能力,陈刚.基于ADO.NET的XML数据传递的研 

类属标识符row的XML元素显示出来,SELECT 

究与实现[J].计算机与现代化,2005(3):41—44. 

语句中的列作为元素属性. 

[3] 龚红焱,刘奕明,陈涵生.XML与数据库结合技术的 

AUTO模式:默认模式,此时返回的查询结果 

探讨[J].计算机工程,2005(4):l14—116. 

[4] 罗凌..NET平台中XML与Web数据库双向数据交 

以简单的XML树显示. 

换接口的研究和实现[J].微计算机信息,2006,22 

EXPLICIT模式:查询编程人员可以显式地定 

(27):242—244. 

义结果XML树的形状. 

[5]施伯乐,丁宝康,汪卫.数据库系统教程[M].2版, 

XMLDATA:指定该选项时,XML文档架构将 

北京:高等教育出版社,2003. 

Technology of exchange between XML and database 

ZHANG Zhen—lian,LI Jin-lai 

(School of Computer and Information Techonlogy,Nanyang Normal University,Nanyang 47306 1,China) 

Abstract:XML gradually became a new standard of data expression and exchange on Internet.Relation database 

is a main database technology in application system.This paper discusses the main combined technology of XML 

and database.At last it introduces the processing technology and realization methods of SQL Server 2005 to the 

XML documents. 

Key words:XML;DataSet;database 


本文标签: 数据 文档 数据库 映射 进行