SQL Server 2005 Compact Edition(本文以后均将SQL Server 2005 Compact Edition缩写为SQL Server CE)是微软推出的一个适用于嵌入到移动应用的精简数据库产品,Windows Mobile开发人员能够使用SQL Server CE开发出将数据管理能力延展到Window Mobile移动设备上的应用程序。虽然SQL Server CE占用的磁盘空间只有3到5兆左右,但是它功能并没有像它的容量那样大幅度缩水。SQL Server CE不但提供了完整的SQL语法,包括内部联接、外部联接和子查询,还内置了数据同步技术的支持。有一点要注意的是,SQL Server 2005 Compact Edition除了可以作为移动数据库在Windows Mobile设备上运行外,它也支持在PC上存放数据,为桌面的应用程序提供数据支持。
下面是SQL Server 2005 Compact Edition的一些主要功能:
·精简的数据库引擎和强大的查询优化器。
·支持合并复制与远程数据访问 (RDA)。
·SQL Server Compact Edition与SQL Server Management Studio 和Visual Studio 2005 完全集成。通过SQL Server Management Studio,可以用可视化的方式来创建SQL Server Compact Edition 数据库、查看数据库对象、创建表、修改表以及执行交互式查询等一系列操作。
·远程数据访问和合并复制,用于同步数据。
·.NET Framework和用于SQL Server Compact Edition的 .NET Compact Framework 数据访问接口 (System.Data.SqlServerCe)。
·支持用于SQL Server Compact Edition的ADO.NET 和OLE DB访问接口。
·SQL语法的子集。
·在台式机、移动设备和 Tablet PC上部署为嵌入式数据库。
·支持ClickOnce部署技术。
其实说SQL Server CE是SQL Server 2005的精简版本一点都不为过,因为SQL Server CE提供了SQL Server 2005的丰富子集,使你能够充分利用现有的SQL Server技能。除此之外,你还可以充分利用现有的数据库编程技能和经验,因为SQL Server CE为托管应用程序提供了一个ADO.NET库,并为本机应用程序提供了一个OLEDB库,这两个库都SQL Server 2005的对应库保持一致(本专题只介绍如何使用ADO.NET对SQL Server CE进行操作),简化了在Windows Mobile设备上开发数据管理应用程序的难度。
SQL Server CE数据库引擎不但提供了关系型数据库的基本功能,还提供了两个非常重要的技术,那就是远程数据访问和合并复制。这两种方法都是用来实现与远程数据库进行数据同步的,使得我们可以很容易将远程数据库中的信息加载到设备端的SQL Server CE数据库中,此外我们还可以在离线状态下对SQL Server CE数据库进行插入、删除、更新等修改操作,最后就可以将修改后的数据回发到远程数据库中,确保了设备端和服务器端的数据同步。
Windows Mobile 6.0对SQL Server 2005 Compact的支持
在微软刚刚发布的Windows Mobile 6.0中,已经在ROM中内置了 .NET Compact Framework 2.0 Service Pack 1 (SP1) 和SQL Server 2005 Compact Edition,这就意味着我们在开发托管代码程序时,无需再将.NET Compact Framework 和SQL Server CE部署到目标设备上。不但减少了部署应用程序所需的时间和开销,也将加快传统的本地代码向托管代码的迁移(Windows Form之所以没有得到广泛的应用,就是因为Windows XP系统中没有内置.NET Framework。这也就是为什么现在Vista操作系统都包含了.NET Framework 3.0的原因,为的就是WPF可以在Vista系统上得到广泛的普及和应用)。
除此之外,不但应用程序在使用 .NET Compact Framework 2.0时比在使用 .NET Compact Framework 1.0时的性能更高,而且在Windows Mobile 6设备上运行的 .NET Compact Framework 2.0应用程序与在较早版本的Windows Mobile设备上运行的同一 .NET Compact Framework 2.0应用程序相比,前者的启动速度要比后者快25%。Windows Mobile 6设备上启动时间得到缩短是因为在设备ROM中安装了.NET Compact Framework 2.0。与将 .NET Compact Framework 2.0安装在RAM中的设备相比,单是将 .NET Compact Framework 2.0 安装在设备ROM中便可使应用程序启动速度提高25%左右。
所有这些性能改进不但意味着用户对你开发的速度更快、响应更及时的应用程序更加满意,还意味着应用程序的开发速度有了很大的提升,因为开发人员等待程序部署的时间减少了。此外,应用程序的启动和运行速度更高,获得应用程序测试结果的时间也就更短。
SQL Server 2005 Compact Edition体系结构
注意,虽然我们只要在Windows Mobile上安装SQL Server CE引擎,就可以在设备上对SQL Server CE数据库进行相应的操作,但是如果你想使用SQL Server CE中的合并复制和远程数据访问两种技术与远程数据库进行数据同步的话,那还就还需要SQL Server CE客户端代理和SQL Server CE服务器端代理两个组件的支持。
总的来说,SQL Server CE的体系结构就是由这三大组件构成的:
·SQL Server Compact Edition 数据库引擎
·SQL Server Compact Edition 客户端代理
·SQL Server Compact Edition服务器端代理
图1展示了SQL Server CE的体系结构以及上述三个组件之间的相互关系。由图可以知道,SQL Server CE包括客户端环境和服务器环境两个部分,SQL Server CE数据库引擎和SQL Server客户端代理都是位于客户端环境中的,即Windows Mobile设备端或PC中。而SQL Server Compact Edition服务器端代理是位于服务器环境中,并且作为一个进程在IIS环境中运行。
SQL Server CE引擎的主要功能就是对SQL Server CE的数据存储区进行管理。通过对每条记录维护少量的更改跟踪信息,这样数据库引擎就可以很方便的跟踪所有进行插入、更新或删除操作的数据库记录。当我们使用合并复制或远程数据访问 (RDA) 这两种连接解决方案时,启用跟踪功能将大大加快数据同步的速度。因为可以根据跟踪信息直接判断那些记录是更改过的,从而将这些更改的记录进行数据同步,避免了设备端和服务器端数据库间对应记录间逐条比较的过程。
SQL Server CE客户端和服务器端之间主要是采用HTTP进行请求,并通过无线局域网或无线广域网进行通讯。这两者间的HTTP请求验证主要是由IIS处理。SQL Server 数据库可以和IIS位于同一台计算机中,也可以分装在不同的计算机中。
当我们需要使用合并复制或RDA实现数据同步的时候,SQL Server CE客户端就向SQL Server CE服务器端发送一个HTTP请求。SQL Server CE服务器端在接受到该请求后,就会与服务器端的SQL Server数据库进行连接,当SQL Server根据请求完成相应的操作后,SQL Server CE服务器端再以HTTP请求向SQL Server CE客户端返回数据。
图1 SQL Server 2005 Compact Edition体系结构 |
SQL Server CE客户端与服务器端之间的通讯,还可以采用安全超文本传输协议(HTTPS)来增加数据的安全性。SQL Server CE可以使用IIS的SSL特性,加密在Windows Mobile上的SQL Server CE和服务器上的SQL Server之间传输的数据,而且为了减少每次传输的数据量,SQL Server CE会对这些数据进行压缩后在进行传输。
SQL Server CE除了可以采用无线局域网和无线广域网和SQL Server进行连接外,还可以通过ActiveSync软件与桌面PC进行连接,再通过PC与SQL Server连接。好了,长话少叙,我将在下一篇文章将介绍SQL Server CE的安装过程,欢迎大家继续关注。