sqlite入門與分析

sqlite入門與分析

ID:11210161

大?。?9.58 MB

頁數(shù):39頁

時間:2018-07-10

sqlite入門與分析_第1頁
sqlite入門與分析_第2頁
sqlite入門與分析_第3頁
sqlite入門與分析_第4頁
sqlite入門與分析_第5頁
資源描述:

《sqlite入門與分析》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、SQLite入門與分析 1、SQLite介紹  自幾十年前出現(xiàn)的商業(yè)應用程序以來,數(shù)據(jù)庫就成為軟件應用程序的主要組成部分。正與數(shù)據(jù)庫管理系統(tǒng)非常關(guān)鍵一樣,它們也變得非常龐大,并占用了相當多的系統(tǒng)資源,增加了管理的復雜性。隨著軟件應用程序逐漸模塊模塊化,一種新型數(shù)據(jù)庫會比大型復雜的傳統(tǒng)數(shù)據(jù)庫管理系統(tǒng)更適應。嵌入式數(shù)據(jù)庫直接在應用程序進程中運行,提供了零配置(zero-configuration)運行模式,并且資源占用非常少。  SQLite是一個開源的嵌入式關(guān)系數(shù)據(jù)庫,它在2000年由D.RichardHipp發(fā)布,它的減少應用程序管理數(shù)據(jù)的開銷,SQLite可移植性好,很容

2、易使用,很小,高效而且可靠。  SQLite嵌入到使用它的應用程序中,它們共用相同的進程空間,而不是單獨的一個進程。從外部看,它并不像一個RDBMS,但在進程內(nèi)部,它卻是完整的,自包含的數(shù)據(jù)庫引擎?! ∏度胧綌?shù)據(jù)庫的一大好處就是在你的程序內(nèi)部不需要網(wǎng)絡配置,也不需要管理。因為客戶端和服務器在同一進程空間運行。SQLite的數(shù)據(jù)庫權(quán)限只依賴于文件系統(tǒng),沒有用戶帳戶的概念。SQLite有數(shù)據(jù)庫級鎖定,沒有網(wǎng)絡服務器。它需要的內(nèi)存,其它開銷很小,適合用于嵌入式設備。你需要做的僅僅是把它正確的編譯到你的程序?! ?、架構(gòu)(architecture)  SQLite采用了模塊的設計,

3、它由三個子系統(tǒng),包括8個獨立的模塊構(gòu)成。??  2.1、接口(Interface)  接口由SQLiteCAPI組成,也就是說不管是程序、腳本語言還是庫文件,最終都是通過它與SQLite交互的(我們通常用得較多的ODBC/JDBC最后也會轉(zhuǎn)化為相應CAPI的調(diào)用)?! ?.2、編譯器(Compiler)  在編譯器中,分詞器(Tokenizer)和分析器(Parser)對SQL進行語法檢查,然后把它轉(zhuǎn)化為底層能更方便處理的分層的數(shù)據(jù)結(jié)構(gòu)---語法樹,然后把語法樹傳給代碼生成器(codegenerator)進行處理。而代碼生成器根據(jù)它生成一種針對SQLite的匯編代碼,最后由

4、虛擬機(VirtualMachine)執(zhí)行?! ?.3、虛擬機(VirtualMachine)  架構(gòu)中最核心的部分是虛擬機,或者叫做虛擬數(shù)據(jù)庫引擎(VirtualDatabaseEngine,VDBE)。它和Java虛擬機相似,解釋執(zhí)行字節(jié)代碼。VDBE的字節(jié)代碼由128個操作碼(opcodes)構(gòu)成,它們主要集中在數(shù)據(jù)庫操作。它的每一條指令都用來完成特定的數(shù)據(jù)庫操作(比如打開一個表的游標)或者為這些操作??臻g的準備(比如壓入?yún)?shù))??傊?,所有的這些指令都是為了滿足SQL命令的要求(關(guān)于VM,后面會做詳細介紹)?! ?.4、后端(Back-End)  后端由B-樹(B-t

5、ree),頁緩存(pagecache,pager)和操作系統(tǒng)接口(即系統(tǒng)調(diào)用)構(gòu)成。B-tree和pagecache共同對數(shù)據(jù)進行管理。B-tree的主要功能就是索引,它維護著各個頁面之間的復雜的關(guān)系,便于快速找到所需數(shù)據(jù)。而pager的主要作用就是通過OS接口在B-tree和Disk之間傳遞頁面?! ?、SQLite的特點(SQLite’sFeaturesandPhilosophy)  3.1、零配置(ZeroConfiguration)  3.2、可移植(Portability):  它是運行在Windows,Linux,BSD,MacOSX和一些商用Unix系統(tǒng),比如

6、Sun的Solaris,IBM的AIX,同樣,它也可以工作在許多嵌入式操作系統(tǒng)下,比如QNX,VxWorks,PalmOS,Symbin和WindowsCE?! ?.3、Compactness:  SQLite是被設計成輕量級,自包含的。oneheaderfile,onelibrary,andyou’rerelational,noexternaldatabaseserverrequired  3.4、簡單(Simplicity)  3.5、靈活(Flexibility)  3.6、可靠(Reliability):  SQLite的核心大約有3萬行標準C代碼,這些代碼都是模塊

7、化的,很容易閱讀。設計與概念1、API  由兩部分組成:核心API(coreAPI)和擴展API(extensionAPI)  核心API的函數(shù)實現(xiàn)基本的數(shù)據(jù)庫操作:連接數(shù)據(jù)庫,處理SQL,遍歷結(jié)果集。它也包括一些實用函數(shù),比如字符串轉(zhuǎn)換,操作控制,調(diào)試和錯誤處理?! U展API通過創(chuàng)建你自定義的SQL函數(shù)去擴展SQLite?! ?.1、SQLiteVersion3的一些新特點:  (1)SQLite的API全部重新設計,由第二版的15個函數(shù)增加到88個函數(shù)。這些函數(shù)包括支持UTF-8和UTF-16編碼的功能函數(shù)。

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。