装备综合保障异构数据转换研究
2009-03-14董殿伟高辉董岳苏京晶崔小杰
董殿伟 高 辉 董 岳 苏京晶 崔小杰
摘要:在装备使用过程综合保障分析与评价总体技术研究中,针对各自开发的工具和正在使用的不同应用系统间的数据格式不一,不能实现信息共享问题,分析了XML在解决异构数据库共享问题中的优势,并在此基础上提出了基于XML的异构数据库集成方案,设计了共享平台的框架,并用编程工具Delphi完成了设计功能的开发,实现了异构数据的格式转换、数据共享。
关键词:数据转换;转换接口;关系数据库;XML;Delphi
中图分类号:TP391文献标识码:A文章编号:1002-3100(2009)01-0070-04
Abstract: In research analyse with appraising of uses the equipment integrated logistic support of course, with question of the data formatting is not varied and not be realized information sharing between each develops tools and the different application systems, analyse the superiority in different constructing the data base sharing question of solves based on the XML, putting forward to different constructs the integrated scheme of atad based on XML, design the frame to enjoy together the terrace,accomplish the development of function with delphi tool, realize the different pattern change and enjoyed together of data.
Key words: data conversion; conversion interface; relational database; XML; Delphi
0引言
我军在信息化建设的不同时期中,开发研制了很多基于不同操作系统和数据库技术的应用系统和工具,对提高装备管理的信息化水平曾发挥了重要作用。但是由于缺乏统一规划,这些工具和应用系统都是各自独自开发,其数据格式、数据存储方式、运行环境各不相同,致使各应用系统、工具之间数据无法共享,形成了“信息孤岛”现象。随着信息化建设的不断发展,各个系统在数据交换及数据共享方面存在的局限越来越大,对信息化条件下战场指挥的负面影响也越来越大。所以,当务之急是需要建设一个装备使用过程装备保障综合数据环境,通过该数据环境,来实现装备研制阶段数据与使用阶段数据的融合,实现部队保障数据、保障功能和保障过程的综合集成,进而形成高层次的装备保障决策支持能力。数据接口研究是装备保障综合数据环境的重要组成部分,是实现数据共享的关键,是实现异构数据库、数据源的资源共享的重要研究内容。
本文讨论的数据接口技术是借助XML技术实现不同DBMS的两个异构数据库系统间(Access数据库和SQL Server数据库)进行的数据转换,以实现数据共享。
1XML简介
XML(extensible markup language)是1998年由W3C 正式发布的,是SGML的一个子集。XML主要用于描述数据文档中数据的组织和安排的结构,只为数据的结构化提供了一套规则。它的关注点不是数据在浏览器中如何布局和显示,而是数据内容的组织与结构。
XML具有以下一些特点[1]:①具有可扩展性,XML是一种元标记语言,可以定义其他语言;②结构性强,易于处理,XML对格式的定义非常严格,具有良好层次结构;③纯文本,与平台无关,XML将数据保存在标准的文本文件中,可以使用任何文本编辑工具来创建和编辑XML文档,它可无须任何更改直接移植到其他平台上;④数据存储与数据显示的分离,XML文档定义的仅仅是数据存储的结构和关系,对于数据的显示没有任何的约束和限制,这也是XML最值得称道的地方;⑤很强的连接能力,可以定义双向连接、多目标连接、扩展连接和两个文档间的连接。
2XML文档与关系数据库数据的转换原则
XML文档与关系数据库数据之间的转换包括关系数据库数据到XML文档的转换和XML文档到关系数据库数据之间的转换。
从XML文档到关系数据库数据转换原则为[2]:
(1)为每一个有子元素或者混合内容的元素建立一个表,该表具有一个关键字;
(2)为每一个混合元素建立一个独立的表,该表通过父元素表中的关键字建立关联;
(3)为每一个元素的单值属性创建一个字段。
其结构示意图如图1所示。
从关系数据库数据到XML文档转换的原则为:
(1)为每一个表创建一个元素;
(2)为表中的每一个字段创建一个属性;
(3)对每一个主键和外键关联,将外间所在的表创建的元素作为子元素插入主键所在的表所对应的元素中。
其结构示意图如图2所示。
3基于编程工具Delphi的实例实现
在本实例中使用的数据是一个装备信息表,它是存储在Access数据库中的一个表,如图3所示。
系统启动后进入系统控制界面,如图4所示。
这时用户可以选择不同的功能,本文主要是完成异构数据库数据转换,为此选择第三模块。
系统进入下一界面数据转换界面。
点击从ACCESS数据库读取数据按钮,通过选择数据库中的表,显示相关表的信息,本实例采用ADO组件直接读取数据库中的表装备信息的数据信息。如图5所示。
点击转换至XML并树状显示按钮,则将表装备信息的数据转换成XML文档并呈树状显示,如图6所示。
部分主要代码如下(a1为ADOTable的简称,x1为XMLDocument的简称):
a1.First; //将表置于第一条记录
x1.Active:=true; //激活XMLDocument
x1.DocumentElement:=x1.CreateNode('xml');
while not a1.Eof do
begininode:=x1.DocumentElement.AddChild(a1.TableName);//定义第一个节点
for i:=0 to a1.FieldCount-1 do
beginichild:=inode.AddChild(a1.Fields[i].FieldName);
ichild.Text:=a1.Fields[i].AsString;
end;
a1.Next;
end;//以上循环为表的每一个字段创建XML节点并为其赋值
treeview1.Items.Clear;
domtotree(x1.DocumentElement,nil);
treeview1.FullExpand;//将XML文档树状显示
点击存储至SQL Server数据库按钮,则将XML文档的相关信息转换成关系数据并存储在Sql Server数据库中,如图7所示。
部分主要代码如下:
for n:=0 to xmlnode.ChildNodes.Count-1 do
begin
s[n]:=xmlnode.ChildNodes[n].NodeName;
end;
ss:=′create table ′+trim(c1.Text)+′(′;
for m:=0 to 20 do
if s[m]<>′′then
begin
ss:=ss+s[m]+′char(30),′;
ji:=ji+1;
end;//以上定义Sql语句的字符串
with aq2 do
begin
close;
sql.Clear;
sql.Add(ss);
execsql;
end;//在Sql Server数据库中建立一个与原数据库同名的表
for k:=0 to m-1 do
begin
begin
xmlnode:=xmlnode.ChildNodes[k];
a2.Append;
for n:=0 to ji-1 do
begin
a2.Fields[n].AsString:=xmlnode.ChildNodes[n].NodeValue;
end;
end;//为新建的表的每一个字段赋值
a2.Post;
a2.Active:=true;//将新建表显示给用户。
图8为程序运行前和运行后Sql Server数据库变化示意图。
通过对比,可以清晰的看到运行后在Sql Server数据库建立了一个表名为装备信息表。
4结束语
本文是基于XML的用编程工具Delphi实现的装备使用过程中装备综合保障异构数据共享研究及实现,由于XML技术的特性使得它在异构数据库间实现信息的高效传输、交换、共享并保证数据的完整性上发挥着越来越重要的作用。在应用系统中利用上述接口模块进行XML数据与关系数据库中表格记录的相互转换可以减少编码的重复。同时由于屏蔽了低层数据库的差异和转换的过程,具有一定的应用价值。
参考文献:
[1] Peter G. Aitken. 微软XML技术指南[M]. 北京:中国电力出版社,2003.
[2] 张家耕,谢晓竹. XML网络编程技术[M]. 北京:国防工业出版社,2002.
[3] 梁鹰,罗伟其. 异构数据库的数据转换在大型信息系统中的实现[J]. 计算机工程与应用,2000,36(9):103-105.
[4] 卲敏,李力鸿,郑震坤,等. XML编程实践[M]. 北京:清华大学出版社,2002.