嵌入式数据库课程报告
一.常用的嵌入式数据库的比较
1.1
Progress
Progress软件公司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.2
SQLite
轻量级别数据库SQLite的主要特点:
1.
支持事件,不需要配置,不需要安装,也不需要管理员;
2.
支持大部分SQL92;
3.
一个完整的数据库保存在磁盘上面一个文件,同一个数据库文件可以在不同机器上面使
用,最大支持数据库到2T,字符和BLOB的支持仅限制于可用内存;
4.
整个系统少于3万行代码,少于250KB的内存占用(gcc),大部分应用比目前常见的客户端/服务端的数据库快,没有其它依赖
5.
源代码开放,代码95%有较好的注释,简单易用的API。官方带有TCL的编译版本。
1.3
Empress(商业数据库)
开发阶段特点:
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.4
eXtremeDB
eXtremeDB特点:
1.
内存数据库,eXtremeDB将数据以程序直接使用的格式保存在主内存之中,不仅剔除了文件I/O的开销,也剔除了文件系统数据库所需的缓冲和Cache机制。其结果是每个交易一微秒甚至更少的极限速度,相比于类磁盘数据库而言,速度成百上千倍地提高。作为内存数据库,eXtremeDB不仅性能高,而且数据存储的效率也非常高。为了提高性能并方便程序使用,数据在eXtremeDB中不做任何压缩,100M的空间可以保存高达70M以上的有效数据,这是其他数据库所不可想象的。
2.
混合数据库,eXtremeDB不仅可以建立完全运行在主内存的内存数据库,更可以建立磁盘/内存混合介质的数据库。在eXtremeDB,我们把这种建立在磁盘、内存或磁盘+内存的运行模式称为eXtremeDB
Fusion融合数据库。eXtremeDB
Fusion兼顾数据管理的实时性与安全性要求,是实时数据管理的台阶性进步。
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.5
Firebird嵌入服务器版
Firebird嵌入服务器版(Embedded
Server),从Interbase开源衍生出的Firebird,充满了勃勃生机。虽然它的体积比前辈Interbase缩小了几十倍,但功能并无阉割。为了体现Firebird短小精悍的特色,开发小组在增加了超级服务器版本之后,又增加了嵌入版本,最新版本为2.0。
Firebird的嵌入版有如下特色:
1、数据库文件与Firebird网络版本完全兼容,差别仅在于连接方式不同,可以实现零成本迁移。
2、数据库文件仅受操作系统的限制,且支持将一个数据库分割成不同文件,突破了操作系统最大文件的限制,提高了IO吞吐量。
3、完全支持SQL92标准,支持大部分SQL-99标准功能。
4、丰富的开发工具支持,绝大部分基于Interbase的组件,可以直接使用于Firebird。
5、支持事务、存储过程、触发器等关系数据库的所有特性。
6、可自己编写扩展函数(UDF)。
1.6
mSQL介绍
mSQL(mini
SQL)是一个单用户数据库管理系统,个人使用免费,商业使用收费。由于它的短小精悍,使其开发的应用系统特别受到互联网用户青睐。mSQL(mini
SQL)是一种小型的关系数据库,性能不是太好,对SQL语言的支持也不够完全,但在一些网络数据库应用中是足够了。由于mSQL较简单,在运行简单的SQL语句时速度比MySQL略快,而MySQL在线程和索引上下了功夫,运行复杂的SQL语句时比mSQL,PostgreSQL等都要快一些。最新版本是2005年5月8日发布的3.7.MSQL的标志是一个鹿,见下图。
图1mSQL
LOGO标志
mSQL的技术特点:安全性方面,mSQL通过ACL文件设定各主机上各用户的访问权限,缺省是
全部可读/写。mSQL缺乏
ANSI
SQL
的大多数特征,它仅仅实现了一个最最少的API,没有事务和参考完整性。mSQL与Lite(一种类似C的脚本语言,与分发一起发行)紧密结合,可以得到一个称为
W3-mSQL的一个网站集成包,它是JDBC、ODBC、Perl和PHP
API.
二.SQLite数据库实验
2.1学习资源
sqlite中文网站:编程介绍、开源论坛
sqlite官方网站:源码下载、Getting
Started、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.gz
tar
zxvf
sqlite-amalgamation-3.5.9.tar.gz
进入sqlite目录:
cd
sqlite-amalgamation-3.5.9
配置
:./configure
编译
make
安装make
install
主要安装了如下文件:
/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提供的功能。
三.国产嵌入式数据库OpenBASELite
OpenBASE
Lite是东软集团股份有限公司开发的嵌入式数据库产品。它是一个典型的轻量级数据库,定制的数据库引擎大小在250KB到600KB之间伸缩,可支持多种桌面操作系统、主流嵌入式系统平台及不同的处理器。作为一款功能全面的关系型数据库系统,OpenBASE
Lite支持标准的SQL语法、ACID事务特性、备份/恢复等功能,提供了标准化开发接口JDBC、ODBC,能够在嵌入式环境下沿用关系数据库的经验继续来进行应用的开发。OpenBASE
Lite提供了内存数据库运行模式,提供高速的数据访问与更新能力。
产品特色
1.完善的数据管理功能
OpenBASE
Lite嵌入式数据库具有完善的数据管理功能,提供了对SQL92标准子集的支持;提供对标准数据类型以及BLOB/CLOB类型的支持;支持数据库完整性控制;具有完整的数据管理能力,可以处理GB级的数据量;并提供对空间数据的管理能力。
2.广泛的平台通用性
OpenBASE
Lite嵌入式数据库可运行于Windows
2000/2003/XP/Vista/Win
7、Windows
Mobile
5&6、Windows
CE、Linux、Embedded
Linux、VxWorks、Symbian、Android等多种操作系统平台。
3.微小的核心内核
OpenBASE
Lite嵌入式数据库具有微内核特性,可根据需求定制和裁剪,内核大小在250KB~600KB之间伸缩。
4.真正的零管理
在OpenBASE
Lite嵌入式数据库的使用过程中无需对数据库进行配置,在移动终端应用中实现了“零管理”。
5.出色的处理性能
OpenBASE
Lite嵌入式数据库可以作为内存数据库进行使用,实现了高速的数据访问与更新,单条数据处理时间不超过15us;在并发处理性能上,提供库级锁与表级锁并发访问控制,提高了进程与多线程对数据库并发访问处理性能。
6.充分的安全保障
OpenBASE
Lite嵌入式数据库支持用户身份认证以及数据库对象的自主访问控制,可以有效防止用户数据的非法访问;支持128-bit
AES存储加密,以保证数据库文件的安全性。
7.快速的故障恢复
提供了日志和故障恢复机制有效地保障了事务的ACID特性,另外还提供了数据库的联机热备与主从复制功能,使用户可以简单快速地提高应用系统的可靠性。
8.标准的访问接口
OpenBASE
Lite嵌入式数据库为嵌入式应用的开发提供了C
API接口以及JDBC/ODBC标准访问接口。
9.丰富的实用工具
OpenBASE
Lite提供了丰富的实用工具进行数据库管理,包括数据库图形管理工具、建库工具、查询工具、备份恢复工具、导入导出工具及数据库加解密工具等。
参考文献:
[1]李安渝,林立杰等,“嵌入式移动数据库:从研究走向应用”。
[2]张孝,王珊,杜小勇,“嵌入式数据库”。
[3]候德恒,贾伟峰,“嵌入式数据库研究”。