為什么我們要將Couchbase Lite與Android Studio集成

2017-08-11 249 標簽:nosql

Couchbase Lite是一種用于移動設備的嵌入式NoSQL數據庫,可在具有完整CRUD和查詢功能的設備上運行。在本文中,我們將發現如何將Couchbase Lite與Android Studio集成。

移動設備的Android目前帶有一個內置的本地數據庫SQLite。這是一個基于RDBMS的輕量級數據庫,默認情況下在所有Android操作系統上可用,并提供CRUD操作,以有效地為您的應用程序提供支持。SQLite真的是一個很好的選擇,當需求只是一個簡單的數據庫為您的應用程序來管理結構化數據。但是,當需要存儲半結構化數據或非結構化數據時,還可以處理復雜的查詢而不用擔心表的模式,那么SQLite可能無法滿足開發人員的所有要求。NoSQL數據庫可以更好地適應這些擴展需求。SQL和NoSQL數據庫之間的比較推動了許多辯論,但彼此相輔相成,而不是相互競爭。

在本文中,我們首先討論移動設備的一般數據庫需求,其次是NoSQL在當今移動領域的突出地位,最后,再看一下將名為Couchbase Lite的NoSQL數據庫與Android Studio集成。

移動設備的數據庫

決定移動設備的數據庫需要考慮諸如內存限制,用戶體驗,輕量級UI等各種因素 - 與桌面或Web環境所需要的參數非常不同。所以在我們開始將Couchbase Lite與Android集成之前,我們先來看看下面列出的移動環境中的數據庫的各種要求。

  • 與臺式機或服務器不同,移動設備往往具有較低的電池壽命和較慢的CPU。因此,數據庫不應該是性能密集的,應該能夠有效地執行頻繁的操作,如搜索和更新。
  • 移動數據庫應具有較小的內存占用。在某些方面,更高的內存需求也將導致CPU周期的增加,內核會嘗試集中搜索RAM中的可用內存空間。較低的占地面積需求不僅可以降低CPU周期,還可以確保其他移動應用不會受到影響。
  • 所有獲獎的移動應用都是高性能,加載時間快。不斷凍結的應用程序總是在后臺。在移動設備上談論這些本地數據庫時,數據一致性是另一個要求。如果要使用分布式數據庫,數據可能會與其遠程對應的數據不一致,如果不能處理,并且設備甚至可能僅在連接到Internet時才能發現。

具有基于云的數據庫后端的移動開發人員(如Firebase)不必擔心大多數這些約束和要求,而是需要在選擇本地數據庫時將這些因素包含在方程式中。

NoSQL在移動領域的相關性

隨著移動設備的使用量的增加,這些年數量正在大量生成。這一事實使得技術擴散成為移動性,物聯網和分析技術的新空間,導致了移動設備和應用程序需要高速處理這種大量數據。此外,數據的性質(特別是來自實時數據交換的物聯網設備)是連續的,并且是半結構化的或應用程序需要適應或適應各種模式。NoSQL帶來的一些基本哲學就是解決移動領域的挑戰,如下所述。

  • NoSQL是無模式的事實將有助于開發人員處理缺少模式或結構的數據。此外,這個屬性還將使它們適應不斷變化或不斷變化的數據需求。模式或結構的變化可以在任何時間點以獨立的方式輕松完成,而不影響現有代碼。所有這些都將直接導致應用程序的敏捷交付,快速的周轉時間,以及設計注意事項的耗時過程,以及使用關系數據庫時可擴展性和代碼模塊化的范圍有限。
  • NoSQL數據庫的分布式體系結構確保它們的性能優于RDBMS。此外,NoSQL沒有復雜的連接操作和規范化數據,也不包括復雜的查詢。這些因素在數據庫性能方面占有優勢。有效的性能直接導致移動應用程序的更好的用戶體驗,因為UI組件和活動的加載時間減少。這也直接改善了電池壽命。
  • 在實現所有這些目標的同時,安全是另一個不容忽視的方面。數據庫應該能夠通過安全通道與服務器進行通信。此外,通過互聯網與移動設備進行通信的渠道需要較低的延遲,以改善移動用戶體驗。此外,網絡上的數據交換應該是輕量級的,以滿足這些性能要求。

所有這些說,我們仍然可能無法在許多方面消除補充NoSQL的SQL數據庫。NoSQL不保證RDBMS能夠實現的數據的原子性或完整性。因此,開發人員在一天結束時的需求決定了哪個數據庫。

將Couchbase Lite與Android Studio集成

Couchbase Lite是Apache License 2.0提供的開源項目。它是一個嵌入式JSON數據庫,可以在P2P網絡中作為獨立工作,也可以作為Sync Gateway的遠程端點。在本文中,我們將介紹如何使用Couchbase Lite為Android應用程序提供支持。

在進行集成之前,我們先看看關于這個數據庫的幾個關鍵功能。

  • Couchbase Lite以輕量級的JSON格式在移動設備上本地存儲和管理所有數據。
  • 考慮到移動數據庫的要求,Couchbase Lite具有較低的內存占用空間,內置安全性,用戶認證,基于AES的數據加密,以及通過TLS傳輸到服務器。
  • Couchbase Lite通過本地API提供CRUD和查詢支持,并且還可以通過REST API對其現有REST體系結構進行編程訪問。
  • Couchbase Lite的流和批處理API能夠以低網絡延遲和吞吐量批量傳輸實時數據,從而滿足移動應用的確切需求。

現在讓我們來看一下安裝Couchbase Lite和其他基本操作的步驟。

假設讀者已經熟悉Android Studio IDE開發Android應用程序。將Couchbase dB與Android集成很簡單。您可以從應用程序的build.gradle中添加以下給出的依賴元素:

dependencies {
 
compile 'com.couchbase.lite:couchbase-lite-android:+'
 
}

在應用程序的Java部分,您將需要以下基本的軟件包集:

import com.couchbase.lite.*;
 
import com.couchbase.lite.android.AndroidContext;

現在您已經在Android應用程序中使用CouchBase API,我想說明用于創建數據庫的示例代碼,并在其中插入,更新和刪除其中的文檔,如(1)所述, ,(2),(3)和(4)。

// (1) Get the database or create it if it doesn’t already exist.
 
Manager manager = new Manager(new JavaContext(),Manager.DEFAULT_OPTIONS);
 
Database db = manager.getDatabase("couchdB");
 
// (2) Create a new document (a record) in the database.
 
Document doc = db.createDocument();
 
Map properties = new HashMap();
 
properties.put("firstName", "OSFY");
 
doc.putProperties(properties);
 
// (3) Update a document.
 
doc.update(new Document.DocumentUpdater() {
 
@Override
 
public boolean update(UnsavedRevision newRevision) {
 
Map properties = newRevision.getUserProperties();
 
properties.put("firstName", "Johnny");
 
newRevision.setUserProperties(properties);
 
return true;
 
}
 
});
 
// (4) Delete a document.
 
doc.delete();

熱門項目排行榜

湖北体彩十一选五玩法 北京11选五每期推荐号 足彩的五种玩法 体彩湖北11选五前三直 香港五分彩有没有官网 真钱假钱怎么认 北京pk拾计划网 辽宁35选7开奖直播 山西11选5前三走势图 极速时时彩彩开奖网站 浙江体彩61下期预测