嵌入式資料庫 SQLite

來源:互聯網
上載者:User

SQLite 是 D.Richard Hipp 在 2000 年開發的一個小型嵌入式資料庫。它是完全獨立的,不具有外部依賴性。

 

與常用的資料庫管理系統(如 MySQL和 Oracle 等)有所不同,在 SQLite 中並沒有資料庫伺服器的概念。應用程式不需要事先同資料庫服務建立起網路連接,而是通過內嵌在程式中的 SQLite 函數庫來完成對資料的儲存、查詢、修改和刪除等操作。所有與資料庫相關的操作都由函數庫負責統一完成,這樣無論是系統中的多個進程,或者是相同進程中的多個線程,都可以在同一時間調用訪問資料庫的函數;而底層的資料加鎖、交易記錄和儲存管理等都在 SQLite 函數庫中實現。它們對應用程式來講是完全透明的。

 

SQLite 不能用標準的 SQL語句對資料庫操作,對它的操作要調用專用的 API 實現。這些 API 提供了查詢、插入、刪除等功能。比如 com.sleepycat.db.Db 類代表資料庫物件。 Db 類的 put( )方法完成的是插入功能; get( )方法完成的是讀出資料的功能;;com.sleepycat.db.Dbc 是 Berkeley DB 的遊標類,提供了遍曆資料庫記錄的功能。

 

SQLite 雖然是個極端輕量級的關聯式資料庫,卻保留了資料庫的大部分特徵, 提供了對 SQL92 標準的大多數支援:支援多表和索引、事務、視圖、觸發和一系列的使用者介面及驅動;支援原子的、一致的、獨立的和持久的(ACID)事務特性。零配置(Zero-configuration),即無需安裝和管理。一個完整的資料庫儲存在單一磁碟檔案中。資料庫檔案可以在不同位元組順序的機器間自由共用。支援資料庫大小至 2 TB。字串和二進位大對象(BLOBs)的大小僅被有效記憶體限制。源碼體積小,編譯後低於 250 kB。部分的操作比關係型資料庫引擎要快。簡單易用的 API。

 

SQLite本身提供了 C語言的 API 介面,使得對資料庫的操作十分簡單,主要是對 3 個 API 函數的調用。SQLite 的介面是一些已經編寫好的 C庫,即使使用不同語言的 API,在底層仍然使用 C庫執行。SQL語句通過介面進入到高效的 SQL編譯器,由標記處理器(tokenizer)分解成查詢分析器(parser)可以識別的各個標誌符,然後由分析器重新組合標誌符並調用代碼產生器(codegeneratot)產生虛擬機器碼,交由虛擬機器(virtual machine)去執行,最終完成 SQL語句指定的任務。虛擬機器是 SQLite內部結構的核心,不僅完成與資料操作相關的全部操作,而且還是客戶和儲存之間資訊進行交換的中間單元。資料庫按照 B樹(B- tree)的形式儲存在磁碟上,通過可調整的頁面緩衝獲得對資料的快速尋找和儲存。為了方便移植,SQLite 使用一個抽象層介面(OS interface)與不同作業系統進行對接。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.