專利名稱:嵌入式系統(tǒng)的數(shù)據(jù)管理模塊的制作方法
嵌入式系統(tǒng)的數(shù)據(jù)管理模塊
技術(shù)領(lǐng)域:
本發(fā)明涉及一種嵌入式系統(tǒng),尤其涉及一種嵌入式系統(tǒng)的數(shù)據(jù)管理模塊。
背景技術(shù):
隨著信息化,智能化,網(wǎng)絡(luò)化的發(fā)展,嵌入式系統(tǒng)已經(jīng)深入到我們生活的各個方 面,其具備的功能越來越多,需要處理的數(shù)據(jù)也變得越發(fā)復(fù)雜。在大多數(shù)領(lǐng)域,由于受成本 制約和硬件平臺限制,不能運行高級的數(shù)據(jù)庫管理系統(tǒng),而又沒有適合的替代方案,因而使 很多的嵌入式系統(tǒng)在數(shù)據(jù)管理上還是采用低級的文件管理方式。
這種低級的文件管理方式存在如下缺點 1)功能接口不具備復(fù)用性,編程復(fù)雜,開發(fā)周期長且不便維護;
2)軟件模塊功能不易擴展;
3)數(shù)據(jù)統(tǒng)計分析困難; 4)數(shù)據(jù)管理的空間利用率,執(zhí)行效率難以保證。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題,在于提供一種嵌入式系統(tǒng)的數(shù)據(jù)管理模塊,該模塊能 在存儲容量小、內(nèi)存資源緊缺、總體運算速度不高、缺乏部署高級數(shù)據(jù)庫系統(tǒng)條件的平臺上 有效的進行數(shù)據(jù)管理。 本發(fā)明是這樣實現(xiàn)的一種嵌入式系統(tǒng)的數(shù)據(jù)管理模塊,包括一表結(jié)構(gòu)模塊用 于提供對數(shù)據(jù)表結(jié)構(gòu)信息的操作接口,該表結(jié)構(gòu)模塊由至少一個數(shù)據(jù)表組成;一數(shù)據(jù)模塊 用于提供對數(shù)據(jù)表記錄數(shù)據(jù)的操作接口 ;一索引模塊用于提供對數(shù)據(jù)表索引的操作接 口,該索引模塊由至少一個索引表組成;一數(shù)據(jù)比較模塊用于為索引字段排序比較提供 各種數(shù)據(jù)類型的比較接口 ;以及一用戶接口模塊用于提供對數(shù)據(jù)數(shù)據(jù)表基本操作接口 ; 其中,僅所述數(shù)據(jù)比較模塊和用戶接口模塊供外部應(yīng)用訪問。 所述表結(jié)構(gòu)模塊中的數(shù)據(jù)表包括一表結(jié)構(gòu)信息文件用于存儲版本,索引,記錄 大小,數(shù)據(jù)文件空間分配信息;一表記錄文件用于存儲實際的記錄數(shù)據(jù);以及至少一個表 索引文件用于按記錄中索引字段值的升降順序存儲數(shù)據(jù)記錄的位置;其中,一條字段索 引對應(yīng)一個索引文件。 所述數(shù)據(jù)模塊將記錄分配表分成多塊,如果某塊數(shù)據(jù)有被修改過,則設(shè)置一個寫 入標(biāo)識,否則不設(shè)置,保存記錄時,只保存有被修改過的塊,以有效的減少寫入的數(shù)據(jù)塊。
所述記錄分配表由已用鏈表頭指針,已用鏈表尾指針、空閑鏈表頭指針、空閑鏈表 尾指針和一張記錄分配表組成;所述已用鏈表頭指針指向記錄分配表中第一個已經(jīng)被分 配使用的記錄的下標(biāo)。所述已用鏈表尾指針則指向記錄分配表中最后一個已經(jīng)被分配使 用的記錄的下標(biāo)。所述空閑鏈表頭指針指向記錄分配表中第一個未被分配使用的記錄的 下標(biāo);所述空閑鏈表尾指針則指向記錄分配表中最后一個未被分配使用的記錄的下標(biāo); 所述記錄分配表中每個元素都存儲本鏈表下一個元素的下標(biāo),以形成兩張空間鏈表,數(shù)據(jù)表初始化時,將所有的空間都添加到該空間鏈表中的空閑鏈表中;添加記錄時,從空閑鏈表 中取出第一個空間,并將該空間添加到該空間鏈表中的已用鏈表末尾,刪除記錄時,則將刪 除的已用鏈表中要刪除的記錄,并將該記錄添加到刪除鏈表的末尾。 所述索引模塊的索引表包括索引順序和記錄位置,所述索引順序指明字段在數(shù)據(jù) 表中的排序順序;所述記錄位置對應(yīng)每條數(shù)據(jù)記錄的物理順序。 所述數(shù)據(jù)比較模塊允許用戶指定其排序方式,所述數(shù)據(jù)比較模塊以排序函數(shù)表的
方式實現(xiàn)了排序函數(shù)的動態(tài)選擇,在特殊情況下允許用戶增加自己的排序函數(shù)。 本發(fā)明具有如下優(yōu)點克服了舊有的文件型數(shù)據(jù)管理方式上的大部分缺點,本發(fā)
明的數(shù)據(jù)管理模塊能在存儲容量小、內(nèi)存資源緊缺、總體運算速度不高、缺乏部署高級數(shù)據(jù)
庫系統(tǒng)條件的平臺上有效的進行數(shù)據(jù)管理;且數(shù)據(jù)管理方式接近于數(shù)據(jù)庫方式,使其在復(fù)
用性,擴展性,易用性,高效性等方面達到了要求;其還具備良好的移植性,僅做少量代碼更
改便能適應(yīng)不同的操作系統(tǒng)和文件系統(tǒng)。
下面參照附圖結(jié)合實施例對本發(fā)明作進一步的說明。
圖1為本發(fā)明嵌入式系統(tǒng)的數(shù)據(jù)管理模塊的架構(gòu)框圖。
圖2A和圖2B為本發(fā)明中的記錄分配表的結(jié)構(gòu)原理圖。
圖3為本發(fā)明中的索引表和數(shù)據(jù)文件表的的映射關(guān)系圖。
具體實施方式
請參閱圖1所示,本發(fā)明是這樣實現(xiàn)的一種嵌入式系統(tǒng)的數(shù)據(jù)管理模塊,包括
—表結(jié)構(gòu)模塊用于提供對數(shù)據(jù)表結(jié)構(gòu)信息的操作接口,該表結(jié)構(gòu)模塊由至少一 個數(shù)據(jù)表組成; —數(shù)據(jù)模塊用于提供對數(shù)據(jù)表記錄數(shù)據(jù)的操作接口 ; —索引模塊用于提供對數(shù)據(jù)表索引的操作接口,該索引模塊由至少一個索引表 組成; —數(shù)據(jù)比較模塊用于為索引字段排序比較提供各種數(shù)據(jù)類型的比較接口 ;以及
—用戶接口模塊用于提供對數(shù)據(jù)數(shù)據(jù)表基本操作接口 ;
其中,僅所述數(shù)據(jù)比較模塊和用戶接口模塊供外部應(yīng)用訪問。
所述表結(jié)構(gòu)模塊中的數(shù)據(jù)表包括 —表結(jié)構(gòu)信息文件用于存儲版本,索引,記錄大小,數(shù)據(jù)文件空間分配信息;
—表記錄文件用于存儲實際的記錄數(shù)據(jù);以及 至少一個表索引文件用于按記錄中索引字段值的升降順序存儲數(shù)據(jù)記錄的位 置; 其中,一條字段索引對應(yīng)一個索引文件。 所述數(shù)據(jù)模塊將記錄分配表分成多塊,如分成N塊,每塊大小為M,如果某塊數(shù)據(jù) 有被修改過,則設(shè)置一個寫入標(biāo)識,否則不設(shè)置,保存記錄時,只保存有被修改過的塊,以有 效的減少寫入的數(shù)據(jù)塊。特別是在連續(xù)做大量增刪改的動作時,效率會更加明顯。數(shù)據(jù)管 理模塊目前主要應(yīng)用對象是YAFFS文件系統(tǒng),由于YAFFS文件系統(tǒng)的每個塊大小為512字節(jié),因此這里也將記錄分配表每個塊大小分為512字節(jié),共分配了 512個塊。按每個記錄分 配表元素大小為4字節(jié)來算,它可以表示65536 (512*512/4)個元素。這種對數(shù)據(jù)寫操作的 優(yōu)化策略也同樣應(yīng)用在了索引表上。 如圖2A和圖2B所示,所述記錄分配表由已用鏈表頭指針,已用鏈表尾指針、空閑 鏈表頭指針、空閑鏈表尾指針和一張記錄分配表組成; 所述已用鏈表頭指針指向記錄分配表中第一個已經(jīng)被分配使用的記錄的下標(biāo)。
所述已用鏈表尾指針則指向記錄分配表中最后一個已經(jīng)被分配使用的記錄的下 標(biāo)。
所述空閑鏈表頭指針指向記錄分配表中第一個未被分配使用的記錄的下標(biāo);
所述空閑鏈表尾指針則指向記錄分配表中最后一個未被分配使用的記錄的下 標(biāo); 所述記錄分配表中每個元素都存儲本鏈表下一個元素的下標(biāo),以形成兩張空間鏈 表,數(shù)據(jù)表初始化時,將所有的空間都添加到該空間鏈表中的空閑鏈表中;添加記錄時,從 空閑鏈表中取出第一個空間,并將該空間添加到該空間鏈表中的已用鏈表末尾,刪除記錄 時,則將刪除的已用鏈表中要刪除的記錄,并將該記錄添加到刪除鏈表的末尾。如此一來, 對于已用鏈表來說,第一條記錄就是最早添加的記錄,而最后一條記錄也就是最后添加的 記錄。也就是已用表空間的鏈表順序也就是記錄添加的先后順序。 如圖3所示,所述索引模塊的索引表包括索引順序和記錄位置,所述索引順序指 明字段在數(shù)據(jù)表中的排序順序;所述記錄位置對應(yīng)每條數(shù)據(jù)記錄的物理順序。圖3的左 邊為索引表,右邊為數(shù)據(jù)文件表,索引的管理主要包括以下幾部份索引文件的創(chuàng)建和初 始化;索引文件的打開,關(guān)閉,保存;索引表的添,刪,改,查;記錄索引與記錄物理位置的轉(zhuǎn)換。 所述數(shù)據(jù)比較模塊允許用戶指定其排序方式,所述數(shù)據(jù)比較模塊以排序函數(shù)表的
方式實現(xiàn)了排序函數(shù)的動態(tài)選擇,在特殊情況下允許用戶增加自己的排序函數(shù)。 綜上所述,本發(fā)明的數(shù)據(jù)管理模塊的數(shù)據(jù)管理方式接近于數(shù)據(jù)庫方式,使其在復(fù)
用性,擴展性,易用性,高效性等方面達到了要求;其還具備良好的移植性,僅做少量代碼更
改便能適應(yīng)不同的操作系統(tǒng)和文件系統(tǒng);本發(fā)明能在存儲容量小、內(nèi)存資源緊缺、總體運算
速度不高、缺乏部署高級數(shù)據(jù)庫系統(tǒng)條件的平臺上有效的進行數(shù)據(jù)管理。
權(quán)利要求
一種嵌入式系統(tǒng)的數(shù)據(jù)管理模塊,其特征在于包括一表結(jié)構(gòu)模塊用于提供對數(shù)據(jù)表結(jié)構(gòu)信息的操作接口,該表結(jié)構(gòu)模塊由至少一個數(shù)據(jù)表組成;一數(shù)據(jù)模塊用于提供對數(shù)據(jù)表記錄數(shù)據(jù)的操作接口;一索引模塊用于提供對數(shù)據(jù)表索引的操作接口,該索引模塊由至少一個索引表組成;一數(shù)據(jù)比較模塊用于為索引字段排序比較提供各種數(shù)據(jù)類型的比較接口;以及一用戶接口模塊用于提供對數(shù)據(jù)數(shù)據(jù)表基本操作接口;其中,僅所述數(shù)據(jù)比較模塊和用戶接口模塊供外部應(yīng)用訪問。
2. 根據(jù)權(quán)利要求1所述的嵌入式系統(tǒng)的數(shù)據(jù)管理模塊,其特征在于所述表結(jié)構(gòu)模塊 中的數(shù)據(jù)表包括一表結(jié)構(gòu)信息文件用于存儲版本,索引,記錄大小,數(shù)據(jù)文件空間分配信息; 一表記錄文件用于存儲實際的記錄數(shù)據(jù);以及至少一個表索引文件用于按記錄中索引字段值的升降順序存儲數(shù)據(jù)記錄的位置; 其中,一條字段索引對應(yīng)一個索引文件。
3. 根據(jù)權(quán)利要求1所述的嵌入式系統(tǒng)的數(shù)據(jù)管理模塊,其特征在于所述數(shù)據(jù)模塊將 記錄分配表分成多塊,如果某塊數(shù)據(jù)有被修改過,則設(shè)置一個寫入標(biāo)識,否則不設(shè)置,保存 記錄時,只保存有被修改過的塊,以有效的減少寫入的數(shù)據(jù)塊。
4. 根據(jù)權(quán)利要求3所述的嵌入式系統(tǒng)的數(shù)據(jù)管理模塊,其特征在于所述記錄分配表 由己用鏈表頭指針,己用鏈表尾指針、空閑鏈表頭指針、空閑鏈表尾指針和一張記錄分配表 組成;所述己用鏈表頭指針指向記錄分配表中第一個已經(jīng)被分配使用的記錄的下標(biāo); 所述己用鏈表尾指針則指向記錄分配表中最后一個已經(jīng)被分配使用的記錄的下標(biāo); 所述空閑鏈表頭指針指向記錄分配表中第一個未被分配使用的記錄的下標(biāo); 所述空閑鏈表尾指針則指向記錄分配表中最后一個未被分配使用的記錄的下標(biāo); 所述記錄分配表中每個元素都存儲本鏈表下一個元素的下標(biāo),以形成兩張空間鏈表, 數(shù)據(jù)表初始化時,將所有的空間都添加到該空間鏈表中的空閑鏈表中;添加記錄時,從空閑 鏈表中取出第一個空間,并將該空間添加到該空間鏈表中的己用鏈表末尾,刪除記錄時,則 將刪除的己用鏈表中要刪除的記錄,并將該記錄添加到刪除鏈表的末尾。
5. 根據(jù)權(quán)利要求1所述的嵌入式系統(tǒng)的數(shù)據(jù)管理模塊,其特征在于所述索引模塊的 索引表包括索引順序和記錄位置,所述索引順序指明字段在數(shù)據(jù)表中的排序順序;所述記 錄位置對應(yīng)每條數(shù)據(jù)記錄的物理順序。
6. 根據(jù)權(quán)利要求1所述的嵌入式系統(tǒng)的數(shù)據(jù)管理模塊,其特征在于所述數(shù)據(jù)比較模 塊允許用戶指定其排序方式,所述數(shù)據(jù)比較模塊以排序函數(shù)表的方式實現(xiàn)了排序函數(shù)的動 態(tài)選擇,在特殊情況下允許用戶增加自己的排序函數(shù)。
全文摘要
本發(fā)明提供一種嵌入式系統(tǒng)的數(shù)據(jù)管理模塊,包括一表結(jié)構(gòu)模塊用于提供對數(shù)據(jù)表結(jié)構(gòu)信息的操作接口,該表結(jié)構(gòu)模塊由至少一個數(shù)據(jù)表組成;一數(shù)據(jù)模塊用于提供對數(shù)據(jù)表記錄數(shù)據(jù)的操作接口;一索引模塊用于提供對數(shù)據(jù)表索引的操作接口,該索引模塊由至少一個索引表組成;一數(shù)據(jù)比較模塊用于為索引字段排序比較提供各種數(shù)據(jù)類型的比較接口;以及一用戶接口模塊用于提供對數(shù)據(jù)數(shù)據(jù)表基本操作接口;其中,僅所述數(shù)據(jù)比較模塊和用戶接口模塊供外部應(yīng)用訪問。該模塊能在存儲容量小、內(nèi)存資源緊缺、總體運算速度不高、缺乏部署高級數(shù)據(jù)庫系統(tǒng)條件的平臺上有效的進行數(shù)據(jù)管理。
文檔編號G06F17/30GK101702162SQ20091011280
公開日2010年5月5日 申請日期2009年11月19日 優(yōu)先權(quán)日2009年11月19日
發(fā)明者鮑協(xié)林 申請人:福建鑫諾通訊技術(shù)有限公司