- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于SQL语句的通用数据交换方法研究与应用.doc
基于SQL语句的通用数据交换方法研究与应用
摘 要:为了避免频繁地修改数据交换系统程序代码,提高数据交换系统的通用性,提出了基于SQL语句的通用数据交换方法。该方法根据源数据库和目的数据库结构编写SQL语句,保存至XML文件。数据交换时,数据交换系统从XML文件读入SQL语句,执行相应操作,完成数据交换。该方法已在实践中得到广泛应用。
关键词:数据交换;通用数据交换方法;SQL语句;XML
中图分类号:TP301
文献标识码:A 文章编号:1672-7800(2015)005-0044-03
作者简介:葛从兵(1966-),男,江苏南京人,硕士,南京水利科学研究院教授级高级工程师,研究方向为软件工程;陈剑(1975-),男,江苏南京人,南京水利科学研究院工程师,研究方向为计算机应用;严吉?(1987-),男,江苏南京人,硕士,南京水利科学研究院工程师,研究方向为计算机理论。
0 引言
随着计算机技术的发展,各行各业对信息化的需求越来越强烈,信息化水平也越来越高。作为国家防洪抗旱减灾体系的重要组成部分和国民经济的重要基础设施,水库也在逐步开展信息化工作。在水库信息化过程中,经常需要在局域网范围内进行数据共享、数据集成或汇聚,这不可避免地涉及到数据交换。但由于水库的监控系统和信息系统由不同时期的不同承建商建设,导致同一水库的不同系统或不同水库的同一类型系统在数据存储上存在诸多差异,若数据交换系统仅针对特定水库,则每个水库的数据交换系统都要根据水库具体情况修改其程序代码,不仅修改工作量大,系统稳定性也得不到保证。因此,本文对数据库差异和数据交换过程进行研究,提出通过读入XML文件中SQL语句[1]实现数据交换的通用数据交换方法,并在实践中得到应用。
1 数据存储差异性与交换过程
1.1 数据存储差异性
现在的信息系统一般采用数据库存储数据,很少采用文件形式存储数据,故本文仅讨论采用数据库的数据存储形式。
在数据交换中,源数据库和目的数据库的数据存储差异性主要体现在以下几个方面:
(1)数据库管理系统不同。常用的数据库管理系统有SQL Server、Oracle、MySQL、Sybase、DB2等[2],早期系统有的还采用Access。
(2)实体-联系模型不同。相同一组信息,源数据库存储在两个表中,目的数据库存储在一个表中,或源数据库存储在一个表中,目的数据库存储在两个表中。
(3)字段类型不同。相同信息,源数据库以数值型存储,目的数据库以字符型存储,或源数据库以字符型存储,目的数据库以日期型存储。
(4)字段长度不同。相同信息在源数据库和目的数据库里字符串长度、数值长度或小数位数不一样。
(5)标示符命名规则不同。表名和字段名差异较大。
(6)同一对象,如测点,其名称或编码在源数据库和目的数据库里不同。
(7)同一组信息,源数据库里存储的属性比目的数据库里少。
这些差异性要求数据交换时需进行必要的转换。
1.2 数据交换过程
数据交换一般包括3个步骤:数据提取、数据转换、数据写入。数据提取先连接源数据库,然后从相关表中提取所需数据,数据提取需要知道源数据库的数据库管理系统以及源数据库表结构;数据转换是将来自源数据库的数据转换为符合目的数据库要求的数据,包括数据拆分、数据重组、数据类型及长度变换等,数据转换需要知道源数据库与目的数据库的表结构以及它们之间的对应关系;数据写入先连接目的数据库,然后将转换后的数据写入相关表,数据写入需要知道目的数据库的数据库管理系统以及目的数据库表结构。
数据写入时需考虑目的数据库中已有数据的更新问题。由于数据交换一般针对时间序列数据,即数据元组中含有时间戳,因此可以根据时间段来处理数据更新问题。数据更新有两种方式:①先检测目的数据库是否已有该时间段数据,如果有,用更新语句更新数据,否则用插入语句插入数据;②先直接删除目的数据库中可能有的该时间段数据,然后用插入语句插入数据。后一方式操作相对简单。
2 通用数据交换方法
通用数据交换方法将一次完整的数据交换分为若干个数据交换过程,每个交换过程可以针对数据库里的一个表,也可以针对数据库一个表中的特定数据。数据交换过程由保存在XML文件中的SQL语句控制,SQL语句根据源数据库和目的数据库及其对应关系编写。
控制数据交换过程的SQL语句存储格式如下:
DataExchange元素表示一个数据交换过程,它包含一个交换过程所需的SQL语句。
SourceConnection元素和TargetConnection元素为源数据库和目的数
文档评论(0)