随着数据存储的快速发展,数据库应用的范围更加深入和具体。那些仅适用于PC机、体积庞大、延时较长的数据库技术已不能满足针对性较强的嵌入式系统开发的需求。而且随着嵌入式系统的内存和各种永久存储介质容量都在不断增加,嵌入式系统内数据处理量会不断增加,那么大量的数据如何处理问题变得非常现实。一种全新的数据库产品——嵌入式数据库系统应运而生。
嵌入式数据库系统
实时性是嵌入式系统的一个重要特性,一些专家将嵌入式系统称为嵌入式实时系统。在该系统中,对数据库的操作具有定时限制的特性,这里把应用于嵌入式系统的数据库系统称为嵌入式数据库系统或嵌入式实时数据库系统(ERTDBS)。嵌入式数据库的名称来自其独特的运行模式。这种数据库嵌入到了应用程序进程中,消除了与客户机、服务器配置相关的开销。嵌入式数据库是嵌入式系统的重要组成部分,也成为对越来越多的个性化应用开发和管理而采用的一种必不可少的有效手段。
嵌入式实时数据库管理系统是近几年才兴起的一项新的数据管理技术。它以目前成熟的数据库技术为基础,针对嵌入式设备的具体特点,实现对移动设备和嵌入式设备上的数据存储、组织和管理。传统的数据库通常运行在大型的计算设备上,随着计算设备的日益小型化,数据库的小型化也日益迫切。
嵌入式数据库在国外发展已有30多年的历史,在国内最近几年才有了重视。在国内外市场上近几年比较活跃并且越来越受到广泛重视和应用的是商用级嵌入式实时数据库系统。
嵌入式实时数据库基本特性
首先看看实时数据的特性:1)变化快;2)突发性强;3)数据间关联性强,结构化。
实时数据管理对常规数据库的挑战:1)常规数据库基于文件系统,速度慢;2)文件I/O、Buffer、Cache机制还引入文件操作不确定性;3)这些数据库通常都是基于C/S架构,导致进程通信不确定性;4)尺寸通常不适应嵌入式系统应用的需求。图1表明了常规数据库中数据使用的历程。
嵌入式实时数据库的基本特性如下。
1. 嵌入性。嵌入式数据库不仅可以嵌入到其他的软件当中,也可以嵌入到硬件设备当中。由于嵌入式系统自身的特点,对数据的存储和程序的运行都有较强的空间限制,所以嵌入式数据库首先应该保证适当的体积。并且由于 API 是根据用户数据特征产生的,调用这些API就可以使用嵌入式数据库管理实时数据,因此,嵌入式数据库可以天然地与用户程序集成在一起。图2所示实时数据管理结构。
2.实时性。嵌入式系统通常是紧凑系统,即小系统。对于大量实时数据需要管理,实时性和嵌入性是分不开的。只有具有了嵌入性的数据库才能第一时间得到系统的资源,对系统的请求在第一时间内做出响应。但是,并不是具有嵌入性就一定具有实时性。要想嵌入式数据库具有很好的实时性,必须做很多额外的工作。
如McObject公司的eXtremeDB 首先是一个实时数据库,而后才是嵌入式数据库。由于实时数据管理对时间空间效率的要求非常高,完成同样工作的资源要求更少。因此,在资源紧凑型系统中, 其优点就显示出来了。所以, eXtremeDB 开销较小并与应用程序天然集成实现嵌入,这并不意味着 eXtremeDB 只能管理小系统中的数据。数据库是嵌入式的,但并不要求应用系统是嵌入式的。应用系统可以是嵌入式系统如手机、家庭网关、机顶盒、数字电视等,也可以是桌面系统或服务器系统如核心路由器、呼叫中心、金融交易系统等。
3.嵌入式实时数据库系统通常作为嵌入式系统的应用软件出现,系统常常在无人干预的情况下运行,需要具备较高的可靠性。同时要求数据库操作具备可预知性,而且系统的大小和性能也都必须是可预知的,这样才能保证系统的性能。
4.从目前嵌入式应用的发展趋势来看,嵌入式数据库的实现必须充分体现系统的可定制性,即系统选择的技术路线要面向具体的行业应用。
5. 跨平台的实时数据管理方案。首先嵌入式场合硬件和软件的平台是千差万别。所以嵌入式场合的数据库必须能够支持非常多的平台,嵌入式系统的平台种类繁多,因此嵌入式数据库应有一定的可移植性,以适用于不同的软硬件平台。
最后,嵌入式数据库和我们现在常见的企业级数据库有很大的区别。虽然,从名字上看,二者有着太多的相似性,但却有着本质的根本性的区别。由于嵌入式实时数据库系统在运行环境和运行方式上与常见的企业级数据库管理系统有很大差别,因此,传统的企业数据库如Oracle、Sybase等在实时嵌入式环境下很难发挥作用,尤其在一些实时性要求很高的控制系统中,传统数据库更显得无能为力。