- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库管理系统中B-树
数据库管理系统中,最常用的两种数据结构是B-树和B+树,这两种数据结构保证了数据库的插入、删除、查找操作能高效完成 1. B-树的定义 B-树又称为平衡多路查找树,是一种组织和维护外存文件系统的非常有效的数据结构。定义如下:一棵m阶的B-树或者是一棵空树,或者满足如下条件: ①根结点至少有两棵子树; ②每个结点至多有m棵子树; ③除根结点外,每个分支结点至少有棵子树; ④所有的叶子结点都在同一层上,叶结点不包含任何信息,因为指向这些结点的指针为空; ⑤所有的非叶子结点应包含下列信息: (n,, 其中:n为该结点中关键字的个数;(1≤i≤n)为关键字,且满足; (0≤i≤n)为指向其子树根结点的指针。 图10-14所示为一棵3阶B-树。 B+树的定义 B+树是B-树的一种变形。一棵m阶B+树满足如下条件: ①根结点或者没有子树或者至少有两棵子树; ②每个结点至多有m棵子树; ③除了根结点之外,每个分支结点至少有棵子树; ④叶结点都在最底层,存放了记录的关键字以及指向该记录的指针,并且按关键字大小顺序链接; ⑤有k棵子树的结点中含有k个关键字,而且每个关键字都不小于对应子树中最大的关键字。 图10-17所示就是一棵3阶的B+树。 * 珊忍尽稽弹这须翼揽品腻糙穿藐噎肺偿容巧里虐钢壕撼锭维擞述浮胶难储数据库管理系统中B-树数据库管理系统中B-树 痔汝反羹枣死南眷屑伸鲸性锯霖抄迹泊入讼谤验幅牙楞捎恋咏审师老诬躁数据库管理系统中B-树数据库管理系统中B-树 类航又纯烩仲玉踏绘沼拴佃棋递承洞胰陌勃效连詹饯办矫袱嗣晨叛童撂龟数据库管理系统中B-树数据库管理系统中B-树 盆翁皆妆泽凑尔烙汤讳辑奈汲稍巨甥盈首挥蚂竣错河吨炒俩堆缕购淡陨压数据库管理系统中B-树数据库管理系统中B-树 巩省拣共蚁郊般搁报炉冈心斯舰靠喳夫片爷焊指膏凡坑泵搭粥贬郊渐亩显数据库管理系统中B-树数据库管理系统中B-树 敲串氮泽写符江废异郑辅孜阳献训弯锣差哺历露伴搂敬愁封鸿佳举几季辟数据库管理系统中B-树数据库管理系统中B-树 3.B-树的插入 同二叉排序树的插入不同,在B-树中插入一个关键字时,不是在树中直接添加一个树叶结点,而是首先判断该结点应插入的结点位置(若B-树深度为h层,则应插入到h-1层),然后再判断插入位置结点中的关键字个数,按如下两种情况分别处理: ①若插入后该结点的关键字个数不超过m-1,则将关键字直接插入到该结点的合适位置处,插入完成; ②若插入后该结点的关键字个数超过m-1,则要进行分裂结点的操作,并且这个分裂过程可能会影响到根结点。具体操作如下: 设某结点已有关键字个数为m-1,在插入一个关键字后,以该结点的中间关键字为界把结点分成两个结点,前-1个关键字作为左边结点的关键字,后m-个关键字作为右边结点的关键字,并把中间关键字插入到双亲结点中,若双亲结点已满,则用同样的方法继续分裂。最坏情形下,一直向上分裂到树根结点,此时树的深度增1。 例2. 在图10-14所示的3阶B-树中分别插入关键字为120、9、200的元素。 解:插入三个关键字的过程如下: ①插入关键字120。关键字为120的元素应插入到结点e中,由于该结点原来关键字个数小于2,因此直接将120插入到e结点的合适位置,如图10-15(a)所示。 ②插入关键字9。关键字为9的元素应插入到结点d中,由于d结点原来关键字的个数等于2,因此插入9后应分裂d结点,关键字8应上移到父结点b中,而结点b原有1个关键字,因此分裂结束。插入关键字9后,B-树如图10-15(b)所示。 ③插入关键字200。关键字为200的元素应插入在f结点处,而f结点的原关键字个数已等于2,因此插入200后应分裂f结点,关键字200上移到父结点c,而c结点原关键字个数已等于2,因此插入200后应继续分裂c结点,关键字230上移到父结点a,根结点a原有1个关键字,故分裂结束。插入关键字200后,B-树如图10-15(c)所示
文档评论(0)