当前位置: 首页 > 科技观察

5个最流行的可用于移动开发的嵌入式数据库介绍

时间:2023-03-14 08:31:56 科技观察

嵌入式数据库是轻量级的独立库,没有服务器组件,没有管理,代码量小,资源需求有限。目前有几种嵌入式数据库可以在移动应用程序中使用。让我们来看看一些最好的数据库。数据库数据类型存储许可支持平台BerkeleyDB关系型、对象、键值对、文档AGPL3.0Android、iOSCouchbaseLite文档Apache2.0Android、iOSLevelDB键值对NewBSDAndroid、iOSSQLite关系型PublicDomainAndroid、iOS、WindowsPhone,BlackberryUnQLitekey-valuepairs,documentsBSD2-ClauseAndroid,iOS,WindowsPhoneBerkeleyDBBerkeleyDB是美国SleepycatSoftware开发的开源嵌入式数据库管理系统(被Oracle收购)。为应用程序提供可扩展、高性能、事务保护的数据管理服务。BerkeleyDB(BDB)是一个高效的嵌入式数据库编程库。C语言、C++、Java、Perl、Python、Tcl等多种语言都有对应的API。BerkeleyDB可以保存任何类型的键/值对(Key/ValuePair),并且可以为一个键保存多个数据。BerkeleyDB支持数千个并发线程同时操作数据库,支持最大256TB数据,广泛应用于各种操作系统,包括大多数类Unix操作系统、Windows操作系统、实时操作系统.CouchbaseLiteCouchbaseLite是为在线和离线移动应用程序开发的超轻量级、可靠且安全的JSON数据库。即使在最不确定的网络条件下,也能为您的移动应用程序带来高效可靠的声誉。此外,“同步门户”功能还可以提供协作、社交互动或用户更新。Couchbase移动平台的亮点JSONAnywhere使用灵活的数据模型,专为面向对象的移动应用程序而设计,可立即适应您的应用程序需求,而无需对应用程序进行重大更改。轻松同步(EasySync)只需几行代码就可以同步;允许开发人员更多地关注应用程序开发本身而不是同步问题。本机API使用针对iOS和Android优化的API管理移动数据库RESTAPI根据您的开发需求,RESTAPI提供了另一种访问方法。LevelDBLevelDB是Google开源的一个Key/Value存储引擎。它是用C++编写的,支持高并发访问和写入。特别适用于写字率高的商务环境。LevelDB的概述可以参考《数据分析与处理二》(Leveldb实现原理)中对LevelDB的描述。这篇文章的图更多的是LevelDB的一个实现层的纠结,版本是LevelDB1.7.02。LevelDB存储主要分为SSTable和MemTable,前者是不可变的,存储在持久化设备上,后者位于内存和变量中(LevelDB中有两个MemTable,一个当前写入MemTable,一个在等待持久化一个不可变的MemTable)。先来看SSTable的实现层分析。SQLiteSQLite是一个开源的嵌入式关系数据库,它实现了一个自包含的、零配置的、支持事务的SQL数据库引擎。具有携带方便、使用方便、结构紧凑、高效可靠等特点。与其他数据库管理系统不同,SQLite的安装和运行非常简单,在大多数情况下——只需确保SQLite二进制文件存在并开始创建、连接和使用数据库。如果您正在寻找嵌入式数据库项目或解决方案,SQLite绝对值得考虑。UnQLiteUnQLite是SymiscSystems出品的嵌入式C语言软件库,它实现了一个独立的、无服务器的、零配置的、事务性的NoSQL数据库引擎。UnQLite是一个文档存储数据库,类似于MongoDB、Redis、CouchDB等,同时也是一个标准的Key/Value存储,类似于BerkeleyDB、LevelDB。UnQLite是一个嵌入式NoSQL(键/值存储和文档存储)数据库引擎。与大多数其他NoSQL数据库不同,UnQLite没有独立的服务器进程。UnQLite直接读取/写入普通磁盘文件。包含多个数据集的完整数据库,存储在单个磁盘文件中。数据库文件格式是跨平台的,数据库可以在32位和64位系统或大端和小端架构之间自由复制。UnQLite的主要特点如下:`Serverless`数据库引擎。`Transactional`(ACID)数据库。`零配置`。`单一数据库文件`,不使用临时文件。一种“跨平台”的“文件格式”。UnQLite是一个独立的C语言库,“没有任何外部依赖性”。标准的“键/值”存储。基于`Jx9`的`DocumentStore`(JSON)数据库。支持游标,满足线性记录遍历。`pluggable`运行时可交换存储引擎。支持“磁盘持久性”和“内存模式”的数据库。内置强大的磁盘存储引擎,支持`O(1)`查询。`线程安全`,完全可重入。简单、清晰、易于使用的“API”。支持TB(太字节)大小的数据库。采用`BSD开源许可协议`。合并:UnQLite和Jx9相关的所有C源代码文件合并到“单个文件”中。良好的“在线支持”。有关详细信息,请参阅UnQLite功能页面。(想想:怎么感觉像SQLite?)UnQLite是一个独立的C库,没有外部依赖。它需要非常少的外部库或操作系统的支持。它特别适合在嵌入式设备上使用,也适用于内部应用程序(那些需要在大量计算机上运行而无需修改各种配置的应用程序)。UnQLite100%手工编码,使用ANSIC,线程安全,完全可重入,无需修改即可编译,可以在大多数平台上运行,包括有限的嵌入式设备,只需要一个C编译器。UnQLite已经在非常广泛的平台上进行了测试,包括Windows和UNIX系统,尤其是Linux、FreeBSD、OracleSolaris和MacOSX。UnQLite是一个标准的键/值存储,类似于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-ClauseBSD协议下开源代码。