为什么我们要将Couchbase Lite与Android Studio集成

2017-08-11 136 标签: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();

热门项目排行榜