专利名称:嵌入式系统的数据管理模块的制作方法
嵌入式系统的数据管理模块
技术领域:
本发明涉及一种嵌入式系统,尤其涉及一种嵌入式系统的数据管理模块。
背景技术:
随着信息化,智能化,网络化的发展,嵌入式系统已经深入到我们生活的各个方 面,其具备的功能越来越多,需要处理的数据也变得越发复杂。在大多数领域,由于受成本 制约和硬件平台限制,不能运行高级的数据库管理系统,而又没有适合的替代方案,因而使 很多的嵌入式系统在数据管理上还是采用低级的文件管理方式。
这种低级的文件管理方式存在如下缺点 1)功能接口不具备复用性,编程复杂,开发周期长且不便维护;
2)软件模块功能不易扩展;
3)数据统计分析困难; 4)数据管理的空间利用率,执行效率难以保证。
发明内容
本发明要解决的技术问题,在于提供一种嵌入式系统的数据管理模块,该模块能 在存储容量小、内存资源紧缺、总体运算速度不高、缺乏部署高级数据库系统条件的平台上 有效的进行数据管理。 本发明是这样实现的一种嵌入式系统的数据管理模块,包括一表结构模块用 于提供对数据表结构信息的操作接口,该表结构模块由至少一个数据表组成;一数据模块 用于提供对数据表记录数据的操作接口 ;一索引模块用于提供对数据表索引的操作接 口,该索引模块由至少一个索引表组成;一数据比较模块用于为索引字段排序比较提供 各种数据类型的比较接口 ;以及一用户接口模块用于提供对数据数据表基本操作接口 ; 其中,仅所述数据比较模块和用户接口模块供外部应用访问。 所述表结构模块中的数据表包括一表结构信息文件用于存储版本,索引,记录 大小,数据文件空间分配信息;一表记录文件用于存储实际的记录数据;以及至少一个表 索引文件用于按记录中索引字段值的升降顺序存储数据记录的位置;其中,一条字段索 引对应一个索引文件。 所述数据模块将记录分配表分成多块,如果某块数据有被修改过,则设置一个写 入标识,否则不设置,保存记录时,只保存有被修改过的块,以有效的减少写入的数据块。
所述记录分配表由已用链表头指针,已用链表尾指针、空闲链表头指针、空闲链表 尾指针和一张记录分配表组成;所述已用链表头指针指向记录分配表中第一个已经被分 配使用的记录的下标。所述已用链表尾指针则指向记录分配表中最后一个已经被分配使 用的记录的下标。所述空闲链表头指针指向记录分配表中第一个未被分配使用的记录的 下标;所述空闲链表尾指针则指向记录分配表中最后一个未被分配使用的记录的下标; 所述记录分配表中每个元素都存储本链表下一个元素的下标,以形成两张空间链表,数据表初始化时,将所有的空间都添加到该空间链表中的空闲链表中;添加记录时,从空闲链表 中取出第一个空间,并将该空间添加到该空间链表中的已用链表末尾,删除记录时,则将删 除的已用链表中要删除的记录,并将该记录添加到删除链表的末尾。 所述索引模块的索引表包括索引顺序和记录位置,所述索引顺序指明字段在数据 表中的排序顺序;所述记录位置对应每条数据记录的物理顺序。 所述数据比较模块允许用户指定其排序方式,所述数据比较模块以排序函数表的
方式实现了排序函数的动态选择,在特殊情况下允许用户增加自己的排序函数。 本发明具有如下优点克服了旧有的文件型数据管理方式上的大部分缺点,本发
明的数据管理模块能在存储容量小、内存资源紧缺、总体运算速度不高、缺乏部署高级数据
库系统条件的平台上有效的进行数据管理;且数据管理方式接近于数据库方式,使其在复
用性,扩展性,易用性,高效性等方面达到了要求;其还具备良好的移植性,仅做少量代码更
改便能适应不同的操作系统和文件系统。
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明嵌入式系统的数据管理模块的架构框图。
图2A和图2B为本发明中的记录分配表的结构原理图。
图3为本发明中的索引表和数据文件表的的映射关系图。
具体实施方式
请参阅图1所示,本发明是这样实现的一种嵌入式系统的数据管理模块,包括
—表结构模块用于提供对数据表结构信息的操作接口,该表结构模块由至少一 个数据表组成; —数据模块用于提供对数据表记录数据的操作接口 ; —索引模块用于提供对数据表索引的操作接口,该索引模块由至少一个索引表 组成; —数据比较模块用于为索引字段排序比较提供各种数据类型的比较接口 ;以及
—用户接口模块用于提供对数据数据表基本操作接口 ;
其中,仅所述数据比较模块和用户接口模块供外部应用访问。
所述表结构模块中的数据表包括 —表结构信息文件用于存储版本,索引,记录大小,数据文件空间分配信息;
—表记录文件用于存储实际的记录数据;以及 至少一个表索引文件用于按记录中索引字段值的升降顺序存储数据记录的位 置; 其中,一条字段索引对应一个索引文件。 所述数据模块将记录分配表分成多块,如分成N块,每块大小为M,如果某块数据 有被修改过,则设置一个写入标识,否则不设置,保存记录时,只保存有被修改过的块,以有 效的减少写入的数据块。特别是在连续做大量增删改的动作时,效率会更加明显。数据管 理模块目前主要应用对象是YAFFS文件系统,由于YAFFS文件系统的每个块大小为512字节,因此这里也将记录分配表每个块大小分为512字节,共分配了 512个块。按每个记录分 配表元素大小为4字节来算,它可以表示65536 (512*512/4)个元素。这种对数据写操作的 优化策略也同样应用在了索引表上。 如图2A和图2B所示,所述记录分配表由已用链表头指针,已用链表尾指针、空闲 链表头指针、空闲链表尾指针和一张记录分配表组成; 所述已用链表头指针指向记录分配表中第一个已经被分配使用的记录的下标。
所述已用链表尾指针则指向记录分配表中最后一个已经被分配使用的记录的下 标。
所述空闲链表头指针指向记录分配表中第一个未被分配使用的记录的下标;
所述空闲链表尾指针则指向记录分配表中最后一个未被分配使用的记录的下 标; 所述记录分配表中每个元素都存储本链表下一个元素的下标,以形成两张空间链 表,数据表初始化时,将所有的空间都添加到该空间链表中的空闲链表中;添加记录时,从 空闲链表中取出第一个空间,并将该空间添加到该空间链表中的已用链表末尾,删除记录 时,则将删除的已用链表中要删除的记录,并将该记录添加到删除链表的末尾。如此一来, 对于已用链表来说,第一条记录就是最早添加的记录,而最后一条记录也就是最后添加的 记录。也就是已用表空间的链表顺序也就是记录添加的先后顺序。 如图3所示,所述索引模块的索引表包括索引顺序和记录位置,所述索引顺序指 明字段在数据表中的排序顺序;所述记录位置对应每条数据记录的物理顺序。图3的左 边为索引表,右边为数据文件表,索引的管理主要包括以下几部份索引文件的创建和初 始化;索引文件的打开,关闭,保存;索引表的添,删,改,查;记录索引与记录物理位置的转换。 所述数据比较模块允许用户指定其排序方式,所述数据比较模块以排序函数表的
方式实现了排序函数的动态选择,在特殊情况下允许用户增加自己的排序函数。 综上所述,本发明的数据管理模块的数据管理方式接近于数据库方式,使其在复
用性,扩展性,易用性,高效性等方面达到了要求;其还具备良好的移植性,仅做少量代码更
改便能适应不同的操作系统和文件系统;本发明能在存储容量小、内存资源紧缺、总体运算
速度不高、缺乏部署高级数据库系统条件的平台上有效的进行数据管理。
权利要求
一种嵌入式系统的数据管理模块,其特征在于包括一表结构模块用于提供对数据表结构信息的操作接口,该表结构模块由至少一个数据表组成;一数据模块用于提供对数据表记录数据的操作接口;一索引模块用于提供对数据表索引的操作接口,该索引模块由至少一个索引表组成;一数据比较模块用于为索引字段排序比较提供各种数据类型的比较接口;以及一用户接口模块用于提供对数据数据表基本操作接口;其中,仅所述数据比较模块和用户接口模块供外部应用访问。
2. 根据权利要求1所述的嵌入式系统的数据管理模块,其特征在于所述表结构模块 中的数据表包括一表结构信息文件用于存储版本,索引,记录大小,数据文件空间分配信息; 一表记录文件用于存储实际的记录数据;以及至少一个表索引文件用于按记录中索引字段值的升降顺序存储数据记录的位置; 其中,一条字段索引对应一个索引文件。
3. 根据权利要求1所述的嵌入式系统的数据管理模块,其特征在于所述数据模块将 记录分配表分成多块,如果某块数据有被修改过,则设置一个写入标识,否则不设置,保存 记录时,只保存有被修改过的块,以有效的减少写入的数据块。
4. 根据权利要求3所述的嵌入式系统的数据管理模块,其特征在于所述记录分配表 由己用链表头指针,己用链表尾指针、空闲链表头指针、空闲链表尾指针和一张记录分配表 组成;所述己用链表头指针指向记录分配表中第一个已经被分配使用的记录的下标; 所述己用链表尾指针则指向记录分配表中最后一个已经被分配使用的记录的下标; 所述空闲链表头指针指向记录分配表中第一个未被分配使用的记录的下标; 所述空闲链表尾指针则指向记录分配表中最后一个未被分配使用的记录的下标; 所述记录分配表中每个元素都存储本链表下一个元素的下标,以形成两张空间链表, 数据表初始化时,将所有的空间都添加到该空间链表中的空闲链表中;添加记录时,从空闲 链表中取出第一个空间,并将该空间添加到该空间链表中的己用链表末尾,删除记录时,则 将删除的己用链表中要删除的记录,并将该记录添加到删除链表的末尾。
5. 根据权利要求1所述的嵌入式系统的数据管理模块,其特征在于所述索引模块的 索引表包括索引顺序和记录位置,所述索引顺序指明字段在数据表中的排序顺序;所述记 录位置对应每条数据记录的物理顺序。
6. 根据权利要求1所述的嵌入式系统的数据管理模块,其特征在于所述数据比较模 块允许用户指定其排序方式,所述数据比较模块以排序函数表的方式实现了排序函数的动 态选择,在特殊情况下允许用户增加自己的排序函数。
全文摘要
本发明提供一种嵌入式系统的数据管理模块,包括一表结构模块用于提供对数据表结构信息的操作接口,该表结构模块由至少一个数据表组成;一数据模块用于提供对数据表记录数据的操作接口;一索引模块用于提供对数据表索引的操作接口,该索引模块由至少一个索引表组成;一数据比较模块用于为索引字段排序比较提供各种数据类型的比较接口;以及一用户接口模块用于提供对数据数据表基本操作接口;其中,仅所述数据比较模块和用户接口模块供外部应用访问。该模块能在存储容量小、内存资源紧缺、总体运算速度不高、缺乏部署高级数据库系统条件的平台上有效的进行数据管理。
文档编号G06F17/30GK101702162SQ20091011280
公开日2010年5月5日 申请日期2009年11月19日 优先权日2009年11月19日
发明者鲍协林 申请人:福建鑫诺通讯技术有限公司