1. 程式人生 > >B-樹的結構(一)

B-樹的結構(一)

B-樹把儲存塊組織成一顆樹,這棵樹是平衡的,即從樹根到樹葉的所有路徑都一樣。
對應於每個B-樹都有一個引數n,它決定了B-樹的所有儲存塊的佈局。每個儲存塊存放n個查詢鍵值和n+1個指標。

根節點僅有兩個指標,
葉子節點的最後一個指標指向按順序的下一個葉節點。
同葉子節點一樣,內部結點的鍵和指標槽也沒有必要全部佔用,不過,當n=3時,一個內部節點至少要出現一個鍵值和兩個指標。

B-樹的應用:B-樹的查詢鍵是資料檔案的主鍵,且索引是稠密的。
B-樹變種的另一些應用允許葉節點中查詢鍵重複出現。

B-樹的插入原則:
1、我們設法在適當的葉節點為新鍵找到空閒空間,如果有的話,我們就把鍵放在那裡。
2、如果在適當的葉節點中沒有空間,我們就把該葉節點分裂成兩個並且把其中的鍵分到這兩個新節點中,使每個新節點有一半或剛好超過一半的鍵。
3、某一層的節點分裂在其上一層看來,相當於是要在這一較高的層次上插入一個新的鍵-指標對。因此,我們可以在這一較高層次上遞迴地使用這個插入策略:如果有空間,則插入;如果沒有,則分裂這個父節點且繼續向樹的高層推進。
4、例外的是,如果我們試圖插入鍵到根節點中並且根節點沒有空間,那麼我們就分裂根節點成兩個節點且在更上一層建立一個新的根節點,這個新的根節點有兩個剛分裂成的節點作為它的子節點。