5個用于移動開發的最流行數據庫

jopen 10年前發布 | 80K 次閱讀 數據庫

嵌入式數據庫是輕量級的,獨立的,沒有服務器組件無需管理,一個小的代碼尺寸,以及有限的資源需求</span>目前有幾種嵌入式數據庫你可以在移動應用程序中使用讓我們來看看這些最流行的數據庫。

</tr> </thead>

</tr>

</tr>

</tr>

</tr>

</tr> </tbody> </table>

Berkeley DB

berkeleydb

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

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

Couchbase Lite

CouchbaseLite

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

Couchbase移動平臺的亮點

JSON Anywhere

使用專為面向對象的移動應用設計的靈活的數據模型,即時適應你的應用程序需要而無需大幅改動應用程序

易于同步 (輕松同步)

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

原生 APIs

使用專門為iOS和Android優化的API管理移動數據庫

REST APIs

基于你的開發需求, REST APIs 提供了一種替代的訪問方法。



LevelDB

leveldb

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

LevelDB存儲主要分為SSTable和MemTable,前者為不可變且存儲于持久設備上,后者位于內存上并且可變(在LevelDB中有兩個MemTable,一個為當前寫入MemTable,另一個為等待持久化的不可變MemTable)。首先來看SSTable的實現層分析。

SQLite

sqlite

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

UnQLite

unqlite

UnQLite是,由 Symisc Systems公司出品的一個嵌入式C語言軟件庫,它實現了一個自包含無服務器零配置事務化的NoSQL數據庫引擎。UnQLite是一個文檔存儲數據庫,類似于MongoDBRedisCouchDB等。同時,也是一個標準的Key/Value存儲,與BerkeleyDBLevelDB等類似。

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

  1. `無服務器`數據庫引擎。
  2. `事務化` (ACID) 數據庫。
  3. `零配置`
  4. `單一數據庫文件`,不使用臨時文件。
  5. `跨平臺``文件格式`
  6. UnQLite是一個自包含的C語言程序庫,`無任何外部依賴`
  7. 標準的`Key/Value`存儲。
  8. 基于`Jx9``文檔存儲`(JSON)數據庫。
  9. 支持`游標`,滿足線性記錄遍歷。
  10. `插件式`運行時可交換存儲引擎。
  11. 支持`磁盤持久化``內存模式`的數據庫。
  12. 內建強大的磁盤存儲引擎,支持`O(1)`查詢。
  13. `線程安全`,完全可重入。
  14. 簡單、清晰,很容易使用的`API`
  15. 支持`TB(Terabyte)尺寸`的數據庫。
  16. 采用`BSD開源許可協議`
  17. 合并:UnQLiteJx9相關所有C源代碼文件,都合并到`單一的文件中`
  18. 很好的`在線支持`

可以通過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層,包括

unqlite_kv_store()
unqlite_kv_append()
unqlite_kv_fetch_callback()
unqlite_kv_append_fmt()
unqlite_kv_delete()

等等。

UnQLite用來在數據庫中存儲JSON文檔(如,對象、數組、字符串等)的文檔存儲接口,是通過Jx9編程語言支撐/實現的。Jx9是一種嵌入式的腳本語言,也叫擴展語言,被設計用于通用過程化編程,具備數據表述的特性。Jx9是一個圖靈完備(Turing-Complete),基于JSON的,動態類型編程語言,作為UnQLite內核的一個庫而存在。

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

UnQLite編程接口

以下文檔描述了,如何使用API進行UnQLite編程。UnQLite的學習成本很低,對于變成新手,也很容易學習。有用的鏈接,如下:

5分鐘玩轉UnQLite

這是一個非常初級的UnQLite編程指南,通過C語言實現的列子展開介紹。

UnQLite C/C++接口介紹

描繪了一個UnQLite C/C++編程接口的概覽和路線圖。

Jx9介紹

Jx9就是支撐UnQLite文檔存儲接口的嵌入式腳本語言。Jx9是一個圖靈完備(Turing-Complete),基于JSON的,編程語言,作為UnQLite內核的一個庫而存在。

C/C++ API參考指南

這個文檔描述了每個API函數的具體細節。

UnQLite數據庫引擎架構

概括的介紹了UnQLite的上層構架和相關的接口。

外部函數實現

這是一個howto指南,介紹如何創建和安裝外部函數(一般為C/C++實現),以及如何通過Jx9腳本進行調用。

常量擴展機制

這是一個howto指南,介紹加載外部常量(一般為C/C++實現),以及如何通過Jx9腳本擴展其值。

其他有用的鏈接

下載

獲取最新開放版本的UnQLite,開始嵌入,并享受編程的樂趣。

UnQLite特色

這個文檔枚舉,并介紹了UnQLite的一些特色和擴展,以及數據庫模型相關的Jx9編程語言。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!
數據庫

數據類型存儲
</div> </th>

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
  • sesese色