基于XML+DOM4J的数据库集成技术研究

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:zhouxifengli
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:如何实现数据库的集成、共享和利用,提高了信息系统的整体效能,以及解决了XML和数据库双向传输的瓶颈,成为信息支持系统的关键问题之一。该文在分析可扩展标记语言XML特点的基础上,对XML与数据库之间基于DOM模型的映射方式进行了探讨,并给出了以XML文件作为中间文件的异构数据库集成,以及XML文档和数据库之间数据传输的实现方法。
  关键词:XML;数据库集成;文档对象模型;XML查询
  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)05-11192-01
  
  1 引言
  各种分布的信息源为负责通过集成和聚集这些源的数据而创建和维护应用程序的架构师们带来了许多挑战。过去,开发人员必须用每种不同数据源可用的API 编写自定义的代码。这样既增加了成本又不稳定,改变时需要修改自定义代码。 所以构建一个能满足当前信息互用和处理需求的企业信息集成平台,成为当前管理信息技术的研究热点。数据库管理系统作为一个信息存储和处理加工的工具,而且数据库软件品种繁多,因此,如何实现异构数据库的信息集成成为信息支持系统的关键问题之一。
  所有应用程序架构师和数据专家面临的挑战是,在确保为集成、聚集和转换数据所做的工作的可复用性的同时,容易地向应用程序传递数据。传统的解决方法是,企业采用一个中间文件(文本文件等)作为交换媒介,将企业内部不同的数据库应用系统纳入到一个系统下,实现各数据库系统间数据信息的交换、共享和集成。但是这种中间文件只能在该企业内部交换数据,最大的缺点是只能表示简单的数据信息,而开发新的应用程序还必须兼容这种交换文件,不具有通用性。
  XML(eXtended Markup Language)技术的出现为开发人员和数据库专家提供了一个新的途径。XML是一种具有通用性、良好操作性的数据交换技术,能使信息系统具有异构相容,能保证数据模块之间及时有效的传递、交换、共享和集成各种数据信息。
  
  2 XML和DOM4J简介
  XML是由W3C在1998年9月设计的一个SGML的简化版本。XML是一种简单而有效的通用语言规范,属于无标记语言,具有平台和开发语言的独立性,实现了数据和表达形式的分离。
  首先,XML是纯文本的、简单易学,几乎所有的编辑器都能直接编辑修改,适合于在多个平台的环境中进行数据交换。
  此外,XML具有的自定义性和可扩展性,使它足以表示各种类型的数据,而且与其它数据传递标准不同的是,XML并没有定义数据文件中数据出现的具体规范,而只是在数据中附加标记来表达数据的逻辑结构和含义,这使它成为一种应用程序能自动理解的规范。XML用元素及其属性表达对象的内部结构和对象间的链接,这就使XML文档的内容是一种树状结构,结构上数据库较为相似,它为在数据库之间交换信息提供了一种公共格式。
  Dom4j是一个易用的、开源的库,用于XML,XPath和XSLT。它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP。DOM4J使用起来非常简单。只要你了解基本的XML-DOM模型,就能使用。在国内比较流行的是使用JDOM作为解析器,两者各擅其长,但DOM4J最大的特色是使用大量的接口,这也是它被认为比JDOM灵活的主要原因。
  基于XML的信息系统信息源集成,既保持了各数据库之间的独立性,又提高了数据保存和分析处理的能力,是信息集成技术研究的热点。本文利用XML规范和Java技术的平台无关性,给出了基于DOM4J和XML的数据集成系统的框架与数据库信息集成的技术实现。
  
  3 数据库集成框架
  数据库集成可以把各种数据库文件细节屏蔽起来,用户通过XML文档即可以实现对数据的查询、处理加工等操作,并把处理后的结果通过XML文档返回到指定数据库中。
  数据库集成工作原理如图1所示。应用程序向数据集成组件发出一个Xquery查询,数据库集成组件通过数据库访问技术(JDBC、ODBC、ADO等)将数据库文件导出,采用文档对象模型DOM(Document Object Model)技术,对纪录集进行访问,并封装成XML文档。这样,应用程序通过XQuery对XML文档查询,获得所需的查询结果。
  对于查询结果进行处理加工,然后写回到目的数据库中,采用XML+DOM4J解析方法,用解析器把XML文档(查询结果)转换成一棵DOM树,如图2所示。这样,信息的搜索变成了对信息树的遍历。当数据库接收到XML文档后,它以信息树的结构形式遍历XML文档,将文档中的内容更新到数据库中。
  
  4 技术实现
  使用XML文档作为中间文件实现异构数据库间信息转换的方法,可以归结为以下三个步骤:(1)将源数据库映射为XML文档;(2)对XML文档进行查询得到所要的结果;(3)将结果映射到目的数据库中。下面就结合Java和DOM4J技术给出实现的主要过程。
  (1)访问源数据库
  通过目前多种软件开发平台提供的数据库互连接口和数据库访问技术,如JDBC、ODBC、ADO、DAO、COM等,可以轻松地访问数据库文件,并导出结果集(ResultSet)。
  (2)将访问结果封装成XML文档
  为了将得到的结果集封装成XML格式,本文利用DOM4J开源技术,基于Java平台来编码。
  //创建XML文档对象doc
  org.dom4j.DocumentFactory df = new org.dom4j.DocumentFactory();
  Document doc = df.createDocument();
  //创建根节点
  Element root = doc.addElement(“StudentSet”);
  //访问每条纪录
  While(rs.next())
  {ResultSetMetaData rsmd = rs.getMetaData();
  Element parentEle = root.addElement(“Student”);
  //访问该条纪录的所有字段
  for (i=1;i<=rsmd.getColumnCount();i++)
  { Element childEle = parentEle.addElement(rsmd.getColumnLabel(i));
  childEle.setText(rs.getObject(rsmd.getColumnLabel(i)));}}
  //写文件
  OutputFormat of = OutputFormat.createCompactFormat();
  of.setEncoding("gb2312");
  XMLWriter output = new XMLWriter(new java.io.FileOutputStream(new File("c:/ student.xml")),of);
  output.write(doc);
  output.close();
  (3)XML文档查询
  XML文档查询采用支持Xquery查询语言的XQuery软件(如DataDirect XQuery,Microsoft's XQuery Prototype和XML Query Engine等)。XQuery查询系统可以查询XML文档,然后返回XML结果。
  图3 XML文档查询框架
  (4)将结果写回到目的数据库中
  对查询得到的结果进行处理加工,然后返回到指定的数据库中,必须对XML Result进行处理,读取每个元素的所有结点值,然后把提取的数据通过数据库访问技术写回到数据库中。下面是实现的部分代码。
  treeWalk(doc.getRootElement());
  //得到根结点,从根结点开始遍历
  String query=”Insert Into ”;
  public void treeWalk(Element element) {
  for ( int i = 1, size = element.nodeCount(); i <=size; i++ ) {
  Node node = element.node(i);
  if ( node instanceof Element ) {
  treeWalk( (Element) node );}
  else {
  query=query+ rsmd.getTableName(i)+” Value(“+node.getNodeValue()+”,”);}
  query=qurey+”)”;}
  stmt.executeUpdate(query);} //数据库连接省略
  
  5 结束语
  本文通过XML实现异构数据库的集成、共享和利用,提高了信息系统的整体效能。解决了XML和数据库双向传输的瓶颈,在信息系统的集成中有着十分重要的现实意义。
  参考文献:
  [1]高春颖,陆捷,陈艳霞.基于XML的异构数据库信息集成技术研究[J].电脑知识与技术,2006,05.
  [2]张晓东.等.Java数据库高级教程[M],清华大学出版社,2004.
  [3]马淑娇,李晓,周俊林.异构数据库集成中的XML技术探讨[J].计算机应用研究,2004,(1):94-96,39-42.
  本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
