SQL Server CE在图书外采查重系统中的应用

时间:2011-07-19

 

    图书采购是图书馆日常工作的重要内容,随着读者信息需求的不断提高,图书馆需要到书市或书店现场采购图书,面对大量不同和类别的图书,很容易重复采购。目前图书外采查重方法有人工记忆查重、计算机二次查重、笔记本电脑查重、数据采集器查重、远程登录查重等。但在图书外采现场,由于空间狭窄,缺乏网络和电源支持,常用的几种查重方法都各有优缺点。
    图书外采查重的关键是在外采现场能准确获取馆藏图书数据,避免重复采购。本文设计的图书外采查重系统基于Windows Mobile智能手机,将嵌入式数据库SQL Server CE应用到系统设计中,实现智能手机的存储数据与图书馆数据同步,采购人员由此掌握馆藏信息,快速准确地识别和记录图书信息,防止图书重复采购。
   1 嵌入式数据库系统开发
   1.1 SQL Server 2005 Compact Edition

    嵌入式数据库是指可以在嵌入式移动设备上运行的数据库,SQL Server 2005 Compact Edition(简称SQL Server CE)是当前比较流行的嵌入式数据库系统之一,是运行于Windows Mobile下的关系数据库系统。SQL Server CE为移动设备提供了一个压缩的数据库解决方案,可以将SQL Server 2000/2005(简称SQL Server)大型数据库的管理能力扩展到移动设备上。
    SQL Server CE以很小的内存(3 MB~5 MB)开销提供了精简的关系数据库,具有强大的数据存储、优化的查询处理,以及可靠、可扩展和可调整的连接等功能,并为开发人员的快速应用程序开发提供了一致的编程接口(OLEDB、ADO.NET)。SQL Server CE是创建企业级的 Windows Mobile 离线数据解决方案。
   1.2 开发环境
    智能手机是指具有开放式操作系统的手机,开发人员可根据操作系统提供的应用编程接口为手机开发各种扩展功能。智能手机操作系统主要有Symbian、Windows Mobile、Linux、Palm OS、Android、Mac OS X、BlackBerry、OMS等。其中,Windows Mobile是微软为智能手机推出的操作系统,将用户熟悉的桌面Windows扩展到移动设备上。Windows Mobile操作系统包括Pocket PC、Smart Phone及Pocket PC Phone(简称PPC),其中PPC主要用于掌上电脑型智能手机。本文图书外采查重系统设计就选用PPC平台。
    应用于Windows Mobile智能手机操作系统的开发语言有Java(J2ME)、C++、Embedded VB、Embedded VC、C#等。图书外采查重系统选用Visual Studio.NET 2008集成开发环境、C#开发语言。C#是一种强大、简单、面向对象的编程语言,是微软新一代开发工具Visual Studio.NET的经典编程语言,C#既保持了C++的语法,还包含了大量的高效代码和面向对象特性,为开发人员带来更高效的开发环境。
    微软在推出智能手机操作系统后,考虑手机的硬件条件制约,推出了.Net Framework的精简版,这就是.NET Compact Framework[1],在开发环境中安装Visual Studio.NET 2008简体中文版,同时安装.NET Compact Framework 3.5以及仿真设备、SDK等。
   1.3 客户端与服务器环境
    SQL Server CE的运行环境是典型的客户端/服务器环境,如图1所示。客户端环境是Windows Mobile应用程序的运行环境,也是SQL Server CE数据库的运行环境,通过微软Activesync程序(使用USB、串口、蓝牙或Wi-Fi网络)可以将智能手机连接到服务器环境;服务器环境是运行Internet信息服务(简称IIS)和SQL Server数据库的环境,IIS和SQL Server既可以运行在一台机器上,也可以运行在不同的机器上。SQL Server CE与SQL Server之间可以通过远程数据访问RDA(Remote DataAccess)和合并复制(Replication)两种方式进行数据同步。

   1.4 远程数据访问RDA
    图书馆都有图书馆自动化集成系统,数据都存储在大型数据库系统中,例如Oracle、SQL Server 2000/2005、Sybase等。在任何一个分布式移动应用环境中,移动设备与数据中心的数据交互是要解决的重点问题,在系统设计中,如何实现智能手机中的数据库与图书馆数据库一致为关键,这就是数据同步。
    SQL Server CE数据库通过IIS和远程数据访问RDA与SQL Server数据库进行通信,远程数据访问RDA为智能手机应用程序访问SQL Server数据库提供了一种简单的访问方式,可以将SQL Server数据库的数据到智能手机的SQL Server CE数据库中,也可以将智能手机的数据写入到SQL Server 数据库中,这样就实现了数据同步,RDA非常适合开发离线数据解决方案。
    图书外采查重系统使用远程数据访问RDA技术实现了数据同步,RDA主要由SQL Server CE数据库引擎、SQL Server CE客户端代理和SQL Server CE服务器端代理三部分组成。并且RDA提供了如下三个主要方法实现SQL Server CE与SQL Server数据同步。
    (1)Pull方法:将SQL Server数据库中的表“拉”到SQL Server CE中。在调用此方法时,可以设置数据跟踪选项,如果设置数据跟踪,则SQL Server CE数据库引擎会自动跟踪对数据的插入、修改和删除操作。
    (2)Push方法:如果在Pull时设置了数据跟踪选项,可以将SQL Server CE中的数据“推”回到SQL Server中,在SQL Server CE中对数据的任何修改都会反映到SQL Server中。
    (3)SubmitSQL方法:直接向SQL Server数据库提交一个命令。
   2 系统设计与实现
   2.1 建立数据库

    嵌入式数据库SQL Server CE的数据存储在一个扩展名为.SDF的文件中,SQL Server CE 只支持一个链接,但多个命令可以共享同一链接。.NET Compact Framework下开发SQL Server CE统一使用System.Data.SqlServerCe.DLL[2],该DLL封装的命名空间和类是一致的,在VS2008下开发默认使用的.NET Compact Framework版本是3.5,默认使用的SQL Server CE版本是3.5,一般存放在C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Devices\路径下。在智能手机上创建一个空的本地SQL Server CE数据库,建立数据库程序代码如下:

 //创建SQL Server CE数据库文件LIBRARY.SDF
     using System.Data.SqlServerCe;
    string strConn="DATASOURCE="+dbPath+@"\LIBRARY.SDF";
    SqlCeEngine engine=new SqlCeEngine(strConn);
    engine.CreateDatabase();
    engine.Dispose();
 

   2.2 数据同步
    数据同步功能指通过远程数据访问RDA从图书馆自动化集成系统SQL Server数据库将藏书数据到智能手机的LIBRARY.SDF数据库中。远程数据访问RDA需要用到.NET Compact Framework 3.5中System.Data.SqlServerCe命名空间中的SqlCeRemoteDataAccess类[3-4],数据同步程序代码如下:
    //引用命名空间SqlCeRemoteDataAccess
    using SqlCeRemoteDataAccess;
    //实例化并配置远程数据访问
