admin 管理员组

文章数量: 1086019


2023年12月18日发(作者:wpf入门教程)

基于WinCE的嵌入式数据库研究

摘 要:鉴于WinCE下硬件资源的匮乏,大型的基于服务的数据库显得累赘而不可取,寻找可嵌入、可配置的小型数据库非常重要。结合实际WinCE开发,研究两种嵌入式数据库的使用并给出各自的优缺点。

关键词:WinCE;嵌入式数据库;SQLite;SQL Server CE

1 SQLite概述 1.1 SQLite简介

SQLite是一款轻量的、开源的数据库,是遵守ACID的关系型数据库,它的设计目标是嵌入式的。SQLite所占用的资源非常少,无需非常复杂的配置就可以使用该数据库,同时它能够支持Windows/Linux/Unix等主流操作系统,同时能够与很多程序设计语言结合起来,并且处理速度相当快。 1.2 SQLite功能和特性

(1)SQLite除支持最基本的增、删、改、查功能外,还支持ACID、视图、事务、触发器、索引和表达式等。

(2)零配置。无需复杂的安装和配置,移植数据库只要复制文件就可以了。

(3)支持数据库大小可达到2TB。

(4)提供简单易用的API来操作数据库。

(5)开放源代码。提供完整的C语言源代码并给予最详尽的注释。

(6)支持多种开发语言。如C,C

Python等。

2 SQL Server CE概述 2.1 SQL Server CE简介

++Java,C,PHP, SQL Server Compact Edition是微软推出的适用于嵌入到移动应用的精简数据库产品,简称SQL Server CE或SqlServerCe。虽然该数据库是SQL Server的精简产品,但其功能并未大幅缩水,它也是一个基于文件的数据库。该数据库不仅支持WinCE也可以在普通Windows当中使用。

2.2 SQL Server CE功能和特性

(1)精简的数据库引擎和强大的查询优化器。 (2)支持合并复制和远程数据访问。

(3)支持用于SQL Server CE的和OLE DB访问接口。

(4)可以与Visual Studio无缝集成,操作起来非常方便。 (5)SQL语法的子集。

(6)支持大量的内部函数,包括数学函数、字符串函数和内部函数等。

3 两种数据库的比较 3.1 相同点

相同点为:①都是关系型数据库;②都是文件型数据库;③都支持数据库加密;④都支持基本的SQL语法;⑤都支持ACID和事务处理;⑥都可以与Visual Studio集成起来;⑦都无需复杂配置即可使用。

3.2 不同点 不同点为:①所支持的操作系统有所差异。SQL Server CE主要支持Windows和WinCE,而SQLite所支持的操作系统远不止这两款,它还支持Linux和Unix等主流操作系统;②所支持的开发语言有所差异。SQL Server CE主要支持在微软操作系统上使用的VC ++要是C #。而SQLite几乎支持所有的编程语言;③所提供的API有所不同。在用C #进行.NET编程时,它们所提供的API比较相似。但如果直接用C/C ++进行开发时,所提供的API明显不同;④执行效率不同。这一点会在本文后面进行研究;⑤所支持的SQL语法有所差异。比如SQL Server CE不支持视图,而SQLite是支持视图的。

4 详细实践

此处结合实际WinCE开发,框架使用.NET Compact

Framework(简称.NET CF),编程语言使用C #,开发工具使用

Visual Studio 2008(简称VS2008).通过具体实践给出两款数据库的相同点和不同点。

4.1 建立两款数据库开发所用的接口 在实际使用时,直接使用SQLite或SQL Server CE所提供的API来做显得累赘。在此提供一个接口ISqlHelper,后面进行这两款数据库开发时只要实现该接口就可以了,接口内容如下:

interface ISqlHelper {

// 连接字符串

string ConnectionString{get;set;} // SQL语句

String CommandText{get;set;} // 打开数据库连接

bool OpenConnection(); // 关闭数据库连接

bool CloseConnection(); // 执行更新语句

bool ExecuteNonQuery();

// 执行SELECT语句返回ArrayList ArrayList ExecuteArrayList();

// 执行SELECT语句返回DataTable DataTable ExecuteDataTable();

// 开始事务

void BeginTransaction(); // 在事务中执行更新语句 void ExecuteNonQueryUseTransaction(); // 结束事务

void EndTransaction(); }

从ISqlHelper接口可以看出,在后面使用SQLite及SQL

