APP下载

XML实现异构数据库间转换的实现与分析

2009-06-16

消费导刊 2009年10期
关键词:元组字段异构

胡 球

[摘 要]XML中一种扩展的标记语言,它具有很好的扩展性标记。本文通过XML实现数据库的定义,实现对XML数据库的访问和异构数据库之间的互访。

[关键词]XML异构数据库信息交换数据库访问

XML(ExtensibleMarkupLanguage)它是由W3C组织于1998年2月制定的一种通用语言规范,是SGML的简化子集,专门为Web应用程序而设计。XML作为一种可扩展性标记语言,其自描述性使其非常适用于不同应用间的数据交换,而且这种交换是不以预先规定一组数据结构定义为前提XML最大的优点是它对数据描述和数据传送能力,因此具备很强的开放性。为了使基于XML的业务数据交换成为可能,就必须实现数据库的XML数据存取,并且将XML数据同应用程序集成,进而使之同现有的业务规则相结合开发基于XML的动态应用,如动态信息发布、动态数据交换等,前提是必须有支持XML的数据库支持。XML提供描述不同类型数据的标准格式。

一、XML与数据库的结合

XML数据源有多种多样,根据具体的应用,大概可分为下面三种:一种是XML纯文本文档;第二种是关系型数据库;第三种则来源于其他各种应用数据,如邮件、目录清单、商务报告等。其中,第一种来源,即XML纯文本文档是最基本的也是最为简单的,将数据存储于文件中,其最大的优点在于可以直接方便地读取,或者加以样式信息在浏览器中显示,或者通过DOM接口编程同其他应用相连。第二种数据来源是对第一种来源的扩展,目的是便于开发各种动态应用,其优点则在于通过数据库系统对数据进行管理,然后在利用服务器端应用。这种方式最适合于当前最为流行的基于三层结构的应用开发。第三种数据由于来源广泛,因此需要具体情况具体对待本文的分析主要针对前两种数据来源进行分析。

对于XML文档,可以通过DOM(Docum ent Object Model)读取XML文档中的节点,是最基本也是最底层的XML存取技术。DOM是W3C的一种技术标准,实际上是提供一组API来存取XML数据。DOM可以通过JavaScript,VBScript等脚本程序来实现,也可通过C++、Java等高级语言来实现。

其次,也可通过DSO(Data Source Obj ect)进行XML的数据绑定可以方便地将XML节点同HTML标记捆绑,从XML文档中读取或写入数据,就象访问MicrosoftAccess或Micro soft SQLServer一样;而HTTP+SQL是Microsoft新近提出的SOAP方案的核心,其基本原理是通过基于HTTP协议的URL方式直接访问SQLSERVER数据库,并返回以XML或HTML数据格式的文档。

XML数据库又分为两种:一种是以XML原始格式存储的数据库我们称为“native-XML数据库”;另一种是以XML格式存入和导出,且它本身又是一个数据库,我们称为“XML-enabled数据库”。

(一)1native-XML数据库

对于native-XML数据库的访问,我们可以通过XQL语言来完成。通过XQL我们可以对一个或多个XML文件进行查询,它返回一个封装在根元素(sql:result)的节点集,这个节点集也是一个XML文件。

(二)2XML-enabled数据库

因为数据是以XML格式存入和导出,且它本身又是一个数据库,这就涉及到异构数据库间的互访问题。XML提供了一种连接关系数据库和面向对象数据库以及其他数据库系统之间的访问技术,也就是说我们可以先对关系数据库和面向对象数据库以及其他数据库系统进行访问,然后生成XML文件,再将文件存入数据库或作其他处理。

二、使用JSP连接数据库并进行查询生成XML文档

我们有许多方法可做到连接数据库并进行查询,生成XML文档。以下是通过JSP技术对SQLServer存储的XML文档进行查寻并提取这些文档,然后将其传送给用户。Java语言应用程序的开发者提供了一个通用的SQL数据库访问和存储结构,即JDBC,它是一种用于数据库访问的应用程序编程接口(API),开发者可以通过JDBC产品组件之一JDBC-ODBC桥来完成与数据库建立连接、发送语句、处理结果等工作。我们可以用一个简单的例子来说明如何在用JDBC接口来实现数据库的连接,执行一个查询(其结果为一组XML文档),分析查询结果,并将分析过的数据写入输出流中。

三、XML模式与关系模式的相互转换

为了完成异构数据库间的通讯,必须实现RDMS→XML→RDMS的转换。一个具体的XML模式到关系模式的数据转换需要涉及较为复杂的XML格式分析处理及相应的数据库操作及有效性校验。我们通过对XML的数据模型与关系模型的特征的比较,认为两者转换的实质是(1)从XML中的数据(存在方式可以是Content、属性值、元素名等)到关系模式中字段的映射;(2)从XML中数据的相互位置关系到关系模式中元组与元组的关系及元组与字段的关系的映射,从XML模式到关系模式转换的转换规则脚本:由关系模式的定义和XML模式到关系模式转换规则的定义组成;从关系模式到XML模式转换的转换规则脚本:由关系模式的定义和关系模式到XML模式转换规则的定义组成。

(一)XML模式到关系模式转换

1.关系模式定义:

一个关系模式的定义分两部分:数据源(DataSource)定义和实体(包括关系实体)的定义。数据源的定义不外乎ODBC/JDBC/BDE 等几种,定义它的目的在于转换程序的跨平台的通用性。实体定义包含两部分:结构定义和约束定义。结构定义类似关系数据库的表定义,包含对每个字段的类型、长度等的定义。约束定义则主要包含对字段的外键和引用的约束定义。

2.XML模式到关系模式转换规则的定义:

XML模式到关系模式的转换的目标,是将某一种XMLSchema定义好的XML文档中的Content部分、属性值部分转换成关系模式中的某个元组的某个字段的值,而将他们之间的位置关系转换成关系模式中的外键等应用关系。

四、结束语

目前数据库已不再仅仅局限于存储数据,而是向着更深层次、更多样化发展,它已经广泛运用于OLAP、OLTP、数据仓库、数据挖掘、移动计算、嵌入式计算和Web应用等诸多方面。现在,数据库技术也已经深入到各行各业,尤其在媒体、金融、交通、商业等领域得到了广泛应用。我们有理由相信,XML同数据库的相结合将随着XML技术的发展,会实现更强大的功能。

参考文献

[1]http://www.xmlsoftware.com/

[2]杨钰,卢银娟,赵昊彤等,JSP网络开发技术。人民邮电出版社

[4]http://www.microsoft.com/xml/xsl/msxsl-f.htm

[5]http://www.51xml.com/forum/search_foru m_xml.Xml

[6]MichaelMorrison,etal。XML揭秘---入门-应用-精通。清华大学出版社,2000,8

猜你喜欢

元组字段异构
图书馆中文图书编目外包数据质量控制分析
试论同课异构之“同”与“异”
Python核心语法
海量数据上有效的top-kSkyline查询算法*
基于减少检索的负表约束优化算法
异构醇醚在超浓缩洗衣液中的应用探索
overlay SDN实现异构兼容的关键技术
LTE异构网技术与组网研究
CNMARC304字段和314字段责任附注方式解析
无正题名文献著录方法评述