SQL Server CE在圖書(shū)外采查重系統(tǒng)中的應(yīng)用
出處:王 杰 發(fā)布于:2011-07-19 19:42:33
圖書(shū)采購(gòu)是圖書(shū)館日常工作的重要內(nèi)容,隨著讀者信息需求的不斷提高,圖書(shū)館需要到書(shū)市或書(shū)店現(xiàn)場(chǎng)采購(gòu)圖書(shū),面對(duì)大量不同和類(lèi)別的圖書(shū),很容易重復(fù)采購(gòu)。目前圖書(shū)外采查重方法有人工記憶查重、計(jì)算機(jī)二次查重、筆記本電腦查重、數(shù)據(jù)采集器查重、遠(yuǎn)程登錄查重等。但在圖書(shū)外采現(xiàn)場(chǎng),由于空間狹窄,缺乏網(wǎng)絡(luò)和電源支持,常用的幾種查重方法都各有優(yōu)缺點(diǎn)。
圖書(shū)外采查重的關(guān)鍵是在外采現(xiàn)場(chǎng)能準(zhǔn)確獲取館藏圖書(shū)數(shù)據(jù),避免重復(fù)采購(gòu)。本文設(shè)計(jì)的圖書(shū)外采查重系統(tǒng)基于Windows Mobile智能手機(jī),將嵌入式數(shù)據(jù)庫(kù)SQL Server CE應(yīng)用到系統(tǒng)設(shè)計(jì)中,實(shí)現(xiàn)智能手機(jī)的存儲(chǔ)數(shù)據(jù)與圖書(shū)館數(shù)據(jù)同步,采購(gòu)人員由此掌握館藏信息,快速準(zhǔn)確地識(shí)別和記錄圖書(shū)信息,防止圖書(shū)重復(fù)采購(gòu)。
1 嵌入式數(shù)據(jù)庫(kù)系統(tǒng)開(kāi)發(fā)
1.1 SQL Server 2005 Compact Edition
嵌入式數(shù)據(jù)庫(kù)是指可以在嵌入式移動(dòng)設(shè)備上運(yùn)行的數(shù)據(jù)庫(kù),SQL Server 2005 Compact Edition(簡(jiǎn)稱(chēng)SQL Server CE)是當(dāng)前比較流行的嵌入式數(shù)據(jù)庫(kù)系統(tǒng)之一,是運(yùn)行于Windows Mobile下的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。SQL Server CE為移動(dòng)設(shè)備提供了一個(gè)壓縮的數(shù)據(jù)庫(kù)解決方案,可以將SQL Server 2000/2005(簡(jiǎn)稱(chēng)SQL Server)大型數(shù)據(jù)庫(kù)的管理能力擴(kuò)展到移動(dòng)設(shè)備上。
SQL Server CE以很小的內(nèi)存(3 MB~5 MB)開(kāi)銷(xiāo)提供了精簡(jiǎn)的關(guān)系數(shù)據(jù)庫(kù),具有強(qiáng)大的數(shù)據(jù)存儲(chǔ)、優(yōu)化的查詢(xún)處理,以及可靠、可擴(kuò)展和可調(diào)整的連接等功能,并為開(kāi)發(fā)人員的快速應(yīng)用程序開(kāi)發(fā)提供了一致的編程接口(OLEDB、ADO.NET)。SQL Server CE是創(chuàng)建企業(yè)級(jí)的 Windows Mobile 離線數(shù)據(jù)解決方案。
1.2 開(kāi)發(fā)環(huán)境
智能手機(jī)是指具有開(kāi)放式操作系統(tǒng)的手機(jī),開(kāi)發(fā)人員可根據(jù)操作系統(tǒng)提供的應(yīng)用編程接口為手機(jī)開(kāi)發(fā)各種擴(kuò)展功能。智能手機(jī)操作系統(tǒng)主要有Symbian、Windows Mobile、Linux、Palm OS、Android、Mac OS X、BlackBerry、OMS等。其中,Windows Mobile是微軟為智能手機(jī)推出的操作系統(tǒng),將用戶(hù)熟悉的桌面Windows擴(kuò)展到移動(dòng)設(shè)備上。Windows Mobile操作系統(tǒng)包括Pocket PC、Smart Phone及Pocket PC Phone(簡(jiǎn)稱(chēng)PPC),其中PPC主要用于掌上電腦型智能手機(jī)。本文圖書(shū)外采查重系統(tǒng)設(shè)計(jì)就選用PPC平臺(tái)。
應(yīng)用于Windows Mobile智能手機(jī)操作系統(tǒng)的開(kāi)發(fā)語(yǔ)言有Java(J2ME)、C++、Embedded VB、Embedded VC、C#等。圖書(shū)外采查重系統(tǒng)選用Visual Studio.NET 2008集成開(kāi)發(fā)環(huán)境、C#開(kāi)發(fā)語(yǔ)言。C#是一種強(qiáng)大、簡(jiǎn)單、面向?qū)ο蟮木幊陶Z(yǔ)言,是微軟新一代開(kāi)發(fā)工具Visual Studio.NET的經(jīng)典編程語(yǔ)言,C#既保持了C++的語(yǔ)法,還包含了大量的高效代碼和面向?qū)ο筇匦?,為開(kāi)發(fā)人員帶來(lái)更高效的開(kāi)發(fā)環(huán)境。
微軟在推出智能手機(jī)操作系統(tǒng)后,考慮手機(jī)的硬件條件制約,推出了.Net Framework的精簡(jiǎn)版,這就是.NET Compact Framework[1],在開(kāi)發(fā)環(huán)境中安裝Visual Studio.NET 2008簡(jiǎn)體中文版,同時(shí)安裝.NET Compact Framework 3.5以及仿真設(shè)備、SDK等。
1.3 客戶(hù)端與服務(wù)器環(huán)境
SQL Server CE的運(yùn)行環(huán)境是典型的客戶(hù)端/服務(wù)器環(huán)境,如圖1所示。客戶(hù)端環(huán)境是Windows Mobile應(yīng)用程序的運(yùn)行環(huán)境,也是SQL Server CE數(shù)據(jù)庫(kù)的運(yùn)行環(huán)境,通過(guò)微軟Activesync程序(使用USB、串口、藍(lán)牙或Wi-Fi網(wǎng)絡(luò))可以將智能手機(jī)連接到服務(wù)器環(huán)境;服務(wù)器環(huán)境是運(yùn)行Internet信息服務(wù)(簡(jiǎn)稱(chēng)IIS)和SQL Server數(shù)據(jù)庫(kù)的環(huán)境,IIS和SQL Server既可以運(yùn)行在一臺(tái)機(jī)器上,也可以運(yùn)行在不同的機(jī)器上。SQL Server CE與SQL Server之間可以通過(guò)遠(yuǎn)程數(shù)據(jù)訪問(wèn)RDA(Remote DataAccess)和合并復(fù)制(Replication)兩種方式進(jìn)行數(shù)據(jù)同步。

