摘 要
信息技术正以飞猛的速度发展,计算机早已深入到整个社会的主要场所,许多独立的信息系统已经不再是孤岛,需要同其它的信息系统交换数据和实现数据同步,但往往两者工作的后台为异构的数据库。这些异构性具体体现在数据库结构不同和数据库类型的不匹配。可扩展标记语言(XML)因其对数据强大的描述能力和对底层构造的无关性,变成了一种数据的交换标准。
在本文伊始,介绍了主流的商用数据库产品,XML技术和B/S体系结构。在之后的开发过程中,还用到了Java语言,JSP技术,Tomcat,涉足了J2EE的一些基本规范。
本文主要研究讨论了两种主流的关系数据库之间的数据交换和同步问题,具体是指基于Oracle 9i和基于Microsoft SQL Server 2000的两个管理信息系统的数据同步。首先,研究并实现了利用XML及其周边技术完成两个数据库中表的数据的全部转换,这其中用到一个重要的XML的 Java编程接口JDOM实现了对XML文档的生成和解析;之后,在全量转换的基础上,完成了增量交换的实现,利用到了增量动作记录数据表和增量XML文件,并对增量交换机制进行了研究和讨论。
最后,对本次设计的意义和相关技术做了回顾和展望。
关键词 异构数据库 XML技术 同步更新 增量交换 JDOM
Abstract
The information technology (IT) is developing at a high speed, the computer has early been used in every main occasion of the whole society. Many independent information systems have not been a lonely island. They need to exchange data with other information systems, but the twin systems often use the different/heterogeneous Databases. The heterogeneity embodies the different Database structure and data type mismatch. The eXtensible Markup Language (XML) becomes the standard of data exchange for its strong ability to describe the data and insignificance of infrastructure.
In the beginning of this dissertation, the popular commercial Database products, XML technology and B/S architecture are introduced. Java language, JSP technology and Apache Tomcat have been used in the development process with setting foot in J2EE standards.
The dissertation focuses on the data exchange and sync between two popular Databases; it embodies the data sync between the twin information systems that base on Oracle 9i and Microsoft SQL Server 2000. Firstly, the entire data exchange between two tables in two Databases is studied and implemented by using XML and its surrounding technologies; secondly, referring to the entire data exchange, the delta data exchange is implemented by using delta actions tracking record table in Databases and delta data XML files, simultaneously some ideas of delta exchange scheme are brought out.
Finally, the significance of this dissertation and its relative using techniques are given an overview and a prospect.
Key words Heterogeneous Databases, XML, Update and Sync, Delta Data Exchange, JDOM
目 录
第 1 章 需求分析... 1
1.1 设计任务... 1
1.2 设计论证... 1
1.1.1 题目背景... 1
1.1.2 主流的数据库简介... 2
1.1.3 XML简介... 3
1.1.4 B/S体系结构... 3
1.1.5 如何开始... 4
1.1.6 基本功能... 5
1.1.7 开发环境... 6
1.3 注意问题... 6
1.4 经济技术分析... 7
第 2 章 概要设计... 8
2.1 前提... 8
2.2 综述... 8
2.3 小结... 12
第 3 章 详细设计... 13
3.1 数据流图... 13
3.2 钳子扳手... 15
3.2.1 Java Servlet和Java Server Page. 15
3.2.2 JavaBean体系结构... 16
3.2.3 JDOM.. 17
3.2.4 Apache Tomcat 18
3.2.5 JDBC. 19
3.3 程序描述... 20
3.3.1 必要的附加设计... 20
3.3.2 系统的接入... 23
3.3.3 核心程序段说明... 23
3.3.4 数据转换的操作流程... 23
3.4 部署说明... 24
第 4 章 编码与调试... 26
4.1 核心程序段代码... 26
4.1.1 数据库连接... 26
4.1.2 数据抽取... 26
4.1.3 数据插入... 27
4.1.4 增量动作数据的生成... 28
4.1.5 XML增量文件的生成... 30
4.1.6 增量数据的插入... 31
4.2 调试中的问题... 31
4.3 系统的拆解... 32
4.4 系统的扩展... 33
结论和展望... 34
参考文献... 35
致谢... 36
第 1 章 需求分析
1.1 设计任务
经过多年的信息化建设,许多组织和机构都建立了一系列满足自身需求的管理信息系统,它们往往运行在非同构的DBMS环境下。对信息的分析处理需求促使了信息集成技术的飞速发展,此时,异构数据库之间的数据更新就成为信息集成的关键技术。传统的数据更新技术存在诸多弊病,而利用XML技术可以实现异构数据库间的数据更新,而且具有较好的通用性。
图1.1 典型的数据库系统构成
本次毕业设计的主要内容是设计两个异构数据库之间的双向数据交换接口,其中,前台开发工具采用Java语言(JBuilder)、XML(扩展标记语言),后台数据库管理系统采用Oracle及Microsoft SQL Server。毕业设计任务包括以下功能:
(1) 甲数据库的XML文档生成程序设计(从数据库中提取数据,生成XML文档,下同);
(2) 乙数据库的XML文档生成程序设计;
(3) 甲数据库的XML文档解析程序设计(解析XML文档,将结果写入数据库中,下同);
(4) 乙数据库的XML文档解析程序设计。
1.2 设计论证
1.1.1 题目背景
一般而言,数据库系统由数据库,数据库管理系统和数据库应用程序(DB+DBMS+APP)三个部分组成。目前,数据库系统设计大多是在一个现成的DBMS的支持下进行的,即以一个通用的DBMS为基础开发数据库应用系统。
不同DBMS都有其特定的数据表示格式。为了实现在异构环境中的信息交换和共享,必须对不同数据格式和内容进行转换,主要转换方式有以下几种:
(1) 利用数据库厂商提供的专业工具。很多数据库厂家都提供了专门的数据转换工具。专用数据工具具有考虑充分,构造完备的特点 ,但造价高、使用面较窄。
(2) 利用文本文件作为中间文件。该方法利用纯文本文件作为中间媒介,适合于单数据文件的信息交换。但目前需要交换的信息非常复杂,通常会涉及多个数据文件,使得该方法在文件格式上存在不足,也会增加信息表达的复杂性。
(3) 利用前台开发工具。采用不同接口同时支持多种数据库,实现前台开发工具和后台数据库间的连接、发送SQL语句、处理查询结果,再将数据发送给目标数据库。数据库连接技术主要有包括ODBD、JDBC及ODBC-JDBC桥等。某些程序设计语言采用ADO、DAO及RDO等组件与数据库对话。如Delphi通过ActiveX组件ADO与数据库对话,但实际上仍通过ODBC与后台数据库相连,由数据库访问组件执行访库操作。该方法实现简单,但在数据库信息容量较大的情况下效率较低。
(4) 利用XML技术。XML适用于不同应用间的数据交换,为数据库间信息交换提供了一种公共格式,有效解决了数据的统一接口问题。由于XML具有的自定义、可扩展、平台异构等特性,已成为目前实现信息共享与交换的首选技术。