什么是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树的示意图:

更新于:2021年7月8日

4K+ 阅读量

开启你的职业生涯

通过完成课程获得认证

开始学习
广告