Definition of B-Tree:
A B-tree T is a rooted tree (whose root is root[T]) having the following properties:
-
Every node x has the following fields:
-
n[x], the number of keys currently stored in node x,
-
the n[x] keys themselves, stored in nondecreasing order, so that key1[x] ≤ key2[x] ≤ ··· ≤ keyn[x][x],
-
leaf [x], a boolean value that is TRUE if x is a leaf and FALSE if x is an internal node.
-
-
Each internal node x also contains n[x]+ 1 pointers c1[x], c2[x], ..., cn[x]+1[x] to its children. Leaf nodes have no children, so their cifields are undefined.
-
The keys keyi[x] separate the ranges of keys stored in each subtree: if ki is any key stored in the subtree with root ci [x], then
k1 ≤ key1[x] ≤ k2 ≤ key2[x] ≤··· ≤ keyn[x][x] ≤ kn[x]+1.
-
All leaves have the same depth, which is the tree's height h.
-
There are lower and upper bounds on the number of keys a node can contain. These bounds can be expressed in terms of a fixed integer t ≥ 2 called the minimum degree of the B-tree:
-
Every node other than the root must have at least t - 1 keys. Every internal node other than the root thus has at least t children. If the tree is nonempty, the root must have at least one key.
-
Every node can contain at most 2t - 1 keys. Therefore, an internal node can have at most 2t children. We say that a node is fullif it contains exactly 2t - 1 keys.[1]
-
The simplest B-tree occurs when t = 2. Every internal node then has either 2, 3, or 4 children, and we have a 2-3-4 tree. In practice, however, much larger values of t are typically used.
other notes:
B-tree are balanced search trees designed to work well on magnetic disks or other direct-access secondary storage devices.