谁能给我解释一下b树的概念啊..(50分)

  • 主题发起人 主题发起人 zlyh
  • 开始时间 开始时间
Z

zlyh

Unregistered / Unconfirmed
GUEST, unregistred user!
谁能给我解释一下b树的概念啊..
 
数据结构的教科书有讲, 详细的数据库方面的书大概也有,
大概是用于维护索引用的, 使插入新记录时做到要搬家的
数据少, 又能有很好的查找性能
没有必要细究这些低层的技术, 我们用数据库不会觉察有
什么B树,B+树
 
B-树的定义
1、B-树的定义
 一棵m(m≥3)阶的B-树是满足如下性质的m叉树:
(1)每个结点至少包含下列数据域:
(j,P0,Kl,P1,K2,…,Ki,Pi)
  其中:
j为关键字总数
Ki(1≤i≤j)是关键字,关键字序列递增有序:K1 <K2<…<Ki。
Pi(0≤i≤j)是孩子指针。对于叶结点,每个Pi为空指针。
注意:
 ①实用中为节省空间,叶结点中可省去指针域Pi,但必须在每个结点中增加一个标志域leaf,其值为真时表示叶结点,否则为内部结点。
  ②在每个内部结点中,假设用keys(Pi)来表示子树Pi中的所有关键字,则有:
       keys(P0)<K1<keys(P1)<K2<…<Ki<keys(Pi)
即关键字是分界点,任一关键字Ki左边子树中的所有关键字均小于Ki,右边子树中的所有关键字均大于Ki。
(2)所有叶子是在同一层上,叶子的层数为树的高度h。
(3)每个非根结点中所包含的关键字个数j满足:
(m/2)-1<=j<=m-1。
 即每个非根结点至少应有 (m-2)-1个关键字,至多有m-1个关键字。
 因为每个内部结点的度数正好是关键字总数加1,故每个非根的内部结点至少有(m/2)子树,至多有m棵子树。
(4)若树非空,则根至少有1个关键字,故若根不是叶子,则它至少有2棵子树。根至多有m-1个关键字,故至多有m棵子树。
 
归纳起来,B树具有以下特点:
1.m阶的B树中每个结点至多有m棵子树
2.若根结点不是叶子结点,则至少有2棵子树
3.除根以外所有中间结点至少有m/2棵子树
4.中间结点的关键字从小到大排列,且左子树关键字的值均小于右子树
5.所有叶子结点均在同一层,且不带任何信息
 
《<程序员》2002年合订本文章“数据库算法。。”一文中有B树概念及实现
 
后退
顶部