嵌入式系统对数据库的特殊要求
考试要求: 掌握     
知识路径:  > 嵌入式系统软件基础知识  > 嵌入式软件基础知识  > 嵌入式支撑软件(嵌入式文件系统、嵌入式数据库、分布式对象系统、GUI等)  > 嵌入式数据库


 
       采用纯内存工作方式
       某些嵌入式设备的工作环境恶劣,对性能和实时性也有极高的要求,数据库完全在内存中进行数据处理,这样可以大大提高性能,更重要的是消除了I/O操作、缓存与磁盘间数据拷贝、客户-服务器之间消息传递等执行时间不确定的操作,使其能更好地满足实时性的要求。因此,嵌入式数据库的整个架构设计应当以内存为出发点,在索引、存储管理、数据结构等方面针对内存环境进行设计,不应将现有的磁盘数据库技术简单地迁移到内存盘上,或者仅仅将磁盘数据库的“内存缓存-磁盘”结构中的内存缓存扩大。这是因为磁盘数据库是基于磁盘的特性进行设计的,许多在磁盘上有效的优化策略实际上并不适应内存工作方式。
       为特殊数据类型提供高效索引
       嵌入式数据库通常管理一些较为特殊的数据类型,如坐标、地图数据等,对于该类数据类型的嵌入式数据库应提供相应的索引技术,以保证查询性能。
       例如数据库索引一般都是B树结构,B树适合于精确查找、范围查找以及前缀查找,但仅限于1维数据,对于特殊领域常用的2维以上数据(如GPS坐标)则力不从心。因此机载数据库应支持处理2维数据常用的R树索引,处理多维数据常用的KD树,以及一些其他类型的索引,如T树、Patricia trie树、哈希等。
       支持基于优先级的多任务访问
       嵌入式数据库的多任务访问应当基于任务优先级进行管理。因为在一些嵌入式系统中,某些活动应当具有更高优先级,例如导航任务应当比后台任务的优先级高,因此嵌入式数据库应当优先响应导航任务的数据处理请求。嵌入式数据库不应采用先进先出(FIFO)等简单的调度策略,而是需要配合操作系统任务优先级,否则数据库的多任务控制会抵消操作系统对访问数据库任务的优先级设置,影响系统的性能和稳定性。
       可靠性、持久性和高可用性方面
       (1)可靠性方面:嵌入式数据库的外部接口应当是类型安全的,不应使用void指针;消除数据库内部的动态内存分配,如malloc和free操作,从而避免潜在的内存泄露风险;提供错误处理机制,使得应用程序能够随时掌握数据库的运行情况,以便及时发现数据库运行的错误,并且在数据库出现错误后能够接管数据库,避免错误的传播。
       (2)持久性方面:数据库的持久性是指数据库能够从软件或硬件错误中恢复数据的能力。持久性对于以内存为主的嵌入式数据库尤为关键。
       (3)高可用性方面:嵌入式数据库的高可用性通过对主数据库建立一个或多个冗余的从数据库实现,主数据库与从数据库之间通过一定的方式保持着数据同步,一旦主数据库出现问题,无法服务,可以立刻切换到从数据库,并继续提供服务。
 

更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2025 All Rights Reserved
软考在线版权所有