1. 程式人生 > >[原始碼和文件分享]基於C++的簡易資料庫的開發與測試

[原始碼和文件分享]基於C++的簡易資料庫的開發與測試

一 開發說明

1.1 總體說明

本次專案以c++語言編寫簡易資料庫,資料庫為<key:value>的簡單形式,在本專案中,限定key為整數且不考慮溢位問題,value為字串型別,不可為空,長度最長為19(其中第20位為\0字元)。主體程式面向使用者提供四種主要操作,分別為查詢、新增、刪除和修改。檔案中資料結構主要採用B+樹,實現了對刪除的結點的空間回收。資料庫cache模擬系統中的cache以利用檔案讀取的區域性性來增加讀寫速度。檔案以二進位制形式開啟以便於管理。

1.2 檔案設計說明

1.2.1 索引檔案設計說明

索引檔案前4個位元組為根節點所在地址,若為0則樹為空,初始時。接著8個位元組為第一個空白位置,初始時為8,即檔案尾。然後依次是每個節點。每個節點分為三個部分,第一部分為12個位元組,四個整數,分別是父節點地址、父節點在節點中的位置(從1開始)和當前節點關鍵碼的個數,根節點父節點地址為0。第二部分為當前節點的關鍵碼和其孩子的地址,若節點為葉節點,則為當前節點的關鍵碼和關鍵碼對應的值在資料檔案中的地址的負數(因此可以根據孩子地址的正負來直接區別內部節點和葉子結點)。第三部分為下一個葉子節點的地址,若節點為內部節點,則該部分無意義。空白位置組成單項鍊表,最後一項始終為檔案末尾。刪除節點後將地址連結到連結串列頭部。

1.2.2 資料檔案設計說明

資料檔案前四個位元組為第一個空白位置,初始時為4。之後為資料,每條資料佔用20個位元組。空白位置組成單項鍊表,最後一項始終為檔案末尾。刪除節點後將地址連結到連結串列頭部。


參考文件和完整的文件和原始碼下載地址:

https://www.write-bug.com/article/128.html