什麼是B樹,並解釋使用它的原因(DBMS)?
讓我們首先嚐試理解為什麼我們要使用B樹。然後,我們將對B樹的定義有一個清晰的認識。
使用B樹的原因
使用B樹的原因如下:
當在磁碟上搜索表時,訪問磁碟的成本很高,但它並不關心傳輸的資料量。因此,我們的目標是最小化磁碟訪問次數。
我們知道我們無法提高樹的高度。因此,我們希望使樹的高度儘可能小。
解決這個問題的方法是使用B樹,它有更多的分支,因此高度更低。隨著分支的增加,深度減小,訪問時間也隨之減小。
在B樹中,一個節點可以儲存許多元素或專案。
示例
假設如果我們想要訪問B樹的一個節點,我們需要一次磁碟讀取操作。一個階數為101且高度為3的B樹可以儲存大約1014-1個專案,即約1億個。因此,任何專案都可以透過最多3次磁碟讀取來訪問。
B樹被稱為平衡儲存樹,因為所有葉子都在同一層級,它也被稱為多路搜尋樹,是一種多級索引的形式。
B樹向根方向生長,而不是向葉子方向生長。
B樹的定義
現在讓我們嘗試理解B樹的定義,如下所述:
定義 - 階數為m的B樹是一個m路樹,這意味著一個節點最多可以有m個子節點。
B樹的特性
B樹滿足以下特性:
節點(非葉子節點)中的鍵的數量比其子節點的數量少一個(並且這些鍵像二叉搜尋樹一樣劃分子節點的鍵)。
根節點至少有一個鍵,最多有(m-1)個鍵。因此,根節點至少有兩個子節點,最多有m個子節點。
除根節點外的任何節點(非葉子節點)至少有m([m/2]-1)個鍵,最多有m(m-1)個鍵。因此,它們至少有m [ m/2 ]個子節點,最多有m m個子節點。
所有葉子節點都在同一層級。
注意 - 非葉子節點稱為內部節點(具有子節點的節點)。葉子節點稱為外部節點(沒有子節點的節點)。
示例
階數為3的B樹(即一個節點最多可以有3個子節點)滿足以下特性:
根節點至少有一個鍵,最多有2個鍵。因此,根節點至少有兩個子節點,最多有3個子節點。
除根節點外的任何節點(非葉子節點)至少有m 1個鍵,最多有m 2個鍵。因此,它們至少有m 2個子節點,最多有m 3個子節點。
注意 - 不允許重複鍵值。
以下是B樹的示意圖: