基于SQL重现数据同步方法移动环境实现.docx

基于SQL重现数据同步方法移动环境实现.docx

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

??

?

??

基于SQL重现数据同步方法移动环境实现

?

??

?

?

?

?

?

?

?

???

?

?

?

?

?

摘要:在复杂的移动环境下,实现异构数据库之间的数据复制是一件复杂的事情,本文在分析现有大型分布式系统的数据同步方法的基础上,对数据复制方法在移动环境下的应用进行了研究,并在实际中进行了验证。

关键词:移动环境;soL重现方法;异构数据库复制

一、引言

随着通讯技术和计算机网络的飞速发展,越来越多的企业已经不满足于传统方式下的信息交换和数据管理形式,移动计算方式的信息交流给它们带来了新的机遇和挑战。人们通过互联网和无线接入技术能随时随地获得信息和处理信息,大大扩展了工作空间和交流空间。

但是由于移动通信具有带宽有限、频繁断接的特点(如图一),而移动数据库很难像普通的数据库那样进行长时间稳固的连接:这样就必须在移动客户端保存一个服务器数据库的副本。副本中的数据是服务器上数据的一个子集,在与服务器连接断开的情况下,用户可以对移动客户端的数据进行读取、修改、插入和删但服务器上的数据可能发生变化,这样就会造成服务器段数据与移动端的不一致,如此一来,移动客户端与服务器的数据同步策略就显得特别重要。此外,服务器和移动客户端操作系统平台和数据库的多样化,也注定了异构数据库之间数据同步方法的多样性。

SQL重现方法是实现异构数据库数据同步的方法之一,但是由于移动应用的多样性,异构服务器之间的数据同步策略并不能直接应用在移动环境下,必须根据具体的应用要求加以改进。本文结合本人在开发电力智能巡检系统过程中的实践认识,对SQL重现方法在移动环境下的应用进行了分析和探讨。

二、SQL重现方法及其改进

(一)SQL重现方法

SQL重现方法的基本思想是通过设置触发器或者在上层程序的数据访问层中捕获对数据库的变更操作(即INSERT、UPDATE、DELETE语句,对数据库中数据有修改作用),并将对数据库进行变更操作的soL语句保存在专门的数据操作。

如图二,在需要进行数据同步时,将相关的SQL语句序列传输到需要同步数据的服务器端,在此服务器端将按顺序执行这些SQL语句,以此实现数据的同步。

(二)SQL重现方法的改进

1、基于触发器的实现

SQL重现方法可以通过在需要进行同步的数据表上设置触发器来完成,也可以在上层应用程序的数据操作层中完成。

目前多数应用系统实现的分布式数据同步机制一般基于数据库管理系统的触发器机制,触发器可以在数据库发生相关事件时自动执行预定义的操作,触发器的操作一般可分为3个级别:数据记录级别、语句级别和数据库级别.在实现数据同步时,常采用数据记录级别的触发器,该级别的触发器能够监控数据表每条记录的更新状况,从而捕捉同步的数据源。

但是基于触发器的同步机制也有其缺陷:

1)触发器通常和单个数据表绑定,需要为每个需要同步的数据表建立相应的触发器。

2)触发器监控数据更新的粒度为单条数据记录,无法保证数据变更的事务特性。为保证数据库中数据的一致性,应用程序对数据的更新必须采用事务机制,数据同步时也必须保证事务的完整性,否则就无法保证同步数据后数据的一致性。

3)在异构数据库环境下,要为每种数据库建立不同的触发器。

4)大量使用触发器或者在触发器中实现复杂的功能会对系统的性能造成很大的影响。

5)在移动应用中,很多嵌入式数据库并不支持触发器,所以,基于触发器的数据同步机制并不适合移动应用。

2、应用程序的数据访问层实现

李晓航,胡晓鹏,李岗(2009)提出了一种基于应用程序数据访问层的实现方法,但是其提出的应用环境是大型分布式系统,并不能直接应用于移动环境中。所以,必须要针对每一个具体的移动应用要求进行改进,本文以开发电力智能巡检系统的过程中针对具体应用对SQL重现方法进行了改进。

在一个系统结构良好的大型系统中,一般都有一个专门的数据访问层来负责对数据库的访问、修改操作。在这样的系统中,所有的数据库访问操作都必须经过这样的数据访问层来实现,所以,对soL语句的捕获就可以在这里实现。

在这里我们假设数据访问层采用ADO、NET来访问数据库,为了实现数据变更,数据访问层一般提供三类方法,一种用来实现一条简单soL语句的执行,一种用来在一个事务中执行多条SQL语句,还有一种是通过存储过程来实现复杂的数据库操作。下面我们以执行事务操作的方法为例来介绍变更soL语句的执行和对这些语句的捕获过程(其他两种情况方法类似,存储过程中也可以实现),其实现代码如下(c#语言描述):

publicstaticvoidExecuteSqlTran(ArrayListsoLStringList,stringReplDest,boolisNeedRepl)

using(SqIConnectionconn=newSq

文档评论(0)

136****6482 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档