首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

从B 树、B+ 树、B* 树提到R 树

2012-08-15 
从B 树、B+ 树、B* 树谈到R 树??????????????????????????? ?相信,从上图你能轻易的看到,一个内结点x若含有n

从B 树、B+ 树、B* 树谈到R 树

???????????????????????????

?

相信,从上图你能轻易的看到,一个内结点x若含有n[x]个关键字,那么x将含有n[x]+1个子女。如含有2个关键字D H的内结点有3个子女,而含有3个关键字Q T X的内结点有4个子女。

?


?

?

为了简单,这里用少量数据构造一棵3叉树的形式,实际应用中的B树结点中关键字很多的。上面的图中比如根结点,其中17表示一个磁盘文件的文件名;小红方块表示这个17文件内容在硬盘中的存储位置;p1表示指向17左子树的指针。

其结构可以简单定义为:

????? 其中T为度数(每个节点包含的元素个数),即所谓的阶数,N为总元素个数或总关键字数。

???? 我们可以看出T对于树的高度有决定性的影响。因此如果每个节点包含更多的元素个数,在元素个数相同的情况下,则更有可能减少B树的高度。这也是为什么SQL Server中需要尽量以窄键建立聚集索引。因为SQL Server中每个节点的大小为8092字节,如果减少键的大小,则可以容纳更多的元素,从而减少了B树的高度,提升了查询的性能。

??? 上面B树高度的公式也可以进行推导得出,将每一层级的的元素个数加起来,比如度为T的节点,根为1个节点,第二层至少为2个节点,第三层至少为2t个节点,第四层至少为2t*t个节点。将所有最小节点相加,从而得到节点个数N的公式:

???????????????从B 树、B+ 树、B* 树提到R 树

??? 两边取对数,则可以得到树的高度公式。

??? 这也就是说每个节点必须至少有两个子元素,因为根据高度公式,如果每个节点只有一个元素,也就是T=1的话,那么高度将会趋于正无穷。

?

?


?

?

?

?

?

?

7. ?http://www.cnblogs.com/CareySon/archive/2012/04/06/2435349.html。

热点排行