嵌入式应用开发中,也是有可能出现很多的数据要存储、加工、搜索。
但是又没有带数据库(因为资源的限制),其实数据库是个好东西,毕竟它可以做到与特定应用无关,
而文件,基本是与特定应用相关的,明显的某些文件只有特定的应用软件才能识别。
如果没有数据库的话,就要将文件结构的设计提上日程了。文件结构的选择或设计不可能做到通用,
它不想数据库,一般都是特定的应用采用特定的组织方式。
在嵌入式的环境下,要考虑设计得尽量简单,可靠,可调试,尽量高效,或许并没有大型应用环境下的可维护,可扩展性(面向对象的设计),毕竟很多电子产品只是昙花一现,没有必要提高它的开发成本,同时应用开发环境下的数据处理在容错方面都已经比较稳定(基础设施好),嵌入式方面还是不能比的。且业务逻辑方面,嵌入式还是比较单一。
数据如何管理为好?
(1)简单的方式(索引方式):基本文件和索引文件
一个数据结构(表示一张表)对应一个文件,并配置一个索引文件,索引文件当然也是对应一个数据结构,可以是基本文件的一个简化版(可以只提供应用需要的几个关键字段和位置信息)。数据的追加,在上层
可以给出一个文件的最新写的位置,数据的搜索考虑一定的缓存,也要提供缓存的替换策略。
(2)哈希方式:基本文件和哈希文件
采用"基本桶"和"溢出桶"的方式组织数据,对关键字进行映射。
优点: 数据可以随机存防,搜索方式很快
缺点:数据的"桶"和"溢出桶"不好存储,当然可以用其他方式来处理,当数据量很大时,效率和性能会很差
也就是数据在内存好存,不好在外存上进行数据的恢复
(3)多重关键字:基本数据表和多个索引表
可能会有一个基本表的数据要求有按多种关键字进行搜索的可能
可以在基本表中建立记录的多个不同类型的数据链表(文件的指针就是偏移量)来跟踪
它们,然后再建立若干的索引表,索引表的字段可包括: 某类型链表的头指针(偏移量)
字段个数,尾指针(便于数据的添加)
优点:对数据提供了很好的组合查询方式
也可以对数据链的长度进行比较,减少查找时间
数据的更新也是比较方便的
(4)处理复杂的多关键字组合查询
是对多重关键字的查询的变化,对类别相同的数据的多记录进行类似数组式的
并排存储,相当于是一个集合,能比较快地完成集合的交、并处理
(5)动态索引(B+树)
未完 .............
阅读(1172) | 评论(0) | 转发(1) |