索引与散列结构文档格式.docx
- 文档编号:16146903
- 上传时间:2022-11-20
- 格式:DOCX
- 页数:27
- 大小:43.22KB
索引与散列结构文档格式.docx
《索引与散列结构文档格式.docx》由会员分享,可在线阅读,更多相关《索引与散列结构文档格式.docx(27页珍藏版)》请在冰豆网上搜索。
第一级索引有255*128=32640个索引项,作为稀疏索引,每个索引项索引一个页块,则索引文件中可存放32640*63=2056320。
397
HelloWorld!
82
XYZ
1038
Thisstringisratherlong
1037
ThisisShorter
42
ABC
2222
HellonewWorld!
10-4假设在数据库文件中的每一个记录是由占2个字节的整型数关键码和一个变长的数据字段组成。
数据字段都是字符串。
为了存放右面的那些记录,应如何组织线性索引?
将所有字符串依加入的先后次序存放于一个连续的存储空间store中,这个空间也叫做“堆”,它是存放所有字符串的顺序文件。
它有一个指针free,指示在堆store中当前可存放数据的开始地址。
初始时free置为0,表示可从文件的0号位置开始存放。
线性索引中每个索引项给出记录关键码,字符串在store中的起始地址和字符串的长度:
索引表ID堆store
关键码
串长度
串起始地址
0
HelloWorld!
XYZThisstringisratherlongThis
42
3
56
82
12
isShorterABCHellonewWorld!
free
397
1037
15
41
1038
26
2222
16
59
10-5设有一个职工文件:
记录地址
职工号
姓名
性别
职业
年龄
籍贯
月工资(元)
10032
034
刘激扬
男
教师
29
山东
720.00
10068
064
蔡晓莉
女
32
辽宁
1200.00
10104
073
朱力
实验员
26
广东
480.00
10140
081
洪伟
36
北京
1400.00
10176
092
卢声凯
28
湖北
10212
123
林德康
行政秘书
33
江西
10248
140
熊南燕
27
上海
780.00
10284
175
吕颖
江苏
10320
209
袁秋慧
24
其中,关键码为职工号。
试根据此文件,对下列查询组织主索引和倒排索引,再写出搜索结果关键码。
(1)男性职工;
(2)月工资超过800元的职工;
(3)月工资超过平均工资的职工;
(4)职业为实验员和行政秘书的男性职工;
(5)男性教师或者年龄超过25岁且职业为实验员和教师的女性职工。
主索引月工资倒排索引职务倒排索引
职工号
记录地址
月工资
长度
指针
职务
034
10032
480.
073
教师
6
1
064
10068
123
2
10104
175
081
10140
720.
092
4
10176
140
5
10212
209
10248
780.
实验员
7
10284
1200.
8
10320
1400.
行政秘书
性别倒排索引年龄倒排索引
性别
年龄
男
24
27
28
女
29
32
33
36
搜索结果:
(1)男性职工(搜索性别倒排索引):
{034,073,081,092,123}
(2)月工资超过800元的职工(搜索月工资倒排索引):
{064,081}
(3)月工资超过平均工资的职工(搜索月工资倒排索引){月平均工资776元}:
{064,081,140}
(4)职业为实验员和行政秘书的男性职工(搜索职务和性别倒排索引):
{073,123,175}&
&
{034,073,081,092,123}={073,123}
(5)男性教师(搜索性别与职务倒排索引):
{034,073,081,092,123}&
{034,064,081,092,140,209}={034,081,092}
年龄超过25岁且职业为实验员和教师的女性职工(搜索性别、职务和年龄倒排索引):
{064,140,175,209}&
{034,064,073,081,092,140,175,209}&
{034,064,073,081,092,123,140,175}={064,140,175}
10-6倒排索引中的记录地址可以是记录的实际存放地址,也可以是记录的关键码。
试比较这两种方式的优缺点。
在倒排索引中的记录地址用记录的实际存放地址,搜索的速度快;
但以后在文件中插入或删除记录对象时需要移动文件中的记录对象,从而改变记录的实际存放地址,这将对所有的索引产生影响:
修改所有倒排索引的指针,不但工作量大而且容易引入新的错误或遗漏,使得系统不易维护。
记录地址采用记录的关键码,缺点是寻找实际记录对象需要再经过主索引,降低了搜索速度;
但以后在文件中插入或删除记录对象时,如果移动文件中的记录对象,导致许多记录对象的实际存放地址发生变化,只需改变主索引中的相应记录地址,其他倒排索引中的指针一律不变,使得系统容易维护,且不易产生新的错误和遗漏。
10-7m=2的平衡m路搜索树是AVL树,m=3的平衡m路搜索树是2-3树。
它们的叶结点必须在同一层吗?
m阶B树是平衡m路搜索树,反过来,平衡m路搜索树一定是B树吗?
为什么?
m=3的平衡m路搜索树的叶结点不一定在同一层,而m阶B_树的叶结点必须在同一层,所以m阶B_树是平衡m路搜索树,反过来,平衡m路搜索树不一定是B_树。
10-8下图是一个3阶B树。
试分别画出在插入65、15、40、30之后B树的变化。
55
8090
45
95
85
6070
50
2535
插入65后:
5580
90
65
60
70
插入15后:
2545
35
插入40后:
3540
插入30后:
55
80
25
30
40
10-9下图是一个3阶B树。
试分别画出在删除50、40之后B树的变化。
6080
20
删除50后:
删除40后:
5580
2030
10-10对于一棵有1999999个关键码的199阶B树,试估计其最大层数(不包括失败结点)及最小层数(不包括失败结点)。
设B树的阶数m=199,则m/2=100。
若不包括失败结点层,则其最大层数为
logm/2((N+1)/2)+1=log1001000000+1=4
若使得每一层关键码数达到最大,可使其层数达到最小。
第0层最多有(m-1)个关键码,第1层最多有(m-1)2个关键码,,第h-1层最多有(m-1)h个关键码。
层数为h的B树最多有(m-1)+(m-1)2+…+(m-1)h-1=(m-1)((m-1)h–1)/(m-2)个关键码。
反之,若有n个关键码,n≤(m-1)((m-1)h–1)/(m-2),则h≥log(m-1)(n(m-2)/(m-1)+1),所以,有1999999个关键码的199阶B树的最小
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 索引 结构