標籤:android io os 使用 java ar 檔案 資料 代碼
5個用於移動開發的最流行資料庫
嵌入式資料庫是輕量級的,獨立的庫,沒有伺服器組件,無需管理,一個小的代碼尺寸,以及有限的資源需求。目前有幾種嵌入式資料庫,你可以在行動裝置 App程式中使用。讓我們來看看這些最流行的資料庫。
資料庫
資料類型儲存
License支援平台
BerkeleyDBrelational, objects, key-value pairs, documentsAGPL 3.0Android, iOS
Couchbase LitedocumentsApache 2.0Android, iOS
LevelDBkey-value pairsNew BSDAndroid, iOS
SQLiterelationalPublic DomainAndroid, iOS, Windows Phone, Blackberry
UnQLitekey-value pairs, documentsBSD 2-ClauseAndroid, iOS, Windows Phone
1. Berkeley DB
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 作業系統以及即時作業系統。
2. Couchbase Lite
Couchbase Lite 是一個為滿足線上和離線的行動裝置 App所開發的超輕量的,可靠的,並且安全的 JSON 資料庫。即使在最不確定的網路條件下,亦可以給您的行動裝置 App提供富有成效的和可靠的信譽。除此之外,’同步門戶’功能亦可以提供協作, 社互動動或者是使用者的更新。
3. LevelDB
LevelDB 是 Google 開源出的一個 Key/Value 儲存引擎,它採用 C++ 編寫的,支援高並發訪問和寫入,特別適合對於高寫入業務環境。
對於 LevelDB 的概覽可以參考資料分析與處理之二(Leveldb 實現原理)對 LevelDB 的一個描述,本文的圖解更多的是 LevelDB 的一個實現層的糾纏,版本為 LevelDB 1.7.02。
LevelDB 儲存主要分為 SSTable 和 MemTable,前者為不可變且儲存於持久裝置上,後者位於記憶體上並且可變(在 LevelDB 中有兩個 MemTable,一個為當前寫入 MemTable,另一個為等待持久化的不可變 MemTable)。首先來看 SSTable 的實現層分析。
4. SQLite
SQLite 是一個開源的嵌入式關聯式資料庫,實現自包容、零配置、支援事務的 SQL 資料庫引擎。 其特點是高度便攜、使用方便、結構緊湊、高效、可靠。 與其他資料庫管理系統不同,SQLite 的安裝和運行非常簡單,在大多數情況下 - 只要確保 SQLite 的二進位檔案存在即可開始建立、串連和使用資料庫。如果您正在尋找一個嵌入式資料庫專案或解決方案,SQLite 是絕對值得考慮。
5. UnQLite
UnQLite 是,由 Symisc Systems 公司出品的一個嵌入式C語言軟體庫,它實現了一個自包含、無伺服器、零配置、事務化的NoSQL 資料庫引擎。UnQLite是一個文檔儲存資料庫,類似於 MongoDB、Redis、CouchDB 等。同時,也是一個標準的 Key/Value 儲存,與 BerkeleyDB 和 LevelDB 等類似。
UnQLite 是一個嵌入式NoSQL(鍵/值儲存和文檔儲存)資料庫引擎。不同於其他絕大多數 NoSQL 資料庫,UnQLite 沒有一個獨立的伺服器處理序。UnQLite 直接讀/寫普通的磁碟檔案。包含多個資料集的一個完整的資料庫,儲存在單一的磁碟檔案中。資料庫檔案格式是跨平台的,可以在32位和64位系統或大端和小端架構之間,自由拷貝一個資料庫。
5個用於移動開發的最流行資料庫