專利名稱:一種嵌入式系統(tǒng)的數(shù)據(jù)存放及其查找方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種嵌入式系統(tǒng)的數(shù)據(jù)處理技術(shù),特別涉及一種嵌入式系統(tǒng)的數(shù)據(jù)存放及其查找方法。
背景技術(shù):
目前,很多嵌入式系統(tǒng)引入了嵌入式數(shù)據(jù)庫。嵌入式數(shù)據(jù)庫對嵌入式產(chǎn)品有著十分重要的意義,其能夠滿足嵌入式系統(tǒng)對數(shù)據(jù)處理和數(shù)據(jù)交換等要求,它和嵌入式操作系統(tǒng)有機(jī)地結(jié)合在一起,為應(yīng)用開發(fā)人員提供有效的數(shù)據(jù)管理手段,同時提供各種定制條件和方法。
數(shù)據(jù)的存儲與索引是嵌入式數(shù)據(jù)庫的核心技術(shù),也是決定數(shù)據(jù)庫存儲效率的關(guān)鍵技術(shù),一個快速、靈活、高效的數(shù)據(jù)存儲和索引方法是數(shù)據(jù)庫研發(fā)中最為基本又最為重要的環(huán)節(jié)之一,其質(zhì)量的優(yōu)劣直接決定了數(shù)據(jù)的存取速度和查詢速度等主要技術(shù)指標(biāo);同時,存儲與索引兩者之間又是互相依賴的,通過一對匹配的索引和存儲技術(shù)間共同協(xié)調(diào)工作,才能有效地完成數(shù)據(jù)的存儲與查詢。嵌入式數(shù)據(jù)庫中的數(shù)據(jù)一般都采用二進(jìn)制進(jìn)行存儲,這樣保證了嵌入式數(shù)據(jù)庫的平臺無關(guān)性,同時有利于提高查找速度。
現(xiàn)有大型數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)庫存儲和索引技術(shù),如IBM的DB2,Microsoft的SQL Server等,采用復(fù)雜的多級索引和動態(tài)散列結(jié)構(gòu)對數(shù)據(jù)進(jìn)行處理,并采用并行分布式系統(tǒng)對數(shù)據(jù)資料進(jìn)行管理,可在很大程度上提高數(shù)據(jù)的存取速度和效率,但必須建立在高速系統(tǒng)、大容量硬盤、內(nèi)存及高速的并行機(jī)制基礎(chǔ)上,受這些條件的限制,顯然不能將這些成熟的數(shù)據(jù)存放與索引技術(shù)平滑地移植到象嵌入式這樣的低性能、單一節(jié)點的設(shè)備所使用的數(shù)據(jù)庫中。
現(xiàn)有的嵌入式設(shè)備由于自身特點的不同對嵌入式數(shù)據(jù)庫進(jìn)行數(shù)據(jù)處理的要求也有所不同有的嵌入式設(shè)備如PDA、手機(jī)等存儲空間小,對數(shù)據(jù)的并發(fā)操作要求低;而有的嵌入式設(shè)備,如Handle PC、終端機(jī)、機(jī)頂盒等具有相對較大的磁盤空間,要求對數(shù)據(jù)具有相當(dāng)大的并發(fā)操作能力,又同時希望有足夠的索引以提高數(shù)據(jù)查找速度。
對于存儲空間小,對數(shù)據(jù)的并發(fā)操作要求低的嵌入式系統(tǒng),可以采用全散列技術(shù)將記錄和索引存放在同一個數(shù)據(jù)文件中,它將記錄中的數(shù)據(jù)以域(即字段)為單位進(jìn)行拆分,將這個記錄的每一個域都散列存放在這個數(shù)據(jù)文件的相應(yīng)索引中,實際上這個數(shù)據(jù)文件不存在記錄的實體,而是每個域的索引數(shù)據(jù)的組合,由于每個域上都存在索引,通過查找每個索引中該記錄的相應(yīng)域的數(shù)值,然后進(jìn)行數(shù)據(jù)組裝從而得到完整的記錄數(shù)據(jù)。這種技術(shù)由于表單各域都有相應(yīng)的索引,各個域的數(shù)據(jù)都存放在相應(yīng)的索引中,而不存在數(shù)據(jù)的實體,在很大程度上節(jié)省了磁盤占用空間,同時,由于數(shù)據(jù)完全散列的存放,使得用戶可以方便的在表單的任何域上做查詢操作而不影響查詢效率。但由于所有的表單操作都是在一個數(shù)據(jù)文件中進(jìn)行,使得對這種表單的數(shù)據(jù)并發(fā)性操作受到了一定程度的影響。
可見,全散列技術(shù)由于并發(fā)性受到了影響而并不適用于具有相對較大的磁盤空間,要求對數(shù)據(jù)具有相當(dāng)大的并發(fā)操作能力,又同時希望有足夠的索引以提高數(shù)據(jù)查找速度的嵌入式系統(tǒng)。目前對于這類嵌入式系統(tǒng)還沒有較好的數(shù)據(jù)存儲和查找的方法來解決并發(fā)性和提高數(shù)據(jù)查找速度的問題。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的在于提供一種嵌入式系統(tǒng)的數(shù)據(jù)存放及其查找方法,具有相當(dāng)大的并發(fā)操作能力,同時又能夠提高嵌入式系統(tǒng)數(shù)據(jù)查找的速度和效率。
為達(dá)到上述目的,本發(fā)明的技術(shù)方案具體是這樣實現(xiàn)的一種嵌入式系統(tǒng)的數(shù)據(jù)存放及其查找方法,其特征在于,該方法包括
數(shù)據(jù)存放過程,其包括建立表單,將記錄存放在數(shù)據(jù)文件中;和為表單中用戶所指定的一個或多個域建立一個或多個域索引文件,將索引信息寫入域索引文件,并將表單的數(shù)據(jù)文件和域索引文件進(jìn)行綁定;如果用戶沒有指定域則建立簡單索引文件,將索引信息寫入簡單索引文件;數(shù)據(jù)查找過程,其通過在域索引文件中查找數(shù)據(jù)的索引信息,或沒有域索引文件時在簡單索引文件中查找數(shù)據(jù)的索引信息來進(jìn)行數(shù)據(jù)查找。
該方法中,寫入域索引文件的索引信息可以包含每條記錄在該域的內(nèi)容、記錄在數(shù)據(jù)文件中的具體位置和該記錄的大??;寫入簡單索引文件的索引信息可以包含每條記錄在數(shù)據(jù)文件中的具體位置和該記錄的大小。
該方法步驟2)所述的建立域索引文件的過程可以為對用戶所指定的各個域的數(shù)據(jù)分別通過哈希運算得到哈希結(jié)果值,將哈希結(jié)果值填入索引文件中的哈希表,根據(jù)哈希表將索引信息填入索引文件中的B+樹。步驟3)所述的在域索引文件中查找數(shù)據(jù)的索引信息的過程可以為根據(jù)欲查找數(shù)據(jù)的一個或多個域比較條件,先進(jìn)行哈希運算得到各個條件的哈希值,再根據(jù)各個域索引文件中的哈希表,到各個域索引文件中的B+樹中查找各個域的索引信息。
步驟2)所述的將表單的數(shù)據(jù)文件和域索引文件進(jìn)行綁定的方法可以為將該表單的數(shù)據(jù)文件和域索引文件存放在同一目錄中。
步驟3)所述的在簡單索引文件中查找數(shù)據(jù)的索引信息的可以過程為遍歷簡單索引文件查找該條記錄的索引信息。
該方法可以進(jìn)一步包括如果表單建立了域索引文件,則將簡單索引文件刪除。
該方法還可以進(jìn)一步包括,刪除記錄的過程為從域索引文件或簡單索引文件中查找到該記錄的索引信息并標(biāo)記刪除。域索引文件中標(biāo)記刪除的索引信息,可以在添加新記錄時,用新記錄的索引信息代替。簡單索引文件中標(biāo)記刪除的索引信息,用不能重用標(biāo)記代替。
該方法還可以進(jìn)一步包括在刪除域的索引時,先判斷該域所在的表單是否還有其他的域索引文件,如果有則直接刪除該域的域索引文件;如果沒有則建立簡單索引文件,根據(jù)該域的域索引文件遍歷整個表單,將索引信息寫入簡單索引文件,再刪除該域的域索引文件。
該方法還可以進(jìn)一步包括在對表單的結(jié)構(gòu)進(jìn)行修改時,建立一個與修改后的表單結(jié)構(gòu)相同的臨時表單,遍歷整個原表單,將原表單的所有記錄插入臨時表單,再將原表單用臨時表單替換。
因此,本發(fā)明的這種嵌入式系統(tǒng)的數(shù)據(jù)存放及其查找方法,具有相當(dāng)大的并發(fā)操作能力,同時又能夠提高嵌入式系統(tǒng)數(shù)據(jù)查找的速度和效率。本發(fā)明是一種以索引文件為基本單位的數(shù)據(jù)多索引技術(shù),它使得嵌入式數(shù)據(jù)庫實現(xiàn)了數(shù)據(jù)多索引交叉查找數(shù)據(jù)技術(shù),優(yōu)化提高了嵌入式數(shù)據(jù)庫數(shù)據(jù)查找速度及效率,減少了因數(shù)據(jù)查找而帶來的CPU計算負(fù)擔(dān)和內(nèi)存負(fù)擔(dān),提高了嵌入式數(shù)據(jù)庫在嵌入式設(shè)備的適用性。
圖1為本發(fā)明方案一個較佳實施例的建立第一個域索引文件的過程示意圖;圖2為圖1所示實施例中建立另一個域索引文件的過程示意圖;圖3為圖1所示實施例的表單索引結(jié)構(gòu)示意圖;圖4為圖1所示實施例進(jìn)行數(shù)據(jù)查找并刪除的過程示意圖;圖5為圖1所示實施例進(jìn)行添加記錄的過程示意圖;圖6為圖1所示實施例進(jìn)行添加域的過程示意圖。
具體實施例方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,下面結(jié)合實施例和附圖,對本發(fā)明進(jìn)一步詳細(xì)說明。
本發(fā)明是為了適應(yīng)具有相對較大的磁盤空間,要求對數(shù)據(jù)具有相當(dāng)大的并發(fā)操作能力,又同時希望有足夠的索引以提高數(shù)據(jù)查找速度的嵌入式系統(tǒng),發(fā)明的一種多索引技術(shù)。多索引技術(shù)的基本方法是將記錄的數(shù)據(jù)和索引分開在不同的文件中進(jìn)行存儲,用戶可以靈活的指定想要建立索引的域,即一個表單由一個數(shù)據(jù)文件和若干個索引文件組成,由于數(shù)據(jù)實體和索引文件分開,使得一條記錄的某些數(shù)據(jù)在數(shù)據(jù)文件和索引文件中重復(fù)出現(xiàn),雖然加大了數(shù)據(jù)的存儲冗余量,但提高了數(shù)據(jù)的查詢效率。又由于數(shù)據(jù)和索引存放在不同的文件中,從而減少了并發(fā)操作時的沖突,提高了并發(fā)操作數(shù)據(jù)庫的效率。
本發(fā)明的實施方法包括以下步驟第一步建立表單,將記錄以二進(jìn)制形式存放在數(shù)據(jù)文件中。嵌入式數(shù)據(jù)庫中的數(shù)據(jù)一般都采用二進(jìn)制進(jìn)行存儲,這樣保證了嵌入式數(shù)據(jù)庫的平臺無關(guān)性,同時有利于提高查找速度。
第二步為表單中用戶所指定的一個或多個域建立一個或多個域索引文件,將索引信息寫入域索引文件,并將表單的數(shù)據(jù)文件和域索引文件進(jìn)行綁定;如果用戶沒有指定域則建立簡單索引文件,將索引信息寫入簡單索引文件。
在用戶剛建立表單并在這個表單中建立了幾個域時,因為并沒有建立任何索引,所以系統(tǒng)自動在這個表單中建立一個缺省的不依賴于任何域的簡單索引文件。因為數(shù)據(jù)文件中的記錄是以二進(jìn)制存放,所以用一個索引對數(shù)據(jù)文件中的記錄加以區(qū)分。
此時,用戶可以指定域建立域索引文件,參見圖1,本發(fā)明方案一個較佳實施例的建立第一個域索引文件的過程示意圖。
表單在沒有建立域索引文件時,系統(tǒng)自動建立簡單索引文件。如圖1所示,簡單索引文件101中包含了每條記錄的索引信息及被刪除的索引信息等所有索引信息102;如果用戶想在一個沒有索引的表單的域1上建立索引,則執(zhí)行步驟103,嵌入式數(shù)據(jù)庫根據(jù)簡單索引文件中的索引信息遍歷整個表單,取出所有的記錄,再通過哈希運算得到哈希結(jié)果值,將哈希結(jié)果值填入域索引文件中的哈希表,根據(jù)哈希表將索引信息填入索引文件中的B+樹,即將每條記錄在域1的索引數(shù)據(jù)連同索引信息一起寫入索引文件,這樣完成步驟104,建立了域1的域索引文件。然后,將域1的域索引文件存放在該表單數(shù)據(jù)文件所在的目錄中。最后,刪除已經(jīng)不再有用的簡單索引文件,因為嵌入式數(shù)據(jù)庫不再維護(hù)這個簡單索引文件。簡單索引是當(dāng)一個表單用戶沒有顯式的建立索引時建立起來的索引,他不與任何域進(jìn)行捆綁,同時,它的存在與一般索引文件的存在是互斥的,如果用戶在表單某一個域上建立了索引,則這個簡單索引將被刪除,如果這個表單不存在任何索引,則系統(tǒng)會自動建立簡單索引文件。
表一為簡單索引文件內(nèi)容表。如表一所示,簡單索引文件僅僅包含這個表單中所有記錄在數(shù)據(jù)文件的具體位置以及大小的信息,新的記錄插入表單時,它在數(shù)據(jù)文件中的具體位置信息和數(shù)據(jù)大小被寫入簡單索引文件的末尾,一條記錄被刪除后,為保證記錄插入表單的時序性,這條記錄在簡單索引文件中所占用的空間將被不能重用標(biāo)記-1代替而不能重用。
表一域索引文件中的索引數(shù)據(jù)是指哈希值、索引信息在B+樹中的位置等,域索引文件中的索引信息則包含每條記錄在該域的內(nèi)容、記錄在數(shù)據(jù)文件中的具體位置和該記錄的大小。
用戶還可以指定其他多個域建立域索引文件,參見圖2,圖2為圖1所示實施例中建立另一個域索引文件的過程示意圖。如圖2所示,表單已經(jīng)在域1上存在索引,若用戶要在域3上創(chuàng)建新的索引,則執(zhí)行步驟201,數(shù)據(jù)庫遍歷已存在的域1的域索引文件,然后執(zhí)行步驟202,通過哈希運算得到新的索引數(shù)據(jù)連同索引信息一起填充到域3的索引文件中,這樣完成步驟203,建立了域3的域索引文件。然后,將域3的域索引文件存放在該表單數(shù)據(jù)文件所在的目錄中。如果用戶還需要為其他域建立索引文件,方法同上。
本實施例為表單建立了3個域索引文件,其索引結(jié)構(gòu)參見圖3,圖3為圖1所示實施例的表單索引結(jié)構(gòu)示意圖。如圖3所示,該表單包含5個域域1-域5,其中域1建立了域索引文件301、域3建立了域索引文件302、域5建立了域索引文件303,域2、域4沒有索引。域索引文件301、302和303是根據(jù)各個域的數(shù)據(jù)信息建立的,其包含各個域通過哈希算法計算得到的索引數(shù)據(jù)和與該域的數(shù)據(jù)一一對應(yīng)的索引信息。
第三步表單建立了索引結(jié)構(gòu)后就可以通過在域索引文件中查找數(shù)據(jù)的索引信息,或沒有域索引文件時在簡單索引文件中查找數(shù)據(jù)的索引信息來進(jìn)行數(shù)據(jù)查找。在有域索引文件,對記錄進(jìn)行查找時,本發(fā)明的多索引記錄存儲方式使得用戶可以進(jìn)行選擇查找,即用戶只需指定某些域的比較條件對滿足這些比較條件的記錄進(jìn)行查找。參見圖4,圖4為圖1所示實施例進(jìn)行數(shù)據(jù)查找并刪除的過程示意圖。如圖4所示,如用戶希望刪除域1符合條件1,域2符合條件2,域3符合條件3的某些記錄。如圖中1、2所示用戶在域1和域3上都建立了索引,因此首先執(zhí)行步驟401和402數(shù)據(jù)庫根據(jù)域1和域3的索引,通過計算條件1和條件3的哈希值,根據(jù)哈希表找出同時滿足這兩個條件的記錄鏈3;再執(zhí)行步驟403在這個記錄鏈中進(jìn)行查找,找出滿足域2符合條件2的這些記錄;對于滿足3個條件的記錄4,執(zhí)行步驟404將這些記錄在所有索引文件中進(jìn)行標(biāo)識,標(biāo)識它們已被刪除,這樣就完成了用戶提交的記錄條件刪除命令;如圖中5、6、7所示被標(biāo)記刪除的各域的索引信息包含該記錄在該域的數(shù)據(jù)內(nèi)容、記錄所在數(shù)據(jù)文件的具體位置數(shù)據(jù)長度等。
本發(fā)明并不將索引信息和數(shù)據(jù)文件的實際內(nèi)容刪除,這是因為對記錄的查詢等所有操作都是首先查找索引進(jìn)行的,而在索引中不存在該記錄的索引信息,就無法找到該記錄,就好像這條記錄根本不存在一樣,達(dá)到了和刪除記錄同樣的效果。由于不需要刪除整條記錄,提高了刪除記錄的效率,而且這種方法不必釋放這條記錄所占用的磁盤空間,這些磁盤空間還可以在增加新記錄時被重新利用而不會廢置,不會浪費磁盤空間。同時,這樣還保證了在需要撤消刪除操作時,數(shù)據(jù)仍然保留,不會造成數(shù)據(jù)丟失。
在簡單索引文件中查找數(shù)據(jù)的索引信息來進(jìn)行數(shù)據(jù)查找的方法很簡單,只需遍歷整個表單查找該條記錄的索引信息,根據(jù)索引信息提供的記錄在數(shù)據(jù)文件中的位置和記錄的大小,就可以在數(shù)據(jù)文件中查找到該記錄。
當(dāng)有新的記錄寫入表單時,如果沒有建立域索引文件只需將新記錄寫入數(shù)據(jù)文件的末尾,并將數(shù)據(jù)文件中的具體位置信息的數(shù)據(jù)大小寫入簡單索引文件的末尾即可。如果表單已建立域索引文件,其寫入過程參見圖5,圖5為圖1所示實施例進(jìn)行添加記錄的過程示意圖。如圖5所示,首先執(zhí)行步驟501,數(shù)據(jù)庫遍歷已建立的域索引文件,接著執(zhí)行步驟502,判斷是否有標(biāo)記刪除的信息,如果沒有標(biāo)記刪除的索引信息,則進(jìn)入步驟505,將新記錄寫入數(shù)據(jù)文件末尾并通過哈希運算得到哈希結(jié)果值,到索引文件中的哈希表中查找哈希結(jié)果值,根據(jù)哈希表將索引信息添加到B+樹中;如果有標(biāo)記刪除的索引信息,則執(zhí)行步驟503,將新記錄的索引信息與被標(biāo)記刪除的索引信息進(jìn)行比較;如果新記錄的索引信息與被標(biāo)記刪除的索引信息中數(shù)據(jù)的大小相同,則執(zhí)行步驟504,通過哈希運算得到新記錄的哈希結(jié)果值,將哈希結(jié)果值到索引文件中的哈希表中查找,根據(jù)哈希表將索引信息添加到B+樹中,并將新記錄的索引信息代替標(biāo)記刪除的索引信息,取消刪除標(biāo)記,同時按索引信息中該記錄在數(shù)據(jù)文件中的地址,將新記錄的數(shù)據(jù)寫入到數(shù)據(jù)文件中。如果新記錄的索引信息與被標(biāo)記刪除的索引信息中數(shù)據(jù)的大小不同,則執(zhí)行步驟505。
在表單的結(jié)構(gòu)進(jìn)行修改時,如建立/刪除/修改域時,將會影響到整個表單的所有記錄在數(shù)據(jù)文件中的位置等信息,為保證每個索引文件都能正確的反映出表單記錄的索引信息,數(shù)據(jù)庫建立一個臨時的表單,這個臨時表單的結(jié)構(gòu)形式與建立/刪除/修改域后這個表的結(jié)構(gòu)相同。例如,用戶在本實施例的這個表單中建立一個新域——域6,參見圖6,圖6為圖1所示實施例進(jìn)行添加域的過程示意圖。如圖6所示,首先步驟601,建立一個包含域6的臨時表單;然后執(zhí)行步驟602,遍歷整個表單,將原表單中所有記錄插入臨時表單,由于插入記錄時這些記錄在臨時表單中的索引信息會與記錄保持一致,因此達(dá)到了修改表單結(jié)構(gòu)的目的,同時又不會因為操作過程中的錯誤而影響到原表單的數(shù)據(jù),最后,執(zhí)行步驟603,將原表單用臨時表單替換,完成表單結(jié)構(gòu)修改操作。
圖6中還示出了臨時表單的結(jié)構(gòu),其不僅包含了原表單的5個域及其域1、3、5的索引信息,還包含了新建的域6。
由此可見,本發(fā)明的這種嵌入式系統(tǒng)的數(shù)據(jù)存放及其查找方法,具有相當(dāng)大的并發(fā)操作能力,同時又能夠提高嵌入式系統(tǒng)數(shù)據(jù)查找的速度和效率。是一種以索引文件為基本單位的數(shù)據(jù)多索引技術(shù),它使得嵌入式數(shù)據(jù)庫實現(xiàn)了數(shù)據(jù)多索引交叉查找數(shù)據(jù)技術(shù),優(yōu)化提高了嵌入式數(shù)據(jù)庫數(shù)據(jù)查找速度及效率,減少了因數(shù)據(jù)查找而帶來的CPU計算負(fù)擔(dān)和內(nèi)存負(fù)擔(dān),提高了嵌入式數(shù)據(jù)庫在嵌入式設(shè)備的適用性。同時,由于這種方法的平臺無關(guān)性和語言無關(guān)性,可以方便地移植到各種嵌入式平臺和應(yīng)用程序中,有著廣泛的應(yīng)用前景。
權(quán)利要求
1.一種嵌入式系統(tǒng)的數(shù)據(jù)存放及其查找方法,其特征在于,該方法包括數(shù)據(jù)存放過程,其包括建立表單,將記錄存放在數(shù)據(jù)文件中;和為表單中用戶所指定的一個或多個域建立一個或多個域索引文件,將索引信息寫入域索引文件,并將表單的數(shù)據(jù)文件和域索引文件進(jìn)行綁定;如果用戶沒有指定域則建立簡單索引文件,將索引信息寫入簡單索引文件;數(shù)據(jù)查找過程,其通過在域索引文件中查找數(shù)據(jù)的索引信息,或沒有域索引文件時在簡單索引文件中查找數(shù)據(jù)的索引信息來進(jìn)行數(shù)據(jù)查找。
2.如權(quán)利要求1所述的嵌入式系統(tǒng)的數(shù)據(jù)存放及其查找方法,其特征在于寫入域索引文件的索引信息包含每條記錄在該域的內(nèi)容、記錄在數(shù)據(jù)文件中的具體位置和該記錄的大小。
3.如權(quán)利要求1所述的嵌入式系統(tǒng)的數(shù)據(jù)存放及其查找方法,其特征在于寫入簡單索引文件的索引信息包含每條記錄在數(shù)據(jù)文件中的具體位置和該記錄的大小。
4.如權(quán)利要求1所述的嵌入式系統(tǒng)的數(shù)據(jù)存放及其查找方法,其特征在于,步驟2)所述的建立域索引文件的過程為對用戶所指定的各個域的數(shù)據(jù)分別通過哈希運算得到哈希結(jié)果值,將哈希結(jié)果值填入索引文件中的哈希表,根據(jù)哈希表將索引信息填入索引文件中的B+樹;步驟3)所述的在域索引文件中查找數(shù)據(jù)的索引信息的過程為根據(jù)欲查找數(shù)據(jù)的一個或多個域比較條件,先進(jìn)行哈希運算得到各個比較條件的哈希值,再根據(jù)各個域索引文件中的哈希表,到各個域索引文件中的B+樹中查找各個域的索引信息。
5.如權(quán)利要求1所述的嵌入式系統(tǒng)的數(shù)據(jù)存放及其查找方法,其特征在于,步驟2)所述的將表單的數(shù)據(jù)文件和域索引文件進(jìn)行綁定的方法為將該表單的數(shù)據(jù)文件和域索引文件存放在同一目錄中。
6.如權(quán)利要求1所述的嵌入式系統(tǒng)的數(shù)據(jù)存放及其查找方法,其特征在于,步驟3)所述的在簡單索引文件中查找數(shù)據(jù)的索引信息的過程為遍歷簡單索引文件查找該條記錄的索引信息。
7.如權(quán)利要求1所述的嵌入式系統(tǒng)的數(shù)據(jù)存放及其查找方法,其特征在于,該方法進(jìn)一步包括如果表單建立了域索引文件,則將簡單索引文件刪除。
8.如權(quán)利要求1所述的嵌入式系統(tǒng)的數(shù)據(jù)存放及其查找方法,其特征在于,該方法進(jìn)一步包括,刪除記錄的過程為從域索引文件或簡單索引文件中查找到該記錄的索引信息并標(biāo)記刪除。
9.如權(quán)利要求8所述的嵌入式系統(tǒng)的數(shù)據(jù)存放及其查找方法,其特征在于,該方法進(jìn)一步包括域索引文件中標(biāo)記刪除的索引信息,在添加新記錄時,用新記錄的索引信息代替標(biāo)記刪除的索引信息。
10.如權(quán)利要求8所述的嵌入式系統(tǒng)的數(shù)據(jù)存放及其查找方法,其特征在于,該方法進(jìn)一步包括簡單索引文件中標(biāo)記刪除的索引信息,用不能重用標(biāo)記代替。
11.如權(quán)利要求1所述的嵌入式系統(tǒng)的數(shù)據(jù)存放及其查找方法,其特征在于,該方法進(jìn)一步包括在刪除域的索引時,先判斷該域所在的表單是否還有其他的域索引文件,如果有則直接刪除該域的域索引文件;如果沒有則建立簡單索引文件,根據(jù)該域的域索引文件遍歷整個表單,將索引信息寫入簡單索引文件,再刪除該域的域索引文件。
12.如權(quán)利要求1所述的嵌入式系統(tǒng)的數(shù)據(jù)存放及其查找方法,其特征在于,該方法進(jìn)一步包括在對表單的結(jié)構(gòu)進(jìn)行修改時,建立一個與修改后的表單結(jié)構(gòu)相同的臨時表單,遍歷整個原表單,將原表單的所有記錄插入臨時表單,再將原表單用臨時表單替換。
全文摘要
本發(fā)明公開了一種嵌入式系統(tǒng)的數(shù)據(jù)存放及其查找方法,數(shù)據(jù)存放過程包括建立表單,將記錄存放在數(shù)據(jù)文件中;和為表單中用戶所指定的一個或多個域建立一個或多個域索引文件,將索引信息寫入域索引文件,并將表單的數(shù)據(jù)文件和域索引文件進(jìn)行綁定;如果用戶沒有指定域則建立簡單索引文件,將索引信息寫入簡單索引文件;查找過程為通過在域索引文件中查找數(shù)據(jù)的索引信息,或沒有域索引文件時在簡單索引文件中查找數(shù)據(jù)的索引信息來進(jìn)行數(shù)據(jù)查找。本發(fā)明方法具有相當(dāng)大的并發(fā)操作能力,能夠提高嵌入式系統(tǒng)數(shù)據(jù)查找的速度和效率,且具有平臺無關(guān)性和語言無關(guān)性,可以方便地移植到各種嵌入式平臺和應(yīng)用程序中,有著廣泛的應(yīng)用前景。
文檔編號G06F17/30GK1492363SQ02145960
公開日2004年4月28日 申請日期2002年10月25日 優(yōu)先權(quán)日2002年10月25日
發(fā)明者丁剛, 楊柏梁, 孫雅莎, 丁 剛 申請人:聯(lián)想(北京)有限公司