其他文献
摘要:当前网络技术在教育中的应用日益廣泛和深入,特别是Internet与校园网的接轨,为教育提供了丰富的资源,使网络环境下的学习真正成为现实。本文阐述了Blog&Wiki在本科教学中应用的可行性分析,然后建立一个基于Blog&Wiki的开放协作式教学模型。  关键词:网络技术;Blog;Wiki;本科教育;开放协作式教学  中图分类号:TP393 文献标识码:A 文章编号:1009—3044(20
期刊
摘要:網络工程师考试是全国计算机技术与软件专业技术资格(水平)考试(简称水平考试)的中级考试的一种。本文分析了2006年11月的网络工程师考试上午试题的结构,并针对其中涉及的难点、重点进行解答,使考生在今后的复习中更有方向性和目的性。  关键词:网络工程师;结构分析;难点分析  中图分类号:G642 文献标识码:A 文章编号:1009—3044(2007)08—20567—01
期刊
摘要:在分析影响教学质量因素的基础上,对运用LMBP算法建立教学质量评估模型进行了研究,介绍了LMBP神经网络预测模型的计算过程及学习方法,建立了教学质量评估的LMBP预测模型,经测试数据验证,结果比较准确,能克服各种人为因素,具有广泛的适用性。  关键词:教学评估;LMBP算法;神经网络  中图分类号:TP37 文獻标识码:A 文章编号:1009—3044(2007)08—20519—03
期刊
摘要:weblog作为一种新兴的网络交流工具已经广泛地应用到众多行业和领域,其在教育中应用也必将产生新的学习方式,甚至是教育理念的变化。本文就weblog在网络课程教学中的应用作初步的探讨,以期探索网络课程教学中新的學习模式。  关键词:weblog;网络课程;教学;应用  中图分类号:TP393 文献标识码:A 文章编号:1009—3044(2007)08—20589—02
期刊
摘要:利用USB可以实现较传统方式更有效、更经济、点数更多的多点数据采集。针对基于USB接口和LabVIEW平台的数据采集和数据处理程序设计中,常遇到的典型应用中的问题如:基于TCP的网络传输、软件滤波、数组组合、波形振幅统计、超限报警等问题,本文给出了较详细的解决方案和实用程序设计技巧。  关键词:USB;LabVIEW;数据采集;技术  中图分类号:TP331文献标识码:A 文章编号:1009
期刊
摘要:本文利用PB BLOB可以操作二进制大对象的特点,借助PB内置函数对PB的位操作能力进行了函数封装,扩展了PB的位操作能力并给出了在图像处理和工业控制中的应用实例。  关键词:PowerBuilder;二进制大对象;位操作;图像;工业控制  中图分类号:TP311.56 文献标识码:A文章编号:1009-3044(2007)05-11195-03    1 引言  PB作为一个开发工具,一直
期刊
摘要:虚函数是实现动态多态性的方法。包含虚函数的类定义的对象有一个虚函数表和一个指向虚函数表的指针vptr。本文探讨了影响vptr和虚函数表长度的因素。  關键词:虚函数;多态性;虚函数表;VPTR  中图分类号:TP311 文献标识码:A 文章编号:1009—3044(2007)08—20461—02
期刊
摘要:本文针对目前中小学CAI教学软件普遍存在交互性过低问题进行了探讨,介绍了一种能在易用性与高交互性取得较好平衡的編程语言Flash ActionScript,并结合《平面镶嵌》问题对其使用方法进行了说明。  关键词:CAI教学软件;软件交互性:Flash AS  中图分类号:TP311 文献标识码:A 文章编号:1009—3044(2007)08—20566—01
期刊
摘要:在分析结构化查询语句的基础上,提出了在VB中实现通用动态查询程序的原理和方法,并给出了具体的程序代码。  关键词:VB;数据库;查询   中图分类号:TP311文献标识码:A 文章编号:1009-3044(2007)05-11204-02    1 引言  Visual Basic 6.0 作为一种简捷、系统的Windows应用程序开发工具,具有强大的数据处理能力,被广泛应用于建立各种数据库
期刊
摘要:应用ID3挖掘方法,将基于数据库的数据挖掘技术应用于企业的生产、销售实践中用决策树对产品进行定性分析,找到产品销售情况的决策信息;及用分类法对产品品种进行选择的具体过程。  关键词:数据挖掘;决策树;ID3  中图分类号:TP312文献标识码:A文章编号:1009-3044(2007)05-11198-01    1 基本定义  (1)数据挖掘  数据挖掘(Data Mining)就是从大量
期刊