[發明專利]一種sqlite的自由空間的刪除記錄挖掘方法和系統無效
| 申請號: | 201210001682.9 | 申請日: | 2012-01-05 |
| 公開(公告)號: | CN102591979A | 公開(公告)日: | 2012-07-18 |
| 發明(設計)人: | 陳明輝;方均灘;吳世雄 | 申請(專利權)人: | 廈門市美亞柏科信息股份有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京恒都律師事務所 11395 | 代理人: | 何自剛 |
| 地址: | 361008 福建省廈門*** | 國省代碼: | 福建;35 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 sqlite 自由空間 刪除 記錄 挖掘 方法 系統 | ||
技術領域
本發明涉及數據庫處理系統,尤其涉及sqlite的自由空間的刪除記錄挖掘方法和系統。
背景技術
傳統的sqlite刪除數據解析方法是根據記錄數據的特征來識別記錄關鍵數據的起始和終止標志,從而解析某些關鍵數據,但是這種方法的弊端是只能針對某一類數據庫文件的某些關鍵數據,而無法提取全部數據,并且對于其他的數據庫文件則需要重新提取數據特征并重新解析,無法保證通用性。
目前市場上的sqlite數據庫刪除數據的通用解析產品具有很大的局限性,其B+tree自由空間刪除記錄挖掘,由于對于記錄特征提取不夠精確,而且對于多數據表刪除數據交叉的考慮不夠充分,所以解析效果不盡如人意。測試發現對于B+tree自由空間刪除記錄挖掘,往往只能解析一小部分的刪除記錄,甚至無法解析任何一條記錄,而且解析結果經常由于記錄劃分的不準確存在亂碼現象,這樣影響了刪除記錄解析的準確性和全面性。
發明內容
本發明的目的在于提供一種sqlite的自由空間的刪除記錄挖掘方法,可以通用、全面地解決sqlite的自由空間上刪除記錄的挖掘。
本發明是這樣實現的,一種sqlite的自由空間的刪除記錄挖掘方法,所述方法包括下述步驟:讀取sqlite頁的自由空間,從sqlite的多重通用特征中抽象出多元組用以描述自由空間的記錄的關鍵點信息;通過頁面交叉方法遍歷上述關鍵點信息以挖掘刪除記錄。
本發明的另一目的在于提供一種sqlite的自由空間的刪除記錄挖掘系統,所述系統包括:關鍵點信息抽象單元,用于從sqlite的多重通用特征中抽象出多元組用以描述自由空間的記錄的關鍵點信息;頁面交叉遍歷單元,用于通過頁面交叉方法遍歷上述關鍵點信息以挖掘刪除記錄。
作為優選的,所述多重通用特征包括五元組,為:當前頁面的完整的記錄數據塊中的記錄總長度的值、頭部索引總長度的值、頭部索引總長度所占用空間的大小,以及當前頁面的空閑鏈表節點的前兩個字節指向下一個空閑節點的指針的值、后兩個字節表示該空閑節點的大小的值。
作為優選的,根據所述五元組抽象出的所述多元組用以描述自由空間上記錄的關鍵點信息,所述多元組包括三元組,為:在當前頁面的完整的記錄數據塊的或者當前頁面的空閑鏈表節點的記錄的所在的地址偏移、在當前頁面的完整的記錄數據塊的或者當前頁面的空閑鏈表節點的記錄的所占用空間的大小,以及數據類型。
作為優選的,所述頁面交叉遍歷單元,包括:第一次遍歷單元,用于根據節點的類型依次處理各個節點;第二次遍歷單元,用于對于不滿足重組條件的節點采用節點合并和拆分方式,再次嘗試重組判斷;第三次遍歷單元,用于判斷是否有不屬于當前數據表的記錄存在,如果有,采用交叉方法挖掘刪除記錄。
本發明的實施例在研究sqlite格式和B+tree頁面空間分配和釋放的基礎上,提出了基于多重通用特征的Sqlite的B+tree自由空間刪除記錄挖掘方法,并且利用多數據表刪除數據交叉挖掘技術,充分挖掘其他數據表殘留的刪除記錄,以提高自由空間刪除記錄挖掘的準確性和全面性。
附圖說明
圖1為本發明的sqlite頁面結構示意圖;
圖2為本發明的sqlite頁面的自由空間上WRN的sqlite記錄結構圖;
圖3為本發明的sqlite頁面的自由空間上FRN的sqlite記錄結構圖;
圖4為本發明的sqlite頁面的自由空間的刪除記錄挖掘流程圖。
具體實施方式
(一)sqlite的B+tree自由空間的簡單介紹
Sqlite數據庫的頁面組織是由B+tree來管理的,每個B+tree節點對應一個sqlite頁面,其中存放數據的葉子節點稱為葉子頁,而存放索引的內部節點稱為內部頁。每個頁面的數據組織分別有頁面頭部(記為PH)的管理部分和頁面尾部(記為PT)的數據部分組成,這樣就形成了PH和PT之間的自由空間(記為FSN)部分,如圖1所示。
sqlite頁面轉換(比如葉子頁轉換為內部頁)或者申請已有的空閑頁的時候,原有頁面的內容不會清空,從而導致了自由空間的記錄數據殘留,與sqlite的空閑鏈表節點不同的是,殘留的記錄呈現多樣化趨勢:
當前數據表的完整的記錄數據塊(記為WRN);
當前數據表的空閑鏈表節點(記為FRN);
其他數據表的刪除記錄(記為ORN);
其中,
WRN是因為整表數據全部清空的時候,sqlite只會修改相應頁面PH部分的前8個字節,而不會對所有記錄執行逐條刪除;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于廈門市美亞柏科信息股份有限公司,未經廈門市美亞柏科信息股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210001682.9/2.html,轉載請聲明來源鉆瓜專利網。