//SQLCeRemoteDataAccess对象
    SqlCeRemoteDataAccess rda=new SqlCeRemoteDataAccess();
    rda.InternetUrl="https://216.210.98.2/SQLServerMobile/
SQLcesa30.dll";
    rda.InternetLogin="IISUserName";
    rda.InternetPassword="IISPassword";
    rda.LocalConnectionString="DATASOURCE="+dbPath+
@"\LIBRARY.SDF";
    //从SQL Server数据库中同步数据
    rda.Pull("Books","SELECT ISBN,Title,Author,BookConcern,Amount FROM Books","Provider=SQLOledb;Server=LIS_Server;Database=LIS;uid=GD;pwd=GD;",RdaTrackOption.TrackingOnWithIndexes,"ErrorTable");

   2.3 图书查重设计
    通过远程数据访问RDA将图书馆自动化集成系统中的藏书数据同步到智能手机的数据库LIBRARY.SDF中,图书外采时,智能手机应用程序链接SQL Server CE数据库LIBRARY.SDF,检索Books数据表中是否有相关图书记录。
    开发手机数据库程序所用到的控件和类与开发桌面数据库程序具有相似性,如SqlCeConnection对应SqlConnection,SqlCeDataAdapter对应SqlDataAdapter,SqlCeCommand对应SqlCommand等。图书外采查重系统基于.NET Compact Framework3.5设计,要在智能手机上创建、管理和查询SQL Server CE数据库,必须在程序中添加对System.Data.SqlServerCe的引用,图书查重程序代码如下:
    //命名空间System.Data.SqlServerCe    using System.Data.SqlServerCe;
    //创建SqlCeConnection对象,链接数据库文件LIBRARY.SDF
    SqlCeConnection objCeConnection=new SqlCeConnection("DATASOURCE="+dbPath+@"\LIBRARY.SDF");
    objCeConnection.Open();    //根据ISBN号,生成图书查询SQL语句
    SQLText = "SELECT×FROM Books WHERE ISBN="+txtISBN.Text;
    //创建SqlCeCommand对象
    SqlCeCommand objCeCommand=new SqlCeCommand(objCeConnection);
    objCeCommand.CommandText=SQLText;
    //创建SqlCeDataReader对象
    SqlCeDataReader objCedr=objCeCommand.ExecuteReader();
    //查询馆藏图书是否存在
    if (!objCedr.Read())
        {  listBox.Items.Add("馆藏没有ISBN号=
"+txtISBN.Text+"图书,可以采购。");}
    else
        {
        listBox.Items.Add("ISBN号:"+objCedr["ISBN"].ToString());
        listBox.Items.Add("书名:"+objCedr["Title"].ToString());
        listBox.Items.Add("作者:"+objCedr["Author"].ToString());
        listBox.Items.Add("出版社:"+objCedr["BookConcern"].ToString());
        listBox.Items.Add("藏书数量:"+objCedr["Amount"].ToString()+"本");
        listBox.Items.Add("馆藏图书已有,建议不要采购!");
        }

   3 系统应用情况
   3.1 系统功能

    图书外采查重系统功能包括图书查重、参数设置、数据管理等。
    参数设置主要是设置远程访问SQL Server数据库的用户名和密码,访问IIS的用户名和密码参数,以及系统应用背景图片、信息提示等,如图2所示。


    图书查重方式有根据ISBN号查重和根据书名、作者、出版社等组合查重[5],其中根据ISBN号查重方式是主要查重方式。ISBN是国际标准书号International Standard Book Number的简称,通常每本书都有的ISBN号,通过带有蓝牙接口的条码枪扫描图书ISBN条形码,就可以检索数据库中的图书,如果有,就会显示馆藏图书的详细信息,同时发出“嘀嘀嘀”的语音提示,图书查重界面如图3所示。

   3.2 系统应用
    图书外采查重系统应用流程是:外出购书前,工作人员将图书馆自动化集成系统中的藏书数据同步到智能手机,生成数据库文件LIBRARY.SDF,拷贝到智能手机存储卡中。图书外采时,工作人员在智能手机上通过查重系统检索LIBRARY.SDF数据库中是否有相关的图书记录,由于查重是在智能手机上进行,不需要网络连接,因此速度很快。
    系统设计成功运行于多普达S700智能手机,操作系统Windows Mobile 6.1简体中文版,主频500 MHz,256 MB ROM、128 MB RAM、4 GB存储卡,2.8英寸、66536色TFT彩色屏幕、分辨率240×320像素。
    本文设计的图书外采查重系统操作简单、体积小、重量轻、方便携带,不需要网络和外接电源支持(可配多块电池),省时、省力、准确、高效,可以适应复杂的图书外采现场,达到事半功倍的效果。应用嵌入式数据库SQL Server CE存储数据,数据存储量大,通过数据同步,智能手机与馆藏图书信息直接对接,准确掌握馆藏图书数据,防止图书重复采购。系统设备投资不高(一部中档Windows Mobile智能手机约2 000元左右),收效显著,是适用于图书馆外采查重的方案。

   3.3嵌入式数据库介绍

    嵌入式数据库的名称来自其独特的运行模式。这种数据库嵌入到了应用程序进程中,消除了与客户机服务器配置相关的开销。嵌入式数据库实际上是轻量级的,在运行时,它们需要较少的内存。它们是使用精简代码编写的,对于嵌入式设备,其速度更快,效果更理想。嵌入式运行模式允许嵌入式数据库通过 SQL 来轻松管理应用程序数据,而不依靠原始的文本文件。嵌入式数据库还提供零配置运行模式,这样可以启用其中一个并运行一个快照。

  在嵌入式系统中,对数据库的操作具有定时限制的特性,这里把应用于嵌入式系统的数据库系统称为嵌入式数据库系统或嵌入式实时数据库系统(ERTDBS)。

  可靠性要求是毋庸置疑的,嵌入式系统必须能够在没有人工干预的情况下,长时间不间断地运行。同时要求数据库操作具备可预知性,而且系统的大小和性能也都必须是可预知的,这样才能保证系统的性能。嵌入式系统中会不可避免地与底层硬件打交道,因此在数据管理时,也要有底层控制的能力,如什么时候会发生磁盘操作,磁盘操作的次数,如何控制等。底层控制的能力是决定数据库管理操作的关键。

  目前嵌入式软件系统开发的挑战之一,体现在对各种数据的管理能否建立一套可靠、高效、稳定的管理模式,嵌入式数据库可谓应运而生。

  嵌入式数据库是嵌入式系统的重要组成部分,也成为对越来越多的个性化应用开发和管理而采用的一种必不可少的有效手段。

  嵌入式数据库用途广泛,如用于消费电子产品、移动计算设备、企业实时管理应用、网络存储与管理以及各种专用设备,这一市场目前正处于高速增长之中。 举简单例子,手机原来只用来打电话、发短信,现在手机增加了很多新的功能,比如彩信、音乐、摄影、视频等等,应用的功能多了,系统就变得复杂。

    常用的嵌入式数据库的比较  2.1 Berkeley DB 技术特点 1. Berkeley DB是一个开放源代码的内嵌式数据库管理系统,能够为应用程序提供高性能的数据管理服务。应用它程序员只需要调用一些简单的API就可以完成对数据的访问和管理。(不使用SQL语言) 2. Berkeley DB为许多编程语言提供了实用的API接口,包括C、C++、Java、Perl、Tcl、Python和PHP等。所有同数据库相关的操作都由Berkeley DB函数库负责统一完成。 3. Berkeley DB轻便灵活(Portable),可以运行于几乎所有的UNIX和Linux系统及其变种系统、Windows操作系统以及多种嵌入式实时操作系统之下。Berkeley DB被链接到应用程序中,终端用户一般根本感觉不到有一个数据库系统存在。 4. Berkeley DB是可伸缩(Scalable)的,这一点表现在很多方面。Database library本身是很精简的(少于300KB的文本空间),但它能够管理规模高达256TB的数据库。它支持高并发度,成千上万个用户可同时操纵同一个数据库。Berkeley DB能以足够小的空间占用量运行于有严格约束的嵌入式系统。 Berkeley DB在嵌入式应用中比关系数据库和面向对象数据库要好,有以下两点原因: (1)因为数据库程序库同应用程序在相同的地址空间中运行,所以数据库操作不需要进程间的通讯。在一台机器的不同进程间或在网络中不同机器间进行进程通讯所花费的开销,要远远大于函数调用的开销; (2)因为Berkeley DB对所有操作都使用一组API接口,因此不需要对某种查询语言进行解析,也不用生成执行计划,大大提高了运行效。

   3.4 SQLite

  轻量级别数据库SQLite的主要特点: 1. 支持事件,不需要配置,不需要安装,也不需要管理员; 2. 支持大部分SQL92; 3. 一个完整的数据库保存在磁盘上面一个文件,同一个数据库文件可以在不同机器上面使用,支持数据库到2T,字符和BLOB的支持仅限制于可用内存; 4. 整个系统少于3万行代码,少于250KB的内存占用(gcc),大部分应用比目前常见的客户端/服务端的数据库快,没有其它依赖 5. 源代码开放,代码95%有较好的注释,简单易用的API。带有TCL的编译版本。

   3.5 Empress(商业数据库)

    开发阶段特点:

    1. 可嵌入程序,该特性使应用程序和数据库工作于统一地址空间,增强了系统的稳定性,提高了系统的效率。

    2. 确定的响应时间,Empress 可以使数据的响应时间相对一致,使用者可以设定一个超时限制,如果在规定时间内没有完成插入,修改等操作,系统会报错。

    3. 快速的操作Empress 提供了内核级的CAPI,称为MR, 用MR编写的应用程序在执行时不需要解析。另外在MR中加速的机制还包括的加锁控制,内存管理和基于记录数量的选择功能。

    4. 灵活的开发方式,Empress 提供多种开发接口,加快开发进程而无需开发者重新学习开发语言和熟悉开发环境。

    5. 友好的存储方式,Empress 数据库可以放在操作系统支持的任何存储设备中,Empress的表单甚至可以分割放在不同的存储设备中,比如在内存,硬盘和CD-ROM中。

    6. 微型内核结构 Empress 高度单元化, 可根据需要选择需要的单元,从而缩小产品中Empress 数据库所占用的资源。

    7. 宽广的平台支持,Empress 支持多种硬件平台和软件平台, 也可移植到客户要求的硬件平台或操作系统。

    技术优势:

    1. 微型内核结构,占用少量内存空间,特别适合紧凑性的设计

    2.一周7天,每天24小时连续工作,无需任何额外操作免维护

    3. 内核级 CAPI 接口,使运行速度化

    4. 高度灵活的SQL接口5. 的掉电恢复能力

    6. 强壮的交易和锁存机制

    7. 支持SCSI,RAID,IDE,RAM,CD-RW,DVD-ROM,CF,等存储介质

    8. 支持Unicode 码

    9. 引擎可加载于磁盘和内存


  
上一篇:一种消除系统温漂和时漂的设计和实现
下一篇:基于QS的字符串匹配改进算法

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料