随着微电子技术和存储技术的不断发展,嵌入式系统的内存和各种永久存储介质容量都在不断增加。这也就意味着嵌入式系统内数据处理量会不断增加,那么大量的数据如何处理问题变得非常现实。
1.嵌入式数据库产生及运用的必然性
嵌入式系统在现代人的生活中随处可见,其中软件的比例越来越大,软件开发的投入也越来越大。
随着微电子技术和存储技术的不断发展,嵌入式系统的内存和各种永久存储介质容量都在不断增加。这也就意味着嵌入式系统内数据处理量会不断增加,那么大量的数据如何处理问题变得非常现实。人们不得不将原本在企业级运用的复杂的数据库处理技术引入到嵌入式系统当中去,应用于嵌入式系统的数据库技术也就应运而生。
但是,事情总是比想象复杂。在嵌入式的世界,无论是通讯领域的嵌入式设备还是其它领域中,各种中间环节逐渐设备化,成为独立的相对封闭的系统,对外留有接口。设备中数据种类和处理方法有一定的共同规律也有自己的特殊规律。这使得嵌入式数据库不能像企业级数据库那样几乎是一个解决方案走遍天下,而是有着很大的差异性。同时,也为嵌入式数据库的合理运用带来了挑战,这是嵌入式数据库差异化的一个基本原因。
随着嵌入式系统的扩大,嵌入式产品的开发不再像过去那样几个人就可以完成整个系统的开发,需要更多的人组成团队进行合作。嵌入式软件的需求分析和品质管理也变得越来越复杂,开发周期也逐渐拉长。为了解决这些问题,引进第三方成熟的中间件或解决方案也变得非常现实。专业的嵌入式数据库厂商也逐渐进入了人们的视野。因为,运用成熟的嵌入式数据处理中间件可以降低开发成本、缩短开发周期,使开发者能够将更多的精力放在业务逻辑的处理上,而不用花大把的金钱和精力来处理数据,对整个社会的资源也是一种节约。
2.嵌入式数据库的基本特点
按照马克思的哲学理论,事物发展的进程可以用螺旋式上升来描述。嵌入式数据库和我们现在常见的企业级数据库的基本关系也是一个螺旋上升式的关系。虽然,从名字上看,二者有着太多的相似性,但却有着本质的根本性的区别。外在的形式的相似性,并不能代表二者的实现方式和运用方式的相似。恰恰相反,嵌入式数据库的实现和运用方式和企业级的数据库有着很大的区别。
在国外,嵌入式数据库已经发展了30多年,典型的代表是Empress嵌入式数据库。它的特点也基本代表了现阶段嵌入式实时数据库的基本特点。下面就介绍一下Empress嵌入式数据库所具有的区别于企业级数据库的几个主要特点。
嵌入性是嵌入式数据库的基本特性。嵌入式数据库不仅可以嵌入到其他的软件当中,也可以嵌入到硬件设备当中。Empress的方法之一就是使数据库以组件的形式存在,并发布给客户,客户只需要像调用自己定义的函数那样调用相应的函数就可以创建表、插入删除数据等常规的数据库操作。客户在自己的产品发布时,可以将Empress数据库编译到自己的产品内,变成自己产品的一部分,最终用户是感受不到数据库的存在的,也不用特意去维护数据库。
实时性和嵌入性是分不开的。只有具有了嵌入性的数据库才能够第一时间得到系统的资源,对系统的请求在第一时间内做出响应。但是,并不是具有嵌入性就一定具有实时性。要想嵌入式数据库具有很好的实时性,必须做很多额外的工作。比如:Empress实时数据库将嵌入性和高速的数据引擎、定时功能以及防断片处理等措施整合在一起来保证最基本的实时性。当然,不同的场合实时性要求比较高时,除了软件的实时性外,硬件的实时性也是必须的,具体情况需要有具体和切实的解决方案,不能一概而论。
移动性是目前在国内提的比较多的一个说法,这和目前国内移动设备的大规模应用有关。可以这么说,具有嵌入性的数据库一定具有比较好的移动性,但是具有比较好的移动性的数据库,不一定具有嵌入性。比如,一个小型的C/S结构的数据库也可以运用在移动设备上,而具有移动性。但这个数据库本身是一个独立存在的实体,需要额外的运行资源,本质上讲和企业级数据库区别不大。所以不具有嵌入性,也基本上不具备实时性。Empress是优秀的嵌入式实时数据库,毫无疑问也是非常优秀的移动数据库。
伸缩性在嵌入式场合显得尤为重要。首先嵌入式场合硬件和软件的平台都是千差万别,基本都是客户根据需要自己选择的结果。
所以嵌入式场合的数据库必须能够支持非常多的平台,如Empress目前支持6000多种平台。同时,数据存储要支持常见的存储设备,如CF/Flash/HD等。多进程和多线程是必备的,现在的嵌入式系统已经远远不是当初的简单的编程,代码量增大,功能日益复杂,所以必然要支持多线程和多进程。C/C++和SQL接口的支持也是必备的,作为数据库当然要有大家熟悉的SQL,但同时不要忘记嵌入式场合用的最多的标准的C/C++接口。某种程度上说,嵌入式场合的数据比企业级应用的数据还要复杂,所以要支持各种类型的数据,如多媒体数据和空间数据等,要支持各种数据结构,除了传统的关系型,还要能处理树状结构和网状结构。
当然,肯定要具备企业级数据库所具有的一些共性。比如,一致性是数据库所必需的特性。通过事务、锁功能和数据同步等多种技术保证数据库内的各个表内的数据的一致性,同时也保证数据库和其他同步或镜像数据库内数据的一致性。安全性也是必不可少的。在保证物理信息本身的安全的同时,也要保证用户私有信息的安全。