随着嵌入式系统的广泛应用及嵌入式实时操作系统的不断普及,嵌入式环境下的数据管理问题成为系统中的重要环节,构建嵌入式实时数据库系统(RTDBS)成为嵌入式开发中必须解决的问题。这里所说的嵌入式RTDBS[1][2]是指可在嵌入式设备中独立运行的一种数据库系统,用以处理大量的、时效性强且有严格时序的数据,它以高可靠性、高实时性和高信息吞吐量为目标,其数据的正确性不仅依赖于逻辑结果,而且依赖于逻辑结果产生的时间。图1是一个嵌入式应用的基本构架,整个嵌入式RTDBS构建于实时操作系统之上。由于嵌入式实时数据库系统在运行环境和运行方式上与常见的企业级数据库管理系统有很大差别,因此,传统的企业数据库如Oracle、Sybase等在实时嵌入式环境下很难发挥作用,尤其在一些实时性要求很高的控制系统中,传统数据库更显得无能为力。因此,伴随着各种商用嵌入式实时操作系统的出现,研究嵌入式环境下的实时数据库系统成为嵌入式软件中的一项重要内容。
图1 嵌入式应用基本结构
嵌入式RTDBS内涵及其体系结构 &n
目前嵌入式系统开发中,在实时数据库问题上的多数看法是,嵌入式RTDBS从本质上说是一个“内存数据库”,是一个由应用程序管理的内存缓冲池,它在系统中的作用就是一个供多个实时任务共同使用的共享数据区。这种数据库实际上是一个嵌入在用户应用软件中的与应用程序不可分割的部分,其功能主要是数据的存和取,不具有独立性,不是一个真正意义上的数据库系统。一个完整的嵌入式实时数据库系统除了包括内存数据库外,还应当含有历史数据库和数据库管理系统DBMS及提供给用户的接口函数,整个数据库可由DBMS完成对数据库的具体配置及各种操作,例如系统运行前根据实际需要对内存数据库中的记录节点进行增减等配置操作。目前的嵌入式实时数据库系统可分为两大类,一类是商用级的嵌入式实时数据库系统,它独立于具体的应用软件,如美国McObject公司提供的eXtremeDB内存式实时数据库,这是一种专门为嵌入式系统数据库管理而编写的实时数据库,它将数据库直接建立在内存之中,并根据应用特征产生数据库API,用户可方便的调用这些接口函数管理整个数据库系统;另一类是用户针对具体的应用对象而自行设计开发的嵌入式实时数据库系统,这种数据库一般是嵌入到应用软件中作为应用程序的一部分,不具有独立性,目前测控系统中用户开发的实时数据库大都属于这种情况。
图2 嵌入式RTDBS系统结构
图2所示的是一个嵌入式实时数据库系统的体系结构,同传统的数据库一样,它仍然是一种三级模式的结构体系,即用户模式、逻辑模式和存储模式。在嵌入式环境下构建实时数据库系统,应该完成以下功能:高效的数据存取机制、数据安全性控制、实时事务管理机制、数据库的恢复机制等,设计中更关心的是系统的实时性、开销大小、系统性能、可靠性、可预知性和底层控制能力,即如何针对选用的实时OS和嵌入式硬件平台设计合理的数据模型和物理结构,重点放在如何高效的利用嵌入式系统的有限资源、如何提高数据的存取速度、如何进行数据保护、数据交换、查询/ 事务处理算法的优化、事务的优先级分派、事务调度和并发控制等等。
嵌入式RTDBS的数据模型
嵌入式实时数据库系统的关键是数据模型的确立,它决定了数据被访问和操作的方式,应用程序的性能和可靠性也大部分取决于此。目前嵌入式环境下的数据库系统多数采用了关系模型结构,这也是商用数据库系统的数据模型,该模型结构是利用二维关系表来实现数据存储,利用索引访问和查询数据,这种模型结构是建立在严格的数学基础上的,结构简单灵活,独立性好,但在嵌入式环境下的内存开销和数据冗余较大,用户必须对其进行优化,增加了开发数据库系统的难度;有些嵌入式数据库则采用了网状模型结构,该模型通过指针来确定数据间的显式连接关系,它比关系模型中利用冗余数据和索引文件要节约大量的存储空间,具有一定的数据独立性和共享特性,运行效率较高,而且由于它避免了索引操作,比关系型数据库模式要节省存储空间,数据操作速度也更快。但是这种模型结构比较复杂,尤其当嵌入式系统规模增大时,其数据库的结构变得非常庞大,可能会影响到系统的实时性能。图3所示的是在相同数目的记录下,关系模型和网状模型的系统开销比较,从图中可以看出,网状模型因为避免了索引操作使得其开销要小于关系模型。但是在实际应用中
图3 关系和网状模型开销比较
信息来源:中国嵌入式技术联盟