Server CE实现该接口时所具有的一些功能,如执行普通的增、删、改、查和事务处理功能。 4.2 SQLite开发说明

VS2008开发环境默认未集成SQLite,要想让SQLite支持C

#开发,请到网站上下载支持的SQLite SDK,本文使用的是 2.0 Provider for

SQLite(SQLite-1.0.66.0-setup).exe。

安装该SDK的最后一步会提示SQLite与VS2008的集成。选择与VS2008集成后就可以使用VS2008开发环境提供的Server Explorer管理SQLite数据库了。

在SQLite SDK安装目录binCompactFramework目录下有两个DLL,这是做.NET CF开发时必须使用的动态链接库。文件是原生DLL文件,使用时要将该文件复制到项目生成文件的同级目录下才能实现数据库的功能。

是在C+#开发时在项目中需要引用的动态链接库。做桌面应用程序开发时只要引用针对.NET的便可。

之后就要针对SQLite实现4.1节所提供的ISqlHelper接口,此处未列出详细实现代码。

4.3 SQL Server CE开发说明 开发SQL Server CE应用程序时,无需下载和安装额外的SDK(最好打上SQL Server CE的SP1补丁),VS2008开发环境已经自带了SQL Server CE 3.5,可以在%ProgramFiles%Microsoft

SQL Server Compact Editionv3.5目录下找到。在其Devices目录下有个,这个文件要在项目中添加引用。Deviceswce500armv4i目录下的几个DLL要复制到项目生成文件同级目录下才能实现数据库的功能。做桌面应用程序开发时只要引用针对.NET的便可。

同SQLite开发一样,此处也针对SQL Server CE实现ISqlHelper接口,同样的,代码就在此也未列出。 4.4 两款数据库性能比较

现给出在装有WinCE的mini2440的开发板上运行SQLite和SQL Server CE数据库应用程序的运行效果图,如图1所示。

在图1中可以看出,示例仅考虑了4种情况,在不使用事务处理情况下分别插入100条和1000条数据,在使用事务处理情

况下分别插入1000条和10000条数据。注意,在SQLite和SqlServerCe示例之中所建数据表完全相同。

在表1-表3当中,分别给出在WinCE模拟器,WinCE和Windows当中运行类似示例所消耗的时间。表中所示时间均为应用程序与数据库第1次交互时所用的时间,也是最耗时的时间,以此来评定两款数据库的性能差异。

通过表1-表3可以看出:①使用SQL Server CE插入数据要比SQLite慢,在个别情况下会慢很多;②使用SQL Server CE查询数据也比SQLite慢。总体来说,差别不是非常明显;③在Windows中运行SQL Server CE和SQLite应用程序要比在WinCE当中快很多倍。

综上所述,SQLite的性能要比SQL Server CE好不少。如果在WinCE开发当中只需查询数据,而并不更新数据,那么使用这两款数据库都是可行的。在这种情况下,可以考虑将插入数据的操作放在桌面Windows中完成,将操作后的数据库文件直接复制到WinCE中替换原先的文件便可。

5 结束语

本文结合实际WinCE开发,讨论了两款嵌入式数据库并对其性能进行详细的比较。通过比较,可以形象地看出这两款嵌入式数据库的优点和缺点,对于嵌入式开发人员选择合适的嵌入式数据库有很好的指导作用。

参考文献:

[1] 胡伟.SQLite在嵌入式系统上的实现研究[J].计算机与数字工程,2009(2).

[2] 陈福.基于wince的嵌入式系统数据库访问技术研究[J].计算机系统应用,2004(4).

[3] 张晶.嵌入式移动数据库SQL Server CE应用程序的开发与设计[J].电脑知识与技术,2007(10).

[4] 张广斌.SQLite嵌入式数据库系统的研究与实现[J].单片机与嵌入式系统应用,2008(6).

[5] 杜国祥.SQLite嵌入式数据库的应用[J].电脑编程技巧与维护,2010(14).

Research on WinCE-based Embedded Databases

Abstract:As the lack of hardware resources in WinCE,using

large-scale service-based databases seems a bit cumbersome and not

suitable,discovering embeddable,configurable small databases is

very ing to the actual WinCE development,the

paper researches on two embedded databases and give the

advantages and disadvantages.

Key Words:WinCE;Embedded Databases;SQLite;SQL Server

CE


本文标签: 数据库 开发 支持 使用