服务器 频道

SQLServer05 M3.0中复制和远程数据访问对比

  远程数据访问 (RDA) 简介

  远程数据访问 (RDA) 使移动应用程序能够访问远程 SQL Server 数据库表中的数据,并将这些数据存储在本地 SQL Server Mobile 数据库表中。随后,该应用程序就可以读取和更新本地 SQL Server Mobile 数据库表。SQL Server Mobile 可以选择跟踪对本地表所做的所有更改。之后,应用程序可以将本地表中更改过的记录更新回 SQL Server 表。

  在 SQL Server Mobile 中,将数据从 SQL Server 表传播至本地 SQL Server Mobile 表的过程称为“拉”数据。将本地 SQL Server Mobile 表中所做的更改传播回 SQL Server 表的过程称为“推”数据。

  在不需要使用 SQL Server Mobile 合并复制的全部功能(包括冲突解决)时,适合使用 RDA。

  决定在 SQL Mobile 应用程序中使用远程数据访问 (RDA) 功能还是复制功能,取决于移动应用程序的用途、功能、规模和要求。每种连接数据解决方案都有各自的优缺点。这些优缺点将在随后各节中加以讨论。


  功能对比

  本节简要介绍对复制与远程数据访问 (RDA) 之间的可对比功能支持的差异。本节的主要目的并不是介绍复制或 RDA 的每项可用功能,而只是提供可对比的那些功能的对比。例如,有许多复制功能没有相应的 RDA 功能,因此这些就不是本文所探讨的内容。


  服务器侵害

  SQL Server Mobile 的大量合并复制功能来自于 SQL Server 的合并复制功能。SQL Server Mobile 通过订阅 SQL Server 发布产品来利用这些功能。通过在服务器上创建发布,可以将大量的系统表添加到即将发布的数据库中,并将“唯一标识符”系统列添加到即将发布的每个用户表中。这些系统对象将被添加到服务器数据库中,用于对复制进行管理。RDA 不需要对服务器上的数据库进行任何更改。由于 RDA 对服务器上的架构没有侵害性,因此 RDA 的功能有一定限制,不像复制那样功能齐备,但是该功能可用于在 SQL Server 与 SQL Server Mobile 之间传输数据,而无需任何服务器端配置工作。在有些情况下,您可能无权变更后端系统中的架构。如果是这种情况,RDA 是潜在的连接选择,可用于在 SQL Server 与 SQL Server Mobile 之间传输数据更改。如果需要强大的复制功能而且无法变更后端数据库架构,则可以考虑的另一个选择是使用中间层 SQL Server 作为复制服务器,然后使用其他无侵害技术 [如数据转换服务 (DTS) 和 Web 服务] 将数据传输到后端系统。

  简而言之,复制功能需要对服务器数据库的架构进行一些细微的更改,但通过这些更改可获得一组非常强大的功能,而 RDA 不需要对服务器数据库进行任何更改,但它不是功能齐备的连接解决方案。

数据和架构定义
  如上文所述,您需要通过在服务器上创建发布来进行复制准备。要复制到订阅者的数据和架构将在服务器上创建发布时指定。首次创建订阅时,将在客户端自动定义架构。发布定义了要复制到订阅者的表(文章),包括行筛选(使用 WHERE 子句限制数据流)和列筛选(限制表中要复制的列)。发布可以包含一个或多个表。在 SQL Server Mobile 数据库中,整个发布定义(包括正在复制的表的数据和架构)是使用一种同步方法创建的。

  使用 RDA 时,客户端控制从服务器中传输哪些数据,包括数据定义(包括行筛选)和架构定义(包括列筛选)。RDA 在每个 RDA 拉进程中只能对一个表进行同步,这与复制有所不同,后者可以在一次同步操作中处理多个表。

  简而言之,最初在 SQL Server Mobile 数据库中创建的数据和架构在服务器上是使用复制功能进行定义的,而在客户端上是使用 RDA 进行定义的。复制发布可以包含多个表,而 RDA 每次下载(RDA 拉进程)只能处理一个表。

 

0
相关文章