本文主要是介绍中山大学数据库作业三,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
欢迎访问我的个人博客:Talk is cheap. Show me the code!。我相信会有所收获的。
中山大学数据库作业三
10.1考虑图所示的秩d=2的B+树索引。
(1)把码值为9的数据项插入原始树,显示得到的树。
答:
(1)在第二个叶子节点中8* 和 10* 之间插入 9*,如图(红色标记)
(2)把码值为3的数据项插入原始树,显示得到的B+树。插入需要多少页的读操作和多少页的写操作?
答:
码值为3应插入该原始树的第一个叶子节点,由于该原始树的秩d=2,叶子节点最多只能有四个数据项,所以插入码值3发生分裂,应进行重分布。重分布后的图如下所示(各叶子节点之间的连接省略)。该插入需要4页的读操作和5页的写操作,产生2个新页。
(3)把码值为8的数据项从原始树中删除,显示得到的B+树,并假设对可能的重分布检查左兄弟。
答:
把码值为8的数据项删除,造成所在的叶子节点数据项只有1个(小于d=2),左兄弟有4个数据项,所以可把码值为6的数据项与10合并。如图所示(各叶子节点之间的连接省略)
(4)把码值为8的数据项从原始树中删除,显示得到的B+树,并假设对可能的重分布检查右兄弟。
答:
把码值为8的数据项删除,造成所在的叶子节点数据项只有1个(小于d=2),右兄弟只有2个数据项,所以只能把码值为10的数据项与右兄弟合并。如图所示(各叶子节点之间的连接省略)
(5)从原始树开始插入码值为46的数据项后,再删除码值为52的数据项,显示得到的B+树。
答:
从原始树插入码值为46的数据项,直接插入在第五个叶子节点即可,该原始树不会发生重分布。删除码值为52的数据项,只能与右兄弟合并,合并后只有2个叶子节点,但由于其祖先需有三个指针,所以祖先需要重分布。如图(各叶子节点之间的连接忽略)
(6)把码值为91的数据项从原始树中删除,显示得到的B+树。
答:
与(5)同理,如图(各叶子节点之间的连接忽略)
(7)从原始树开始插入码值为
这篇关于中山大学数据库作业三的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!