1.4 遠(yuǎn)程數(shù)據(jù)訪問(wèn)RDA
圖書(shū)館都有圖書(shū)館自動(dòng)化集成系統(tǒng),數(shù)據(jù)都存儲(chǔ)在大型數(shù)據(jù)庫(kù)系統(tǒng)中,例如Oracle、SQL Server 2000/2005、Sybase等。在任何一個(gè)分布式移動(dòng)應(yīng)用環(huán)境中,移動(dòng)設(shè)備與數(shù)據(jù)中心的數(shù)據(jù)交互是要解決的重點(diǎn)問(wèn)題,在系統(tǒng)設(shè)計(jì)中,如何實(shí)現(xiàn)智能手機(jī)中的數(shù)據(jù)庫(kù)與圖書(shū)館數(shù)據(jù)庫(kù)一致為關(guān)鍵,這就是數(shù)據(jù)同步。
SQL Server CE數(shù)據(jù)庫(kù)通過(guò)IIS和遠(yuǎn)程數(shù)據(jù)訪問(wèn)RDA與SQL Server數(shù)據(jù)庫(kù)進(jìn)行通信,遠(yuǎn)程數(shù)據(jù)訪問(wèn)RDA為智能手機(jī)應(yīng)用程序訪問(wèn)SQL Server數(shù)據(jù)庫(kù)提供了一種簡(jiǎn)單的訪問(wèn)方式,可以將SQL Server數(shù)據(jù)庫(kù)的數(shù)據(jù)到智能手機(jī)的SQL Server CE數(shù)據(jù)庫(kù)中,也可以將智能手機(jī)的數(shù)據(jù)寫(xiě)入到SQL Server 數(shù)據(jù)庫(kù)中,這樣就實(shí)現(xiàn)了數(shù)據(jù)同步,RDA非常適合開(kāi)發(fā)離線數(shù)據(jù)解決方案。
圖書(shū)外采查重系統(tǒng)使用遠(yuǎn)程數(shù)據(jù)訪問(wèn)RDA技術(shù)實(shí)現(xiàn)了數(shù)據(jù)同步,RDA主要由SQL Server CE數(shù)據(jù)庫(kù)引擎、SQL Server CE客戶(hù)端代理和SQL Server CE服務(wù)器端代理三部分組成。并且RDA提供了如下三個(gè)主要方法實(shí)現(xiàn)SQL Server CE與SQL Server數(shù)據(jù)同步。
(1)Pull方法:將SQL Server數(shù)據(jù)庫(kù)中的表“拉”到SQL Server CE中。在調(diào)用此方法時(shí),可以設(shè)置數(shù)據(jù)跟蹤選項(xiàng),如果設(shè)置數(shù)據(jù)跟蹤,則SQL Server CE數(shù)據(jù)庫(kù)引擎會(huì)自動(dòng)跟蹤對(duì)數(shù)據(jù)的插入、修改和刪除操作。
(2)Push方法:如果在Pull時(shí)設(shè)置了數(shù)據(jù)跟蹤選項(xiàng),可以將SQL Server CE中的數(shù)據(jù)“推”回到SQL Server中,在SQL Server CE中對(duì)數(shù)據(jù)的任何修改都會(huì)反映到SQL Server中。
(3)SubmitSQL方法:直接向SQL Server數(shù)據(jù)庫(kù)提交一個(gè)命令。
2 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
2.1 建立數(shù)據(jù)庫(kù)
嵌入式數(shù)據(jù)庫(kù)SQL Server CE的數(shù)據(jù)存儲(chǔ)在一個(gè)擴(kuò)展名為.SDF的文件中,SQL Server CE 只支持一個(gè)鏈接,但多個(gè)命令可以共享同一鏈接。.NET Compact Framework下開(kāi)發(fā)SQL Server CE統(tǒng)一使用System.Data.SqlServerCe.DLL[2],該DLL封裝的命名空間和類(lèi)是一致的,在VS2008下開(kāi)發(fā)默認(rèn)使用的.NET Compact Framework版本是3.5,默認(rèn)使用的SQL Server CE版本是3.5,一般存放在C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Devices\路徑下。在智能手機(jī)上創(chuàng)建一個(gè)空的本地SQL Server CE數(shù)據(jù)庫(kù),建立數(shù)據(jù)庫(kù)程序代碼如下:
//創(chuàng)建SQL Server CE數(shù)據(jù)庫(kù)文件LIBRARY.SDF
using System.Data.SqlServerCe;
string strConn="DATASOURCE="+dbPath+@"\LIBRARY.SDF";
SqlCeEngine engine=new SqlCeEngine(strConn);
engine.CreateDatabase();
engine.Dispose();
2.2 數(shù)據(jù)同步
數(shù)據(jù)同步功能指通過(guò)遠(yuǎn)程數(shù)據(jù)訪問(wèn)RDA從圖書(shū)館自動(dòng)化集成系統(tǒng)SQL Server數(shù)據(jù)庫(kù)將藏書(shū)數(shù)據(jù)到智能手機(jī)的LIBRARY.SDF數(shù)據(jù)庫(kù)中。遠(yuǎn)程數(shù)據(jù)訪問(wèn)RDA需要用到.NET Compact Framework 3.5中System.Data.SqlServerCe命名空間中的SqlCeRemoteDataAccess類(lèi)[3-4],數(shù)據(jù)同步程序代碼如下:
//引用命名空間SqlCeRemoteDataAccess
using SqlCeRemoteDataAccess;
//實(shí)例化并配置遠(yuǎn)程數(shù)據(jù)訪問(wèn)
//SQLCeRemoteDataAccess對(duì)象
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數(shù)據(jù)庫(kù)中同步數(shù)據(jù)
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 圖書(shū)查重設(shè)計(jì)
通過(guò)遠(yuǎn)程數(shù)據(jù)訪問(wèn)RDA將圖書(shū)館自動(dòng)化集成系統(tǒng)中的藏書(shū)數(shù)據(jù)同步到智能手機(jī)的數(shù)據(jù)庫(kù)LIBRARY.SDF中,圖書(shū)外采時(shí),智能手機(jī)應(yīng)用程序鏈接SQL Server CE數(shù)據(jù)庫(kù)LIBRARY.SDF,檢索Books數(shù)據(jù)表中是否有相關(guān)圖書(shū)記錄。
開(kāi)發(fā)手機(jī)數(shù)據(jù)庫(kù)程序所用到的控件和類(lèi)與開(kāi)發(fā)桌面數(shù)據(jù)庫(kù)程序具有相似性,如SqlCeConnection對(duì)應(yīng)SqlConnection,SqlCeDataAdapter對(duì)應(yīng)SqlDataAdapter,SqlCeCommand對(duì)應(yīng)SqlCommand等。圖書(shū)外采查重系統(tǒng)基于.NET Compact Framework3.5設(shè)計(jì),要在智能手機(jī)上創(chuàng)建、管理和查詢(xún)SQL Server CE數(shù)據(jù)庫(kù),必須在程序中添加對(duì)System.Data.SqlServerCe的引用,圖書(shū)查重程序代碼如下:
//命名空間System.Data.SqlServerCe using System.Data.SqlServerCe;
//創(chuàng)建SqlCeConnection對(duì)象,鏈接數(shù)據(jù)庫(kù)文件LIBRARY.SDF
SqlCeConnection objCeConnection=new SqlCeConnection("DATASOURCE="+dbPath+@"\LIBRARY.SDF");
objCeConnection.Open(); //根據(jù)ISBN號(hào),生成圖書(shū)查詢(xún)SQL語(yǔ)句
SQLText = "SELECT×FROM Books WHERE ISBN="+txtISBN.Text;
//創(chuàng)建SqlCeCommand對(duì)象
SqlCeCommand objCeCommand=new SqlCeCommand(objCeConnection);
objCeCommand.CommandText=SQLText;
//創(chuàng)建SqlCeDataReader對(duì)象
SqlCeDataReader objCedr=objCeCommand.ExecuteReader();
//查詢(xún)館藏圖書(shū)是否存在
if (!objCedr.Read())
{ listBox.Items.Add("館藏沒(méi)有ISBN號(hào)=
"+txtISBN.Text+"圖書(shū),可以采購(gòu)。");}
else
{
listBox.Items.Add("ISBN號(hào):"+objCedr["ISBN"].ToString());
listBox.Items.Add("書(shū)名:"+objCedr["Title"].ToString());
listBox.Items.Add("作者:"+objCedr["Author"].ToString());
listBox.Items.Add("出版社:"+objCedr["BookConcern"].ToString());
listBox.Items.Add("藏書(shū)數(shù)量:"+objCedr["Amount"].ToString()+"本");
listBox.Items.Add("館藏圖書(shū)已有,建議不要采購(gòu)!");
}
3 系統(tǒng)應(yīng)用情況
3.1 系統(tǒng)功能
圖書(shū)外采查重系統(tǒng)功能包括圖書(shū)查重、參數(shù)設(shè)置、數(shù)據(jù)管理等。
參數(shù)設(shè)置主要是設(shè)置遠(yuǎn)程訪問(wèn)SQL Server數(shù)據(jù)庫(kù)的用戶(hù)名和密碼,訪問(wèn)IIS的用戶(hù)名和密碼參數(shù),以及系統(tǒng)應(yīng)用背景圖片、信息提示等,如圖2所示。

圖書(shū)查重方式有根據(jù)ISBN號(hào)查重和根據(jù)書(shū)名、作者、出版社等組合查重[5],其中根據(jù)ISBN號(hào)查重方式是主要查重方式。ISBN是國(guó)際標(biāo)準(zhǔn)書(shū)號(hào)International Standard Book Number的簡(jiǎn)稱(chēng),通常每本書(shū)都有的ISBN號(hào),通過(guò)帶有藍(lán)牙接口的條碼槍掃描圖書(shū)ISBN條形碼,就可以檢索數(shù)據(jù)庫(kù)中的圖書(shū),如果有,就會(huì)顯示館藏圖書(shū)的詳細(xì)信息,同時(shí)發(fā)出“嘀嘀嘀”的語(yǔ)音提示,圖書(shū)查重界面如圖3所示。

3.2 系統(tǒng)應(yīng)用
圖書(shū)外采查重系統(tǒng)應(yīng)用流程是:外出購(gòu)書(shū)前,工作人員將圖書(shū)館自動(dòng)化集成系統(tǒng)中的藏書(shū)數(shù)據(jù)同步到智能手機(jī),生成數(shù)據(jù)庫(kù)文件LIBRARY.SDF,拷貝到智能手機(jī)存儲(chǔ)卡中。圖書(shū)外采時(shí),工作人員在智能手機(jī)上通過(guò)查重系統(tǒng)檢索LIBRARY.SDF數(shù)據(jù)庫(kù)中是否有相關(guān)的圖書(shū)記錄,由于查重是在智能手機(jī)上進(jìn)行,不需要網(wǎng)絡(luò)連接,因此速度很快。
系統(tǒng)設(shè)計(jì)成功運(yùn)行于多普達(dá)S700智能手機(jī),操作系統(tǒng)Windows Mobile 6.1簡(jiǎn)體中文版,主頻500 MHz,256 MB ROM、128 MB RAM、4 GB存儲(chǔ)卡,2.8英寸、66536色TFT彩色屏幕、分辨率240×320像素。
本文設(shè)計(jì)的圖書(shū)外采查重系統(tǒng)操作簡(jiǎn)單、體積小、重量輕、方便攜帶,不需要網(wǎng)絡(luò)和外接電源支持(可配多塊電池),省時(shí)、省力、準(zhǔn)確、高效,可以適應(yīng)復(fù)雜的圖書(shū)外采現(xiàn)場(chǎng),達(dá)到事半功倍的效果。應(yīng)用嵌入式數(shù)據(jù)庫(kù)SQL Server CE存儲(chǔ)數(shù)據(jù),數(shù)據(jù)存儲(chǔ)量大,通過(guò)數(shù)據(jù)同步,智能手機(jī)與館藏圖書(shū)信息直接對(duì)接,準(zhǔn)確掌握館藏圖書(shū)數(shù)據(jù),防止圖書(shū)重復(fù)采購(gòu)。系統(tǒng)設(shè)備投資不高(一部中檔Windows Mobile智能手機(jī)約2 000元左右),收效顯著,是適用于圖書(shū)館外采查重的方案。
3.3嵌入式數(shù)據(jù)庫(kù)介紹
嵌入式數(shù)據(jù)庫(kù)的名稱(chēng)來(lái)自其獨(dú)特的運(yùn)行模式。這種數(shù)據(jù)庫(kù)嵌入到了應(yīng)用程序進(jìn)程中,消除了與客戶(hù)機(jī)服務(wù)器配置相關(guān)的開(kāi)銷(xiāo)。嵌入式數(shù)據(jù)庫(kù)實(shí)際上是輕量級(jí)的,在運(yùn)行時(shí),它們需要較少的內(nèi)存。它們是使用精簡(jiǎn)代碼編寫(xiě)的,對(duì)于嵌入式設(shè)備,其速度更快,效果更理想。嵌入式運(yùn)行模式允許嵌入式數(shù)據(jù)庫(kù)通過(guò) SQL 來(lái)輕松管理應(yīng)用程序數(shù)據(jù),而不依靠原始的文本文件。嵌入式數(shù)據(jù)庫(kù)還提供零配置運(yùn)行模式,這樣可以啟用其中一個(gè)并運(yùn)行一個(gè)快照。
在嵌入式系統(tǒng)中,對(duì)數(shù)據(jù)庫(kù)的操作具有定時(shí)限制的特性,這里把應(yīng)用于嵌入式系統(tǒng)的數(shù)據(jù)庫(kù)系統(tǒng)稱(chēng)為嵌入式數(shù)據(jù)庫(kù)系統(tǒng)或嵌入式實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)(ERTDBS)。
可靠性要求是毋庸置疑的,嵌入式系統(tǒng)必須能夠在沒(méi)有人工干預(yù)的情況下,長(zhǎng)時(shí)間不間斷地運(yùn)行。同時(shí)要求數(shù)據(jù)庫(kù)操作具備可預(yù)知性,而且系統(tǒng)的大小和性能也都必須是可預(yù)知的,這樣才能保證系統(tǒng)的性能。嵌入式系統(tǒng)中會(huì)不可避免地與底層硬件打交道,因此在數(shù)據(jù)管理時(shí),也要有底層控制的能力,如什么時(shí)候會(huì)發(fā)生磁盤(pán)操作,磁盤(pán)操作的次數(shù),如何控制等。底層控制的能力是決定數(shù)據(jù)庫(kù)管理操作的關(guān)鍵。
目前嵌入式軟件系統(tǒng)開(kāi)發(fā)的挑戰(zhàn)之一,體現(xiàn)在對(duì)各種數(shù)據(jù)的管理能否建立一套可靠、高效、穩(wěn)定的管理模式,嵌入式數(shù)據(jù)庫(kù)可謂應(yīng)運(yùn)而生。
嵌入式數(shù)據(jù)庫(kù)是嵌入式系統(tǒng)的重要組成部分,也成為對(duì)越來(lái)越多的個(gè)性化應(yīng)用開(kāi)發(fā)和管理而采用的一種必不可少的有效手段。
嵌入式數(shù)據(jù)庫(kù)用途廣泛,如用于消費(fèi)電子產(chǎn)品、移動(dòng)計(jì)算設(shè)備、企業(yè)實(shí)時(shí)管理應(yīng)用、網(wǎng)絡(luò)存儲(chǔ)與管理以及各種專(zhuān)用設(shè)備,這一市場(chǎng)目前正處于高速增長(zhǎng)之中?!∨e簡(jiǎn)單例子,手機(jī)原來(lái)只用來(lái)打電話(huà)、發(fā)短信,現(xiàn)在手機(jī)增加了很多新的功能,比如彩信、音樂(lè)、攝影、視頻等等,應(yīng)用的功能多了,系統(tǒng)就變得復(fù)雜。
常用的嵌入式數(shù)據(jù)庫(kù)的比較 2.1 Berkeley DB 技術(shù)特點(diǎn) 1. Berkeley DB是一個(gè)開(kāi)放源代碼的內(nèi)嵌式數(shù)據(jù)庫(kù)管理系統(tǒng),能夠?yàn)閼?yīng)用程序提供高性能的數(shù)據(jù)管理服務(wù)。應(yīng)用它程序員只需要調(diào)用一些簡(jiǎn)單的API就可以完成對(duì)數(shù)據(jù)的訪問(wèn)和管理。(不使用SQL語(yǔ)言) 2. Berkeley DB為許多編程語(yǔ)言提供了實(shí)用的API接口,包括C、C++、Java、Perl、Tcl、Python和PHP等。所有同數(shù)據(jù)庫(kù)相關(guān)的操作都由Berkeley DB函數(shù)庫(kù)負(fù)責(zé)統(tǒng)一完成?!?. Berkeley DB輕便靈活(Portable),可以運(yùn)行于幾乎所有的UNIX和Linux系統(tǒng)及其變種系統(tǒng)、Windows操作系統(tǒng)以及多種嵌入式實(shí)時(shí)操作系統(tǒng)之下。Berkeley DB被鏈接到應(yīng)用程序中,終端用戶(hù)一般根本感覺(jué)不到有一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)存在?!?. Berkeley DB是可伸縮(Scalable)的,這一點(diǎn)表現(xiàn)在很多方面。Database library本身是很精簡(jiǎn)的(少于300KB的文本空間),但它能夠管理規(guī)模高達(dá)256TB的數(shù)據(jù)庫(kù)。它支持高并發(fā)度,成千上萬(wàn)個(gè)用戶(hù)可同時(shí)操縱同一個(gè)數(shù)據(jù)庫(kù)。Berkeley DB能以足夠小的空間占用量運(yùn)行于有嚴(yán)格約束的嵌入式系統(tǒng)。 Berkeley DB在嵌入式應(yīng)用中比關(guān)系數(shù)據(jù)庫(kù)和面向?qū)ο髷?shù)據(jù)庫(kù)要好,有以下兩點(diǎn)原因:?。?)因?yàn)閿?shù)據(jù)庫(kù)程序庫(kù)同應(yīng)用程序在相同的地址空間中運(yùn)行,所以數(shù)據(jù)庫(kù)操作不需要進(jìn)程間的通訊。在一臺(tái)機(jī)器的不同進(jìn)程間或在網(wǎng)絡(luò)中不同機(jī)器間進(jìn)行進(jìn)程通訊所花費(fèi)的開(kāi)銷(xiāo),要遠(yuǎn)遠(yuǎn)大于函數(shù)調(diào)用的開(kāi)銷(xiāo);?。?)因?yàn)锽erkeley DB對(duì)所有操作都使用一組API接口,因此不需要對(duì)某種查詢(xún)語(yǔ)言進(jìn)行解析,也不用生成執(zhí)行計(jì)劃,大大提高了運(yùn)行效。
3.4 SQLite
輕量級(jí)別數(shù)據(jù)庫(kù)SQLite的主要特點(diǎn): 1. 支持事件,不需要配置,不需要安裝,也不需要管理員; 2. 支持大部分SQL92; 3. 一個(gè)完整的數(shù)據(jù)庫(kù)保存在磁盤(pán)上面一個(gè)文件,同一個(gè)數(shù)據(jù)庫(kù)文件可以在不同機(jī)器上面使用,支持?jǐn)?shù)據(jù)庫(kù)到2T,字符和BLOB的支持僅限制于可用內(nèi)存; 4. 整個(gè)系統(tǒng)少于3萬(wàn)行代碼,少于250KB的內(nèi)存占用(gcc),大部分應(yīng)用比目前常見(jiàn)的客戶(hù)端/服務(wù)端的數(shù)據(jù)庫(kù)快,沒(méi)有其它依賴(lài) 5. 源代碼開(kāi)放,代碼95%有較好的注釋?zhuān)?jiǎn)單易用的API。帶有TCL的編譯版本。
3.5 Empress(商業(yè)數(shù)據(jù)庫(kù))
開(kāi)發(fā)階段特點(diǎn):
1. 可嵌入程序,該特性使應(yīng)用程序和數(shù)據(jù)庫(kù)工作于統(tǒng)一地址空間,增強(qiáng)了系統(tǒng)的穩(wěn)定性,提高了系統(tǒng)的效率。
2. 確定的響應(yīng)時(shí)間,Empress 可以使數(shù)據(jù)的響應(yīng)時(shí)間相對(duì)一致,使用者可以設(shè)定一個(gè)超時(shí)限制,如果在規(guī)定時(shí)間內(nèi)沒(méi)有完成插入,修改等操作,系統(tǒng)會(huì)報(bào)錯(cuò)。
3. 快速的操作Empress 提供了內(nèi)核級(jí)的CAPI,稱(chēng)為MR, 用MR編寫(xiě)的應(yīng)用程序在執(zhí)行時(shí)不需要解析。另外在MR中加速的機(jī)制還包括的加鎖控制,內(nèi)存管理和基于記錄數(shù)量的選擇功能。
4. 靈活的開(kāi)發(fā)方式,Empress 提供多種開(kāi)發(fā)接口,加快開(kāi)發(fā)進(jìn)程而無(wú)需開(kāi)發(fā)者重新學(xué)習(xí)開(kāi)發(fā)語(yǔ)言和熟悉開(kāi)發(fā)環(huán)境。
5. 友好的存儲(chǔ)方式,Empress 數(shù)據(jù)庫(kù)可以放在操作系統(tǒng)支持的任何存儲(chǔ)設(shè)備中,Empress的表單甚至可以分割放在不同的存儲(chǔ)設(shè)備中,比如在內(nèi)存,硬盤(pán)和CD-ROM中。
6. 微型內(nèi)核結(jié)構(gòu) Empress 高度單元化, 可根據(jù)需要選擇需要的單元,從而縮小產(chǎn)品中Empress 數(shù)據(jù)庫(kù)所占用的資源。
7. 寬廣的平臺(tái)支持,Empress 支持多種硬件平臺(tái)和軟件平臺(tái), 也可移植到客戶(hù)要求的硬件平臺(tái)或操作系統(tǒng)。
技術(shù)優(yōu)勢(shì):
1. 微型內(nèi)核結(jié)構(gòu),占用少量?jī)?nèi)存空間,特別適合緊湊性的設(shè)計(jì)
2.一周7天,每天24小時(shí)連續(xù)工作,無(wú)需任何額外操作免維護(hù)
3. 內(nèi)核級(jí) CAPI 接口,使運(yùn)行速度化
4. 高度靈活的SQL接口5. 的掉電恢復(fù)能力
6. 強(qiáng)壯的交易和鎖存機(jī)制
7. 支持SCSI,RAID,IDE,RAM,CD-RW,DVD-ROM,CF,等存儲(chǔ)介質(zhì)
8. 支持Unicode 碼
9. 引擎可加載于磁盤(pán)和內(nèi)存
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類(lèi)作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- ARM技術(shù)架構(gòu)與應(yīng)用開(kāi)發(fā)實(shí)踐指南2026/1/6 10:40:19
- 嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS)選型與移植技術(shù)指南2025/12/31 10:42:31
- 工業(yè)嵌入式系統(tǒng):通信接口技術(shù)選型與抗干擾設(shè)計(jì)實(shí)踐2025/12/15 14:36:53
- 深入解析嵌入式 OPENAMP 框架:開(kāi)啟異核通信新時(shí)代2025/7/22 16:27:29
- 一文快速了解OPENWRT基礎(chǔ)知識(shí)2025/7/14 16:59:04
- 編碼器的工作原理及作用1
- 超強(qiáng)整理!PCB設(shè)計(jì)之電流與線寬的關(guān)系2
- 三星(SAMSUNG)貼片電容規(guī)格對(duì)照表3
- 電腦藍(lán)屏代碼大全4
- 國(guó)標(biāo)委發(fā)布《電動(dòng)汽車(chē)安全要求第3部分:人員觸電防護(hù)》第1號(hào)修改單5
- 通俗易懂談上拉電阻與下拉電阻6
- 繼電器的工作原理以及驅(qū)動(dòng)電路7
- 電容單位8
- 跟我學(xué)51單片機(jī)(三):?jiǎn)纹瑱C(jī)串口通信實(shí)例9
- 一種三極管開(kāi)關(guān)電路設(shè)計(jì)10
- 高速PCB信號(hào)完整性(SI)設(shè)計(jì)核心實(shí)操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計(jì)算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對(duì)系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護(hù)設(shè)計(jì)
- 連接器耐腐蝕性能測(cè)試方法
- PCB電磁兼容(EMC)設(shè)計(jì)與干擾抑制核心實(shí)操規(guī)范
- 用于相位噪聲測(cè)量的低通濾波器設(shè)計(jì)與本振凈化技術(shù)
- MOSFET在高頻開(kāi)關(guān)中的EMI問(wèn)題
- 電源IC在便攜式設(shè)備中的設(shè)計(jì)要點(diǎn)
- 連接器結(jié)構(gòu)設(shè)計(jì)常見(jiàn)問(wèn)題分析









