狠狠操网,91中文字幕在线观看,精品久久香蕉国产线看观看亚洲,亚洲haose在线观看

嵌入式數(shù)據(jù)庫典型技術(shù)―SQLite和Berkeley

嵌入式數(shù)據(jù)庫典型技術(shù)―SQLite和Berkeley

嵌入式數(shù)據(jù)庫典型技術(shù)―SQLite和Berkeley

摘要:與常見的數(shù)據(jù)庫相比,嵌入式數(shù)據(jù)庫具有體積小、功能齊備、可移植性、健壯性等特點(diǎn),本文分析和比較了典型的嵌入式數(shù)據(jù)庫SQLite和BerkeleyDB。首先從體系結(jié)構(gòu)、子系統(tǒng)間調(diào)用關(guān)系、任務(wù)執(zhí)行過程等角度對(duì)SQLite和BerkeleyDB進(jìn)行了詳細(xì)分析,然后重點(diǎn)從數(shù)據(jù)類型、存儲(chǔ)方式、模式、數(shù)據(jù)庫引擎和錯(cuò)誤處理及加密功能等方面討論了SQLite和BerkeleyDB的異同點(diǎn),最后列舉了一個(gè)基于ARM—Linux的SQLite應(yīng)用實(shí)例。
關(guān)鍵詞:SQLite、BerkeleyDB、SQL、虛擬數(shù)據(jù)庫引擎(VDBE)

引言

隨著計(jì)算機(jī)技術(shù)與其它學(xué)科間的不斷交融、滲透,數(shù)據(jù)庫應(yīng)用的范圍更加深入和具體。那些僅適用于PC機(jī),體積龐大、延時(shí)較長(zhǎng)的數(shù)據(jù)庫技術(shù)已不能滿足針對(duì)性較強(qiáng)的嵌入式系統(tǒng)開發(fā)的需求。SOLite和Berkeley DB是目前應(yīng)用較廣泛、技術(shù)較穩(wěn)定的兩種嵌入式數(shù)據(jù)庫。然而,國(guó)內(nèi)對(duì)嵌入式數(shù)據(jù)庫的研究起步較晚,還沒能引起更多人的關(guān)注。更多人熟悉那些基于C/S或B/S結(jié)構(gòu)的關(guān)系型數(shù)據(jù)庫來實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)、檢索等功能。然而,在嵌入式系統(tǒng)中,由于軟硬件資源有限,不可能安裝龐大的數(shù)據(jù)庫服務(wù)器,而用戶的需求可能由一個(gè)簡(jiǎn)單的基于磁盤文件的數(shù)據(jù)庫系統(tǒng)就能實(shí)現(xiàn),這僅僅是利用了那些數(shù)據(jù)庫的基本特性。此時(shí),對(duì)嵌入式數(shù)據(jù)庫的研究就顯得尤為重要了。

1嵌入式數(shù)據(jù)庫

嵌入式數(shù)據(jù)庫通常是與嵌入式操作系統(tǒng)及具體的應(yīng)用集成在一起,無需獨(dú)立運(yùn)行數(shù)據(jù)庫引擎,由程序直接調(diào)用相應(yīng)的API就可實(shí)現(xiàn)對(duì)數(shù)據(jù)的存取操作。嵌入式系統(tǒng)的開發(fā)環(huán)境決定了其數(shù)據(jù)庫的特點(diǎn):

1、 體積適當(dāng)

由于嵌入式系統(tǒng)自身的特點(diǎn),對(duì)數(shù)據(jù)的存儲(chǔ)和程序的'運(yùn)行都有較強(qiáng)的空間限制,所以嵌入式數(shù)據(jù)庫首先應(yīng)該保障的就是適當(dāng)?shù)捏w積。進(jìn)一步來說就是占用盡量少的ROM、RAM及CPU的資源。

2、 功能齊備

嵌入式系統(tǒng)開發(fā)中,用戶需求決定了需要一個(gè)大小適中、功能齊備的數(shù)據(jù)庫來實(shí)現(xiàn)數(shù)據(jù)

管理,這就使得開發(fā)人員要采用一個(gè)能夠提供完備開發(fā)文檔且易于開發(fā)的數(shù)據(jù)庫技術(shù)。此外,

國(guó)家863項(xiàng)目2002AA714023,研究生精品課程資助05531451

在嵌入式設(shè)備中,數(shù)據(jù)庫的管理對(duì)用戶來說是透明的,這就要求此數(shù)據(jù)庫能夠自動(dòng)完成啟動(dòng)初始化、日志管理、數(shù)據(jù)壓縮、備份、數(shù)據(jù)恢復(fù)等功能;而且嵌入式設(shè)備經(jīng)常有不可預(yù)料的硬復(fù)位,這就需要此數(shù)據(jù)庫有高度的健壯性。

3、 可移植性

嵌入式系統(tǒng)的平臺(tái)種類繁多,因此嵌入式數(shù)據(jù)庫應(yīng)有一定的可移植性,以適用于不同的軟硬件平臺(tái)。

4、代碼開源

開源的代碼在產(chǎn)品的開發(fā)過程中不僅可以減少開發(fā)成本,更重要的是為后期的維護(hù)完善和穩(wěn)定運(yùn)行都提供了最為徹底的解決方法。

2 SQLite

SQLite是D.理查德.希普用一個(gè)小型的C庫開發(fā)的一種強(qiáng)有力的嵌入式關(guān)系數(shù)據(jù)庫管理體制。雖然功能較Berkeley DB稍顯遜色,但它簡(jiǎn)單易學(xué)、速度較快,同時(shí)提供了豐富的數(shù)據(jù)庫接口,提供了對(duì)SQL92的大多數(shù)支持:支持多表和索引、事務(wù)、視圖、觸發(fā)和一系列的用戶接口及驅(qū)動(dòng)。

SQLite的體系結(jié)構(gòu)大體上可以分成八個(gè)主要的子系統(tǒng),如圖1所示。對(duì)數(shù)據(jù)庫進(jìn)行的各種操作都是按照此順序,逐一執(zhí)行的。頂層是標(biāo)記處理器(tokenize)和分析器(parser)。SQLite有自己高度優(yōu)化的代碼生成器,可以快速、高效地生產(chǎn)出代碼。底部是經(jīng)過優(yōu)化的B樹,這樣有助于運(yùn)行在可調(diào)整的頁面緩沖上時(shí),對(duì)磁盤的查找降低到最小。再往下是頁面高速緩存,它作用在OS的抽象層之上,這樣的體系結(jié)構(gòu)使數(shù)據(jù)庫的可移植性變?yōu)榭赡堋?/P>

該體系結(jié)構(gòu)的核心是虛擬數(shù)據(jù)庫引擎(VDBE)。VDBE完成與數(shù)據(jù)操作相關(guān)的全部任務(wù),并且是客戶和存儲(chǔ)之間信息交換的中間單元。從各個(gè)角度分析,它都是SQLite的核心。當(dāng)SQL語句被分析后,VDBE便開始工作。代碼生成器將分析樹翻譯成一個(gè)袖珍程序,隨后這些袖珍程序又被組合成VDBE的虛擬機(jī)器語言表示的一系列指令。如此反復(fù),VDBE執(zhí)行每條指令,最終完成SQL語句指定的查詢要求。

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 yyfangchan@163.com (舉報(bào)時(shí)請(qǐng)帶上具體的網(wǎng)址) 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除