本次專案以c++語言編寫簡易資料庫,資料庫為的簡單形式,在本專案中,限定key為整數且不考慮溢位問題,value為字串型別,不可為空,長度最長為19(其中第20位為\0字元)。主體程式面向使用者提供四種主要操作,分別為查詢、新增、刪除和修改。檔案中資料結構主要採用b+樹,實現了對刪除的結點的空間**。資料庫cache模擬系統中的cache以利用檔案讀取的區域性性來增加讀寫速度。檔案以二進位制形式開啟以便於管理。
索引檔案前4個位元組為根節點所在位址,若為0則樹為空,初始時。接著8個位元組為第乙個空白位置,初始時為8,即檔案尾。然後依次是每個節點。每個節點分為三個部分,第一部分為12個位元組,四個整數,分別是父節點位址、父節點在節點中的位置(從1開始)和當前節點關鍵碼的個數,根節點父節點位址為0。第二部分為當前節點的關鍵碼和其孩子的位址,若節點為葉節點,則為當前節點的關鍵碼和關鍵碼對應的值在資料檔案中的位址的負數(因此可以根據孩子位址的正負來直接區別內部節點和葉子結點)。第三部分為下乙個葉子節點的位址,若節點為內部節點,則該部分無意義。空白位置組成單項鍊表,最後一項始終為檔案末尾。刪除節點後將位址鏈結到鍊錶頭部。
資料檔案前四個位元組為第乙個空白位置,初始時為4。之後為資料,每條資料占用20個位元組。空白位置組成單項鍊表,最後一項始終為檔案末尾。刪除節點後將位址鏈結到鍊錶頭部。
C 程式設計 基於服務的資料庫與本地資料庫
基於服務的資料庫 用於基於服務的資料訪問的空sql server資料庫。基於服務的資料庫擴充套件名為.mdf,是基於sql server服務的,需要在執行程式的機器安裝sql server enterprise standard express等版本都可以 本地資料庫 乙個用於本地資料的sql se...
基於XML的資料庫開發 2
本章主要介紹一下xml資料庫中sql語言解析的問題。現在解析sql基本是使用了類似字尾表示式的解析方法,具體如下 比如有乙個sql語言是這樣的 a 1 b 2 如果我們現在將它轉換成具體sql動作如下,則會變成下面的樣子 a 1 b 2 與字尾表示式很相近,主要區別在於 的判斷上。演算法如下 首先規...
基於sqlCE 3 0的資料庫開發
最近想使用一下在wince連線sql server 2005資料庫的例項。此前一直安裝的是visual c 6.0以及evc 4.0,一直猶豫是否要安裝visual studio 2005這個巨集大的傢伙。但是在網上查了一下,多數與wince 5.0及sqlce3.0的相關例程和文章都是用vs開發的...