华北水利水电大学课程报告课程名称:嵌入式数据库姓名:学号:班级:专业:电子信息工程日期:2015.6.27嵌入式数据库摘要:本文论述了移动计算与嵌入式移动数据库的概念,分析了数据库的典型系统模型,以及基于agent的移动数据库模型,指出了agent对移动数据库系统的支持,并以移动数据库的应用为例,进一步加深对移动数据库的理解,最后,谈论了移动数据库未来的应用前景做了展望。引言:嵌入式数据库的名称来自其独特的运行模式。这种数据库嵌入到了应用程序进程中,消除了与客户机服务器配置相关的开销。嵌入式数据库实际上是轻量级的,在运行时,它们需要较少的内存。它们是使用精简代码编写的,对于嵌入式设备,其速度更快,效果更理想。嵌入式运行模式允许嵌入式数据库通过SQL来轻松管理应用程序数据,而不依靠原始的文本文件。嵌入式数据库还提供零配置运行模式,这样可以启用其中一个并运行一个快照。关键词:嵌入式系统,嵌入式数据库,常用嵌入式数据库,一.常用的嵌入式数据库的比较1.1ProgressProgress软件公司2000年4月18号18时在京宣布,全面发售在Linux操作系统上运行的数据库及其部署产品。Progress在嵌入式数据库市场中拥有全球第一的占有率,世界上有超过200万人正在使用Progress软件公司的应用软件,目前部署Progress产品的站点数量已经超过100,000个。通过Progress软件公司第一个Linux版嵌入式数据库,独立软件开发商和最终用户可以在这一流行的操作系统上移植5,000多种商业应用。----Progress软件公司当时推出的产品为ProgressVersion8.3,现在已经到了10.2c版本。这是一套完善的集成开发工具、应用服务器和关系型数据库产品,提供了可扩充的多层Linux支持。Progress软件公司的Linux专用产品包括:Progress(r)AppServer(tm):这是一种可以在异构环境中部署共享应用组件的应用服务器Progress(r)EnterpriseRDBMS(tm):为需要支持大型数据库、多处理器硬件和数千个并发用户的最苛刻的应用提供了一种可扩充的存储解决方案。---用于RedHat6.0Linux的ProgressVersion8.3部署产品现已全面上市。Progress已推出用于Linux的ProgressVersion9、Progress(r)WebSpeed(r)Version3、Progress(r)Apptivity(tm)和Progress(r)SonicMQ(tm)部署产品。1.2SQLite轻量级别数据库SQLite的主要特点:1.支持事件,不需要配置,不需要安装,也不需要管理员;2.支持大部分SQL92;3.一个完整的数据库保存在磁盘上面一个文件,同一个数据库文件可以在不同机器上面使用,最大支持数据库到2T,字符和BLOB的支持仅限制于可用内存;4.整个系统少于3万行代码,少于250KB的内存占用(gcc),大部分应用比目前常见的客户端/服务端的数据库快,没有其它依赖5.源代码开放,代码95%有较好的注释,简单易用的API。官方带有TCL的编译版本。1.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.引擎可加载于磁盘和内存1.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可以在八十分之一微秒的时间内提取一条记录。1.5Firebird嵌入服务器版Firebird嵌入服务器版(EmbeddedServer),从Interbase开源衍生出的Firebird,充满了勃勃生机。虽然它的体积比前辈Interbase缩小了几十倍,但功能并无阉割。为了体现Firebird短小精悍的特色,开发小组在增加了超级服务器版本之后,又增加了嵌入版本,最新版本为2.0。Firebird的嵌入版有如下特色:1、数据库文件与Firebird网络版本完全兼容,差别仅在于连接方式不同,可以实现零成本迁移。2、数据库文件仅受操作系统的限制,且支持将一个数据库分割成不同文件,突破了操作系统最大文件的限制,提高了IO吞吐量。3、完全支持SQL92标准,支持大部分SQL-99标准功能。4、丰富的开发工具支持,绝大部分基于Interbase的组件,可以直接使用于Firebird。5、支持事务、存储过程、触发器等关系数据库的所有特性。6、可自己编写扩展函数(UDF)。1.6mSQL介绍mSQL(miniSQL)是一个单用户数据库管理系统,个人使用免费,商业使用收费。由于它的短小精悍,使其开发的应用系统特别受到互联网用户青睐。mSQL(miniSQL)是一种小型的关系数据库,性能不是太好,对SQL语言的支持也不够完全,但在一些网络数据库应用中是足够了。由于mSQL较简单,在运行简单的SQL语句时速度比MySQL略快,而MySQL在线程和索引上下了功夫,运行复杂的SQL语句时比mSQL,PostgreSQL等都要快一些。最新版本是2005年5月8日发布的3.7.MSQL的标志是一个鹿,见下图。图1mSQLLOGO标志mSQL的技术特点:安全性方面,mSQL通过ACL文件设定各主机上各用户的访问权限,缺省是全部可读/写。mSQL缺乏ANSISQL的大多数特征,它仅仅实现了一个最最少的API,没有事务和参考完整性。mSQL与Lite(一种类似C的脚本语言,与分发一起发行)紧密结合,可以得到一个称为W3-mSQL的一个网站集成包,它是JDBC、ODBC、Perl和PHPAPI.二.SQLite数据库实验2.1学习资源sqlite中文网站:编程介绍、开源论坛sqlite官方网站:源码下载、GettingStarted、C/C++参考、各种其他文档、开发者论坛等。2.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提供的动态连链接库,如果应用程序使用了sqlite的库函数,则编译时会动态链接这些库;bin目录下的sqlite应用程序是一个shell程序,提供用户命令行接口,用户可以体验sqlite提供的功能。三.国产嵌入式数据库OpenBASELiteOpenBASELite是东软集团股份有限公司开发的嵌入式数据库产品。它是一个典型的轻量级数据库,定制的数据库引擎大小在250KB到600KB之间伸缩,可支持多种桌面操作系统、主流嵌入式系统平台及不同的处理器。作为一款功能全面的关系型数据库系统,OpenBASELite支持标准的SQL语法、ACID事务特性、备份/恢复等功能,提供了标准化开发接口JDBC、ODBC,能够在嵌入式环境下沿用关系数据库的经验继续来进行应用的开发。OpenBASELite提供了内存数据库运行模式,提供高速的数据访问与更新能力。产品特色1.完善的数据管理功能OpenBASELite嵌入式数据库具有完善的数据管理功能,提供了对SQL92标准子集的支持;提供对标准数据类型以及BLOB/CLOB类型的支持;支持数据库完整性控制;具有完整的数据管理能力,可以处理GB级的数据量;并提供对空间数据的管理能力。2.广泛的平台通用性OpenBASELite嵌入式数据库可运行于Windows2000/2003/XP/Vista/Win7、WindowsMobile5&6、WindowsCE、Linux、EmbeddedLinux、VxW