移动开发:5个最流行的数据库

机器学习 3911 Views

数盟倡导“数据创造价值”,致力于打造最卓越的数据科学交流平台,为企业、个人提供最卓越的服务】

嵌入式数据库是轻量级的,独立的库,没有服务器组件,无需管理,一个小的代码尺寸,以及有限的资源需求。目前有几种嵌入式数据库,你可以在移动应用程序中使用。让我们来看看这些最流行的数据库。

数据库 数据类型存储 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 DB(BDB)是一个高效的嵌入式数据库编程库,C语言、C++、Java、Perl、Python、Tcl以 及其他很多语言都有其对应的API。Berkeley DB可以保存任意类型的键/值对(Key/Value Pair),而且可以为一个键保存多个数据。Berkeley DB支持让数千的并发线程同时操作数据库,支持最大256TB的数据,广泛用于各种操作系统,其中包括大多数类Unix操作系统、Windows操作系统以及实时操作系统。


Couchbase Lite

Couchbase Lite是一个为满足在线和离线的移动应用所开发的超轻量的,可靠的,并且安全的JSON数据库。即使在最不确定的网络条件下,亦可以给您的移动应用提供富有成效 的和可靠的信誉。除此之外,’同步门户’功能亦可以提供协作, 社交互动或者是用户的更新。

Couchbase移动平台的亮点

    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层,包括

      等等。

      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编程语言。


      —————————————————

      数盟网站:www.dataunion.org

      数盟微博:@数盟社区

      数盟微信:DataScientistUnion

      数盟【大数据群】272089418

      数盟【数据可视化群】 179287077

      数盟【数据分析群】 174306879 ,110875722 ,321311420

      —————————————————

      更多精彩,点击阅读原文~

如未说明则本站原创,转载请注明出处:NULL » 移动开发:5个最流行的数据库