B树的阶是什么?
描述一颗 B树时需要指定它的阶数,阶数 表示 此树的结点 最多 有 多少个孩子结点(子树),一般用字母 M 表示阶数。
M 阶的B树 :以【子树】讨论
- 上限:每个节点最多有 M 个子树
- 下限:
根节点至少2个子树,
非根节点至少有⌈M /2⌉个子树
所以也称 M 阶B树 为 ( ⌈M /2⌉ , M ) 树 ,即超级节点(除根节点)的子树数的上下限 。
注: 超级节点关键码的个数 = 节点子树数 - 1 。
例:
M = 4 阶,(2, 4)树。 最多含有 3个关键字 和 4个子树
M = 5 阶,(3, 5)树。 最多含有 4个关键字 和 5个子树
M = 6 阶,(3, 6)树。 最多含有 5个关键字 和 6个子树
所以,M阶 可理解为 M树,即内含(M-1)个关键字 和 M 个子树。
3阶B树:
一个节点最多有三个子节点
4阶B树:
一个节点最多只能有四个子节点
5阶B树:
一个节点最多只能有五个子节点

m阶B树的性质(m≥2)
概述
m阶B树的性质(m≥2) ,这个M必须大于等于2,B树必须至少是2阶B树
假设一个节点存储的元素个数为 x
根节点:1 ≤ x ≤ m − 1
如果你是根节点,根节点的元素至少是一个,并且小于m-1 .
假如说是3阶B树, 1 ≤ x ≤ 3 − 1
那么x是根节点是1~2

非根节点:┌ m/2 ┐ − 1 ≤ x ≤ m − 1
假如说是2阶B树,那么非根节点最多是2 ,为什么要这么限制??因为有分叉,分叉是父亲节点分叉出来的,也就是一个节点的子节点个数等于元素个数加1

┌ m/2 ┐ 符号的意思
⌈ ⌉ 的意思是向上取整的意思,
⌊ ⌋ 的意思是向下取整
向上取整, 运算称为 Ceiling,用数学符号 ⌈⌉ (上有起止,开口向下)表示,。
向下取整, 运算称为 Floor,用数学符号 ⌊⌋** **(下有起止,开口向上)表示。
具体介绍看
https://blog.csdn.net/aerchi/article/details/53031755
如果有子节点,子节点个数 y = x + 1
一个节点的子节点个数等于这个节点的元素个数+1,如果这个节点存储了三个元素,那么它的子节点必然是4个.

如果你是根节点 :2 ≤ y ≤ m
你的子节点是 y ,为什么这么计算? 因为你根节点是1 ≤ x ≤ m − 1 ,你的子节点肯定就是左右加1了.
非根节点:┌ m/2 ┐ ≤ y ≤ m
比如 m = 3,2 ≤ y ≤ 3,因此可以称为(2, 3)树、2-3树
比如 m = 4,2 ≤ y ≤ 4,因此可以称为(2, 4)树、2-3-4树
比如 m = 5,3 ≤ y ≤ 5,因此可以称为(3, 5)树
比如 m = 6,3 ≤ y ≤ 6,因此可以称为(3, 6)树
比如 m = 7,4 ≤ y ≤ 7,因此可以称为(4, 7)树
思考题
如果m=2,那么B树是什么样子,
如果m=2,意味着,根节点的子节点个数必须是2个,非根节点的子节点个数是1~2 . 这就是二叉搜索树,不过一般b树不会用到m=2的时候. b树的m一般是比较大的
数据库一般是几阶b树?
一般是200~300阶,如果是数据库的b树,一般一个节点能存储200~300个元素的.
