您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > 嵌入式数据库_指导文档
1.嵌入式数据库介绍嵌入式数据库的名称来自其独特的运行模式。这种数据库嵌入到了应用程序进程中,消除了与客户机服务器配置相关的开销。嵌入式数据库实际上是轻量级的,在运行时,它们需要较少的内存。它们是使用精简代码编写的,对于嵌入式设备,其速度更快,效果更理想。嵌入式运行模式允许嵌入式数据库通过SQL来轻松管理应用程序数据,而不依靠原始的文本文件。嵌入式数据库还提供零配置运行模式,这样可以启用其中一个并运行一个快照。在嵌入式系统中,对数据库的操作具有定时限制的特性,这里把应用于嵌入式系统的数据库系统称为嵌入式数据库系统或嵌入式实时数据库系统(ERTDBS)。可靠性要求是毋庸置疑的,嵌入式系统必须能够在没有人工干预的情况下,长时间不间断地运行。同时要求数据库操作具备可预知性,而且系统的大小和性能也都必须是可预知的,这样才能保证系统的性能。嵌入式系统中会不可避免地与底层硬件打交道,因此在数据管理时,也要有底层控制的能力,如什么时候会发生磁盘操作,磁盘操作的次数,如何控制等。底层控制的能力是决定数据库管理操作的关键。目前嵌入式软件系统开发的挑战之一,体现在对各种数据的管理能否建立一套可靠、高效、稳定的管理模式,嵌入式数据库可谓应运而生。嵌入式数据库是嵌入式系统的重要组成部分,也成为对越来越多的个性化应用开发和管理而采用的一种必不可少的有效手段。嵌入式数据库用途广泛,如用于消费电子产品、移动计算设备、企业实时管理应用、网络存储与管理以及各种专用设备,这一市场目前正处于高速增长之中。举简单例子,手机原来只用来打电话、发短信,现在手机增加了很多新的功能,比如彩信、音乐、摄影、视频等等,应用的功能多了,系统就变得复杂。2.常用的嵌入式数据库的比较2.1BerkeleyDB(开源,商用收费)主页:技术特点1.BerkeleyDB是一个开放源代码的内嵌式数据库管理系统,能够为应用程序提供高性能的数据管理服务。应用它程序员只需要调用一些简单的API就可以完成对数据的访问和管理。(不使用SQL语言)2.BerkeleyDB为许多编程语言提供了实用的API接口,包括C、C++、Java、Perl、Tcl、Python和PHP等。所有同数据库相关的操作都由BerkeleyDB函数库负责统一完成。3.BerkeleyDB轻便灵活(Portable),可以运行于几乎所有的UNIX和Linux系统及其变种系统、Windows操作系统以及多种嵌入式实时操作系统之下。BerkeleyDB被链接到应用程序中,终端用户一般根本感觉不到有一个数据库系统存在。4.BerkeleyDB是可伸缩(Scalable)的,这一点表现在很多方面。Databaselibrary本身是很精简的(少于300KB的文本空间),但它能够管理规模高达256TB的数据库。它支持高并发度,成千上万个用户可同时操纵同一个数据库。BerkeleyDB能以足够小的空间占用量运行于有严格约束的嵌入式系统。BerkeleyDB在嵌入式应用中比关系数据库和面向对象数据库要好,有以下两点原因:(1)因为数据库程序库同应用程序在相同的地址空间中运行,所以数据库操作不需要进程间的通讯。在一台机器的不同进程间或在网络中不同机器间进行进程通讯所花费的开销,要远远大于函数调用的开销;(2)因为BerkeleyDB对所有操作都使用一组API接口,因此不需要对某种查询语言进行解析,也不用生成执行计划,大大提高了运行效。2.2SQLite(开源,商用免费)主页:的主要特点:1.支持事件,不需要配置,不需要安装,也不需要管理员;2.支持大部分SQL92;3.一个完整的数据库保存在磁盘上面一个文件,同一个数据库文件可以在不同机器上面使用,最大支持数据库到2T,字符和BLOB的支持仅限制于可用内存;4.整个系统少于3万行代码,少于250KB的内存占用(gcc),大部分应用比目前常见的客户端/服务端的数据库快,没有其它依赖5.源代码开放,代码95%有较好的注释,简单易用的API。官方带有TCL的编译版本。2.3Empress(商业数据库)开发阶段特点:1.可嵌入程序,该特性使应用程序和数据库工作于统一地址空间,增强了系统的稳定性,提高了系统的效率。2.确定的响应时间,Empress可以使数据的响应时间相对一致,使用者可以设定一个超时限制,如果在规定时间内没有完成插入,修改等操作,系统会报错。3.快速的操作Empress提供了内核级的CAPI,称为MR,用MR编写的应用程序在执行时不需要解析。另外在MR中加速的机制还包括优秀的加锁控制,内存管理和基于记录数量的选择功能。4.灵活的开发方式,Empress提供多种开发接口,加快开发进程而无需开发者重新学习开发语言和熟悉开发环境。5.友好的存储方式,Empress数据库可以放在操作系统支持的任何存储设备中,Empress的表单甚至可以分割放在不同的存储设备中,比如在内存,硬盘和CD-ROM中。6.微型内核结构Empress高度单元化,可根据需要选择需要的单元,从而缩小产品中Empress数据库所占用的资源。7.宽广的平台支持,Empress支持多种硬件平台和软件平台,也可移植到客户要求的硬件平台或操作系统。技术优势:1.微型内核结构,占用少量内存空间,特别适合紧凑性的设计2.一周7天,每天24小时连续工作,无需任何额外操作免维护3.内核级CAPI接口,使运行速度最大化4.高度灵活的SQL接口5.优秀的掉电恢复能力6.强壮的交易和锁存机制7.支持SCSI,RAID,IDE,RAM,CD-RW,DVD-ROM,CF,等存储介质8.支持Unicode码9.引擎可加载于磁盘和内存2.4eXtremeDBeXtremeDB特点:1.内存数据库,eXtremeDB将数据以程序直接使用的格式保存在主内存之中,不仅剔除了文件I/O的开销,也剔除了文件系统数据库所需的缓冲和Cache机制。其结果是每个交易一微秒甚至更少的极限速度,相比于类磁盘数据库而言,速度成百上千倍地提高。作为内存数据库,eXtremeDB不仅性能高,而且数据存储的效率也非常高。为了提高性能并方便程序使用,数据在eXtremeDB中不做任何压缩,100M的空间可以保存高达70M以上的有效数据,这是其他数据库所不可想象的。2.混合数据库,eXtremeDB不仅可以建立完全运行在主内存的内存数据库,更可以建立磁盘/内存混合介质的数据库。在eXtremeDB,我们把这种建立在磁盘、内存或磁盘+内存的运行模式称为eXtremeDBFusion融合数据库。eXtremeDBFusion兼顾数据管理的实时性与安全性要求,是实时数据管理的台阶性进步。3.嵌入式数据库,eXtremeDB内核以链接库的形式包含在应用程序之中,其开销只有50KB~130KB。无论在嵌入式系统还是在实时系统之中,eXtremeDB都天然地嵌入在应用程序之中,在最终用户毫不知情的情况下工作。eXtremeDB的这种天然嵌入性对实时数据管理至关重要:各个进程都直接访问eXtremeDB数据库,避免了进程间通信,从而剔除了进程间通信的开销和不确定性。同时,eXtremeDB独特的数据格式方便程序直接使用的,剔除了数据复制及数据翻译的开销,缩短了应用程序的代码执行路径。4.由应用定制的API,应用程序对eXtremeDB数据库的操作接口是根据应用数据库设计而自动产生,不仅提升了性能,也剔除了通用接口所必不可少的动态内存分配,从而提高了应用系统的可靠性。定制过程简单方便,由高级语言定制eXtremeDB数据库中的表格、字段、数据类型、事件触发、访问方法等应用特征,通过eXtremeDB预编译器自动产生访问该数据库的C/C++API接口。5.可预测的数据管理eXtremeDB独特的体系结构,保证了数据管理的可预测性。eXtremeDB不仅更快、更小,而且更确定。在80双核CPU的服务器上,eXtremeDB在1TB内存里保存15B条记录;无论记录数多少,eXtremeDB可以在八十分之一微秒的时间内提取一条记录。2.5Firebird嵌入服务器版(EmbeddedServer)主页:,充满了勃勃生机。虽然它的体积比前辈Interbase缩小了几十倍,但功能并无阉割。为了体现Firebird短小精悍的特色,开发小组在增加了超级服务器版本之后,又增加了嵌入版本,最新版本为2.0。Firebird的嵌入版有如下特色:1、数据库文件与Firebird网络版本完全兼容,差别仅在于连接方式不同,可以实现零成本迁移。2、数据库文件仅受操作系统的限制,且支持将一个数据库分割成不同文件,突破了操作系统最大文件的限制,提高了IO吞吐量。3、完全支持SQL92标准,支持大部分SQL-99标准功能。4、丰富的开发工具支持,绝大部分基于Interbase的组件,可以直接使用于Firebird。5、支持事务、存储过程、触发器等关系数据库的所有特性。6、可自己编写扩展函数(UDF)。2.6mSQL介绍主页:(miniSQL)是一个单用户数据库管理系统,个人使用免费,商业使用收费。由于它的短小精悍,使其开发的应用系统特别受到互联网用户青睐。mSQL(miniSQL)是一种小型的关系数据库,性能不是太好,对SQL语言的支持也不够完全,但在一些网络数据库应用中是足够了。由于mSQL较简单,在运行简单的SQL语句时速度比MySQL略快,而MySQL在线程和索引上下了功夫,运行复杂的SQL语句时比mSQL,PostgreSQL等都要快一些。MSQL的网址是:,最新版本是2005年5月8日发布的3.7.MSQL的标志是一个鹿,见下图。图1mSQLLOGO标志mSQL的技术特点:安全性方面,mSQL通过ACL文件设定各主机上各用户的访问权限,缺省是全部可读/写。mSQL缺乏ANSISQL的大多数特征,它仅仅实现了一个最最少的API,没有事务和参考完整性。mSQL与Lite(一种类似C的脚本语言,与分发一起发行)紧密结合,可以得到一个称为W3-mSQL的一个网站集成包,它是JDBC、ODBC、Perl和PHPAPI.3.SQLite数据库实验3.1学习资源中文网站:编程介绍、开源论坛官方网站:源码下载、GettingStarted、C/C++参考、各种其他文档、开发者论坛等。3.2在Linux主机上安装运行SQLite从下载sqlite-amalgamation-3.5.9.tar.gz文件上传sqlite-amalgamation-3.5.9.tar.gz至mike目录解压缩sqlite-amalgamation-3.5.9.tar.gztarzxvfsqlite-amalgamation-3.5.9.tar.gz进入sqlite目录:cdsqlite-amalgamation-3.5.9配置./configure编译make安装makeinstall主要安装了如下文件:/usr/local/include/sqlite3.h/usr/local/include/sqlite3ex.h/usr/local/lib/libsqlite3*/usr/local/bin/sqlite3其中头文件用于提供sqlite提供的库函数原型,在编写数据库应用程序时,会include这些头文件;库函数则是sqlite提供的动态连链接库,如果应用
本文标题:嵌入式数据库_指导文档
链接地址:https://www.777doc.com/doc-5455404 .html