5個最流行的可用於移動開發的嵌入式資料庫簡介

來源:互聯網
上載者:User

5個最流行的可用於移動開發的嵌入式資料庫簡介

嵌入式資料庫是輕量級的,獨立的庫,沒有伺服器組件,無需管理,一個小的代碼尺寸,以及有限的資源需求。目前有幾種嵌入式資料庫,你可以在行動裝置 App程式中使用。讓我們來看看這些最流行的資料庫。

資料庫

資料類型儲存

License 支援平台
BerkeleyDB relational, objects, key-value pairs, documents AGPL 3.0 Android, iOS
Couchbase Lite documents Apache 2.0 Android, iOS
LevelDB key-value pairs New BSD Android, iOS
SQLite relational Public Domain Android, iOS, Windows Phone, Blackberry
UnQLite key-value pairs, documents BSD 2-Clause Android, iOS, Windows Phone

Berkeley DB

Berkeley DB是由美國Sleepycat Software公司開發的一套開放原始碼的嵌入式資料庫管理系統已被Oracle收購),它為應用程式提供可伸縮的、高效能的、有事務保護功能的資料管理服務。

Berkeley DBBDB)是一個高效的嵌入式資料庫編程庫,C語言、C++、Java、Perl、Python、Tcl以及 其他很多語言都有其對應的API。Berkeley DB可以儲存任意類型的鍵/值對Key/Value Pair),而且可以為一個鍵儲存多個資料。Berkeley DB支援讓數千的並發線程同時操作資料庫,支援最大256TB的資料,廣泛用於各種作業系統,其中包括大多數類Unix作業系統、Windows作業系統 以及即時作業系統。

Couchbase Lite

Couchbase Lite是一個為滿足線上和離線的行動裝置 App所開發的超輕量的,可靠的,並且安全的JSON資料庫。即使在最不確定的網路條件下,亦可以給您的行動裝置 App提供富有成效的和可靠的信譽。除此之外,’同步門戶’功能亦可以提供協作, 社互動動或者是使用者的更新。

Couchbase移動平台的亮點

JSON Anywhere

使用專為物件導向的行動裝置 App設計的靈活的資料模型,即時適應你的應用程式需要而無需大幅改動應用程式。

易於同步 輕鬆同步)

只須幾行代碼就可以同步就緒;使開發人員可以更專註於應用開發本身,而非同步問題。

原生 APIs

使用專門為iOS和Android最佳化的API管理移動資料庫

REST APIs

基於你的開發需求, REST APIs 提供了一種替代的存取方法。

LevelDB

LevelDB是Google開源出的一個Key/Value儲存引擎,它採用C++編寫的,支援高並發訪問和寫入,特別適合對於高寫入業務環境。對於LevelDB的概覽可以參考資料分析與處理之二Leveldb 實現原理)對LevelDB的一個描述,本文的圖解更多的是LevelDB的一個實現層的糾纏,版本為LevelDB 1.7.02。

LevelDB儲存主要分為SSTable和MemTable,前者為不可變且儲存於持久裝置上,後者位於記憶體上並且可變(在LevelDB中有兩 個MemTable,一個為當前寫入MemTable,另一個為等待持久化的不可變MemTable)。首先來看SSTable的實現層分析。

SQLite

SQLite 是一個開源的嵌入式關聯式資料庫,實現自包容、零配置、支援事務的SQL資料庫引擎。 其特點是高度便攜、使用方便、結構緊湊、高效、可靠。 與其他資料庫管理系統不同,SQLite 的安裝和運行非常簡單,在大多數情況下 – 只要確保SQLite的二進位檔案存在即可開始建立、串連和使用資料庫。如果您正在尋找一個嵌入式資料庫專案或解決方案,SQLite是絕對值得考慮。

UnQLite

UnQLite是,由 Symisc Systems公司出品的一個嵌入式C語言軟體庫,它實現了一個自包含、無伺服器、零配置、事務化的NoSQL資料庫引擎。UnQLite是一個文檔儲存資料庫,類似於MongoDB、Redis、CouchDB等。同時,也是一個標準的Key/Value儲存,與BerkeleyDB和LevelDB等類似。

UnQLite是一個嵌入式NoSQL鍵/值儲存和文檔儲存)資料庫引擎。不同於其他絕大多數NoSQL資料庫,UnQLite沒有一個獨立的伺服器處理序。UnQLite直接讀/寫普通的磁碟檔案。包含多個資料集的一個完整的資料庫,儲存在單一的磁碟檔案中。資料庫檔案格式是跨平台的,可以在32位和64位系統或大端和小端架構之間,自由拷貝一個資料庫。UnQLite的主要特點,如下:

可以通過UnQLite特點一頁,瞭解更多的細節。(想想:有幾分SQLite的味兒?)

UnQLite是,一個自包含的C庫,無外部依賴。它要求非常小的外部庫或來自作業系統的支援。特別適合應用於嵌入式裝置,也適用於應用程式內部那些需要運行於大量的電腦,而無需修改各種配置)。

UnQLite是,100%手工編碼,使用ANSI C,安全執行緒,完全可重新進入,編譯無需修改,而且可運行於絕大多數的平台,包括受限的嵌入式裝置,僅需要一個C編譯器。UnQLite已經在非常廣泛的平台 進行了測試,包括Windows和UNIX系統,特別是Linux、FreeBSD、Oracle Solaris及Mac OS X。

UnQLite是,一個標準的key/value儲存,與BerkeleyDB和LevelDB等相似。但是,擁有更加豐富的特性集,包括支援事務 ACID),並發讀等。在KV儲存下,鍵和值都被視為簡單的位元組數組,所以內容可以是任何東西,包括ASCII字串、二進位對象和磁碟檔案等。應用程 序,可以通過介面API來訪問KV層,包括

 
  1. unqlite_kv_store() 
  2. unqlite_kv_append() 
  3. unqlite_kv_fetch_callback() 
  4. unqlite_kv_append_fmt() 
  5. unqlite_kv_delete() 

等等。

UnQLite用來在資料庫中儲存JSON文檔如,對象、數組、字串等)的文檔儲存介面,是通過Jx9程式設計語言支撐/實現的。Jx9是一種嵌入式的指令碼語言,也叫擴充語言,被設計用於通用過程化編程,具備資料表述的特性。Jx9是一個圖靈完備Turing-Complete),基於JSON的,動態類型程式設計語言,作為UnQLite核心的一個庫而存在。

總之,UnQLite一塊開源軟體,在 2-Clause BSD協議下開放原始碼。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.