‘壹’ 嵌入式数据存储和非嵌入式存储有什么区别嵌入式存储采用的数据库和它用的编程语言有关系吗
1、嵌入式系统是个大概念,对于有操作系统和文件系统的嵌入式系统(如嵌入式linux系统)来说,它的数据存储方式(文件)和标准的计算机系统区别不大,它除了支持一些特别的文件系统(如yaffs, jffs)外,还支持很多标准计算机系统实现了的文件系统(如ext2, ext3, fat等)及网络文件系统。另外很多嵌入式系统还支持U盘、SD卡等设备,完全可以和标准文件系统进行文件交换。
所要注意的是部分嵌入式系统采用大端模式存储,对于数据型文件(包括二进制、执行文件),在小端系统上(x86系统)会有不同的解析,当然标准系统也有大端的,同样存在这些问题。
2、嵌入式系统的数据库编程和标准系统一样,使用数据库厂商提供的API,需要的编程语言与厂商提供的API有关,只要这些API支持(如sqlite 支持用嵌入式linux系统的交叉编译器编译),那就没有多大问题,区别只是编译工具采用了嵌入式系统的交叉编译器而已。
‘贰’ 嵌入式数据库的可用于移动开发的嵌入式数据库简介
嵌入式数据库是轻量级的,独立的库,没有服务器组件,无需管理,一个小的代码尺寸,以及有限的资源需求。目前有几种嵌入式数据库,你可以在移动应用程序中使用。让我们来看看这些最流行的数据库。 数据库数据类型存储 License支持平台BerkeleyDBrelational, objects, key-value pairs, documentsAGPL 3.0Android, iOSCouchbase LitedocumentsApache 2.0Android, iOSLevelDBkey-value pairsNew BSDAndroid, iOSSQLiterelationalPublic DomainAndroid, iOS, Windows Phone, BlackberryUnQLitekey-value pairs, documentsBSD 2-ClauseAndroid, iOS, Windows Phone
‘叁’ 什么是嵌入式数据库
嵌入式数据库的名称来自其独特的运行模式。
这种数据库嵌入到了应用程序进程中,消除了与客户机服务器配置相关的开销。嵌入式数据库唤空厅实际上是轻量级的,在运行时,它们需要较少的内存。它们是使用精简代码编写的,对于嵌入式设备,其速度更快,效果更理想。嵌入式运行模式允许嵌入式数据库通过SQL来轻松管理应用程亏友序数据,而不依靠原始的文本文件。嵌入式数据库还提供零配置运行模式,这样可以启用其中一个并运和隐行一个快照。简单来说,就是一些终端使用的数据库,如POS机、手机等或者其他的非电脑上面使用的,一般都可以叫嵌入式数据库典型的数据库是sqlite,单文件数据库
‘肆’ 嵌入式实时数据库的数据模型
嵌入式实时数据库系统的关键是数据模型的确立,它决定了数据被访问和操作的方式,应用程序的性能和可靠性也大部分取决于此。目前嵌入式环境下的数据库系统多数采用了关系模型结构,这也是商用数据库系统的数据模型,该模型结构是利用二维关系表来实现数据存储,利用索引访问和查询数据,这种模型结构是建立在严格的数学基础上的,结构简单灵活,独立性好,但在嵌入式环境下的内存开销和数据冗余较大,用户必须对其进行优化,增加了开发数据库系统的难度;有些嵌入式数据库则采用了网状模型结构,该模型通过指针来确定数据间的显式连接关系,它比关系模型中利用冗余数据和索引文件要节约大量的存储空间,具有一定的数据独立性和共享特性,运行效率较高,而且由于它避免了索引操作,比关系型
数据库模式要节省存储空间,数据操作速度也更快。但是这种模型结构比较复杂,尤其当嵌入式系统规模增大时,其数据库的结构变得非常庞大,可能会影响到系统的实时性能。图3所示的是在相同数目的记录下,关系模型和网状模型的系统开销比较,从图中可以看出,网状模型因为避免了索引操作使得其开销要小于关系模型。但是在实际应用中,应当根据实时系统的综合性能选取数据库模型,通常可采用网状加关系或层次加关系的混合模型结构以弥补两种结构之间的缺陷,如CENTURA公司的嵌入式实时数据库RDM(Raima Database Management),它将网状和关系模型的优点结合起来,避免了不必要的索引开销,显着地减少系统存储空间、I/O操作和CPU周期,由于其快速而且可靠性高的特点,广泛应用于许多嵌入式产品中。
‘伍’ 常用嵌入式数据库有哪些(嵌入式数据库是什么区块)
嵌入式数据库还是有很多的,这里举几个吧:
1.BerkeleyDB常用嵌入式数据库有哪些
Berkeley
DB(BDB)是一个高效的嵌入式数据库编程库,C语言、C、Java、Perl、Python、Tcl以及其他很多语言都有其对应的API。
BerkeleyDB可以保存任意类型的键/值对(Key/ValuePair),而且可以为一个键保存多个数据。Berkeley
DB支持让数千的并发线程同时操作数据库,支持最大256TB的数据,广泛用于各种操作系统,其中包括大多数类Unix操作系统、Windows操作系统
以及实时操作系统。谨液蠢
2.CouchbaseLite
CouchbaseLite
是一个为满足在线和离线的移动应用所开发的超轻量的,可靠的,并且安全的JSON数据库。即使在最不确定的网络条件下,亦可以给您的移动应用提供富有成效
的和可靠的信誉。除此之外,’同步门户’功能亦可以提供协作,社交互动或者是用户的更新。
3.LevelDB
LevelDB是Google开源出的一个Key/Value存储引擎,它采用C编写的,支持高并发访问和写入埋和,特别适合对于高写入业务环境。
4.SQLite
SQLite是一个开源的嵌入式关系数据库,实现自包容、零配置、支持事务的SQL数据库引擎。
其特点是高度便携、使用方便、结构紧凑、高效、可靠。与其他数据库管理系统不同,SQLite的安装和运行非常简单,在大多数情况下-
只要确保SQLite的二进制文件存在即可开始创建、连接和使用数据库。
5.UnQLite
UnQLite是,由Symisc
Systems公司出品的一个嵌入式C语言软件库,它实现了一个自包含、无服务器、零配置、事务化的NoSQL数据库引擎。UnQLite是一个文档存储
数据库,类似于MongoDB、Redis、CouchDB等。同时,也是一个标准的Key/Value存储祥陪,与BerkeleyDB和LevelDB等
类似。