数据库系统实现习题-全.pdf
《数据库系统实现习题-全.pdf》由会员分享,可在线阅读,更多相关《数据库系统实现习题-全.pdf(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、word 文档 可自由复制编辑(达建松 2141280)习题 2.2.1 M egatron 777 磁盘具有以下特性:1)有 10 个盘面,每个盘面有 100000 个磁道。2)磁道平均有 1000 个扇区,每个扇区为 1024 字节 3)每个磁道的 20%被用于间隙。4)磁盘旋转为 10000 转/min。5)磁头移动 n 个磁道所需要的时间是 1+0.0002n ms。回答下列有关 Megatron777 的问题。a)磁盘的容量是多少?b)如果磁道是在直径 3.5 英寸的圆面上,那么一个磁道的扇区中的平均位密度是多少?c)最大寻道时间是多少?d)最大旋转等待时间是多少?e)如果一个块是
2、65536 字节(即 64 扇区),一个块得传输时间是多少?f)平均寻道时间是多少?g)平均旋转等待时间是多少?答案:a)磁盘容量=盘面数*磁道数*扇区数*扇区容量=10*100000*1000*1024 字节=210*109字节 注释:已知 1)有 10 个盘面,每个盘面有 100000 个磁道。2)磁道平均有 1000 个扇区,每个扇区为 1024 字节.b)一个磁道存放存放 1000*1024*8=8192000bits.直径为 3.5 英尺那么中间磁道直径为 3.5/2(英寸)中间扇区所占的周长是 80*3.5/2(英寸)所以,每个磁道的扇区中的平均密度是 注释:已知:2)磁道平均有
3、1000 个扇区,每个扇区为 1024 字节.3)每个磁道的 20%被用于间隙.c)最大寻道时间是磁头跨越全部柱面所花费的时间。即 1+0.0002*99999=20.9998ms 已知:1)有 10 个盘面,每个盘面有 100000 个磁道。5)磁头移动 n 个磁道所需要的时间是 1+0.0002n ms。d)最大旋转等待时间是磁头旋转一圈的时间。即 1/(10000/60)=6ms 已知:4)磁盘旋转为 10000 转/min。e)该块占用 64 个扇区,为此,磁头必须越过 64 个扇区和扇区之间的 63 个间隙。由于间隙合在一起占 72 度圆弧,而扇区覆盖剩余 288 度圆弧,则被它们覆
4、盖的圆弧的总度数word 文档 可自由复制编辑 为:72*(63/1000)+288*(64/1000)=22.968则 传 输 时 间 是(22.968/360)*0.6ms=0.03828ms 已知:3)每个磁道的 20%被用于间隙。2)磁道平均有 1000 个扇区 。d)中最大旋转等待时间为 6ms。f)磁头行进的平均距离是跨越柱面的 1/3,则平均寻道时间是:1+0.001*(100000/3)=34.33ms g)平均旋转等待时间为磁盘旋转半周所需时间:(1/2)*6ms=3ms (潘达)习题 2.3.1 假设我们正在为 Megatron747 磁盘调度 I/O 请求,磁头的初始位置
5、在磁道 32000,图 2-9 的请求已经产生。在下列两种情况下,每一种请求在何时可以完全得到服务?a)我们采用电梯调度算法(起初朝任何一个方向开始移动都是允许的)。b)我们采用先到达先服务调度。请求的柱面 到达时间 8000 0 48000 1 4000 10 40000 20 图 2-9 4 个块访问请求的到达时间 Megatron747 磁盘的平均寻道时间、旋转等待时间和传输时间分别为 6.46、4.17 和 0.13(所有时间均以 ms 计算)。因为每个块访问导致 0.13ms 传输时间和 4.17ms 平均旋转等待时间,即无论寻道时间是多少,都需为每一次块访问加上 4.3ms。寻道时
6、间可通过 Megatron747的规则计算:1+磁道数/4000(1+磁道数/500)。对于电梯调度算法,计算方式及结果如下。对柱面 8000 的第一个请求需要进行寻道,因为磁头初始位置不是 8000。这样访问 8000 完成的寻道时间为 1+(32000-8000)/4000ms,即在时间 1+(32000-8000)/4000+4.3=11.3ms 处第一次访问将完成。在此之前,对柱面 48000 和4000 访问的请求分别于第 1 和第 10 时间到达,由于沿着柱面从高到低(32000-8000)方向还有请求 4000,则先处理 4000 的请求。即在第 11.3ms 后,磁头由柱面 8
7、000 向柱面 4000 移动,此段寻道时间为 1+(8000-4000)/4000=2ms,则 4000 访问完成时间为 11.3+2+4.3=16.8ms。当访问 4000 柱面完成时,仅有访问 48000 柱面的请求未完成,因此磁头将沿着从低到高移动,移动到 48000 需要 1+(48000-4000)/4000=12ms,即在 12+16.8=28.8ms 才可到达 48000柱面。在向48000移动过程中,移动到40000柱面的寻道时间为1+(40000-4000)/4000=10ms,即在16.8+10=26.8ms访问到40000,在此之前访问40000的请求已经到达(在第20
8、ms到达的),故而,在访问 48000 之前,先处理访问 40000 的请求,即对 40000 柱面的请求在16.8+10+4.3=31.3ms处 理 完 成。从 柱 面40000到48000的 寻 道 时 间 为1+(48000-40000)/4000=3ms,则 48000 的请求处理完成时间为 31.1+3+4.3=38.4ms。综上所述,对于电梯调度算法而言每个请求的完成时间如下表:请求的柱面 到达时间 完全得到服务时间 8000 0 11.3 48000 1 38.4 4000 10 16.8 word 文档 可自由复制编辑 40000 20 31.1 对于 FCFS 算法而言每个请
9、求的完成时间如下表:请求的柱面 到达时间 完全得到服务时间 8000 0 0+7+4.3=11.3 48000 1 11.3+11+4.3=26.6 4000 10 26.6+12+4.3=42.9 40000 20 42.9+10+4.3=57.2 (周红磊 2141284)习题 2.3.2 假设我们使用两台 Megatron 747 磁盘 互相作为镜像。然而,我们使第一个磁盘的磁头保持在柱面的靠内一半,第二个磁盘的磁头保持在柱面靠外的一半,而不是允许从两个磁盘都能读任何的块。假设读请求是对随机的磁道,我们始终不必去写:a)系统的能够读块的平均速率是多少?读块的平均速率为之前单个磁头的两倍。
10、b)这个速率与无任何约束的镜像 Megatron 747 磁盘的平均速率相比如何?平均速率一样。c)你预计该系统的缺点是什么?1.缺点是以空间为代价换取时间。2.如果其中的一个磁头坏了,则读取操作就出问题了,每次只能读取一半的数据。2.4.1 计算下列位序列的奇偶校验位:a)00111011。b)00000000。c)10101101。解:定义:如果有奇数个数据盘的第 j 位为 1,在冗余盘中,我们选取位 j 为 1,;如果在数据盘中的第 j 位有偶数个 1,我们选取冗余盘的位 j 为 0。即:有奇数个 1,为 1;有偶数个 1,为 0。0 0 1 1 1 0 1 1 0 0 0 0 0 0
11、0 0 1 0 1 0 1 1 0 1-10010110 (薛鑫)2.4.2 如果我们在一个串末附加一个位作为该串奇数位置的奇偶校验位,另一个位作为该串各偶数位置的奇偶位,我们就有了与一个串关联的两个奇偶位。对于习题 2.4.1 的每一个串,找出按这种方法计算的两个位。word 文档 可自由复制编辑 a)00111011。b)00000000。c)10101101。解:RAID5 级,不必将一个盘作为冗余盘,而把其他盘作为数据盘;相反我们可以把每个磁盘作为某些块的冗余盘来处理。12345678-0 0 1 1 1 0 1 1 10 0 0 0 0 0 0 0 0 00 1 0 1 0 1 1
12、0 1 10 (韩月 2141276)2.4.7 采用如习题 2.4.5 一样的 RAID4 级方案,假设数据盘 1 有故障。在下列情况下恢复该磁盘的块:a)盘 2 至盘 4 的内容为 01110110、11000000 和 00101011,同时冗余盘保存着 11110011。b)盘 2 至盘 4 的内容为 11110000、11111000、00110011,同时冗余盘保存着 10000001。解:a.1-0 1 1 0 1 1 1 0 2-0 1 1 1 0 1 1 0 3-1 1 0 0 0 0 0 0 4-0 0 1 0 1 0 1 1 冗-1 1 1 1 0 0 1 1 b.1-1
13、 0 1 1 1 0 1 0 2-1 1 1 1 0 0 0 0 3-1 1 1 1 1 0 0 0 4-0 0 1 1 0 0 1 1 冗-1 0 0 0 0 0 0 1 2.4.8 假设习题 2.4.5 第 1 个盘得块被改变为 01010101。其他盘上相应的块必须做什么样的改变?解:a)由数据盘各位的模 2 和可求得冗余盘的各位,即 00000110。当盘 1 由 01010110 改为 01010101 时,求盘 1 旧值与新值的模 2 和,得到 00000011。将冗余块自身和 00000011求模 2 和,得到新的冗余块,即 00000101。所以盘 1 变为 01010101,
14、冗余盘变为 00000101,盘 2、3、4 没变化。word 文档 可自由复制编辑 b)由数据盘各位的模 2 和可求得冗余盘的各位,即 01110101。当盘 1 由 11110000 改为01010101 时,求盘 1 旧值与新值的模 2 和,得到 10100101。将冗余块自身和 10100101 求模 2 和,得到新的冗余块,即 11010000。所以盘 1 变为 01010101,冗余盘变为 11010000,盘 2、3、4 没变化。(张柳影 2141286)习题 2.4.9 如果我们有例 2.13 的 RAID6 级方案,4 个数据盘的块分别为 00110100、11100111、
15、01010101和 10000100。a)冗余盘的相应块是什么?b)如果第 3 个盘的块被重写成 01111111,必须采取哪些步骤以改变其他盘?注例 2.13 内容:假设块只有 8 位长,并且关注在我们的 RAID6 级示例中用到的 7 个磁盘的第一块。首先,假设数据盘和冗余盘的第一块的内容如图 2-11 所示。请注意,盘 5 的块是前 3 个盘的块模 2和,第 6 行是行 1、2、4 的模 2 和,而最后一行是行 1、3、4 的模 2 和。磁盘 内容 数据块 1)11110000 2)10101010 3)01010101 4)10000100 冗余块 5)01100010 6)00011
16、011 7)10001001 图 2-11 所有磁盘的第一块 答案:a)前 4 个盘是数据盘,盘 57 是冗余盘.盘 5 的块是前 3 个盘的块的模 2 和,盘 5 块是 10000110;盘 6 是盘 1,2 和 4 的模 2 和,盘 6 块是 01010111;盘 7 是盘 1,3,4 的模 2 和,盘 7 块是 11100101。磁盘 内容 数据块 1)00110100 2)11100111 3)01010101 4)10000100 冗余块 5)10000110 6)01010111 7)11100101 b)如果第3个盘的块被重写成01111111,求这个序列和序列01010101(
17、该块的旧值)的模2和,则得到 00101010;其中为 1 的位为 3、5、7,所以只要对冗余块 5 和 7 的 3、5、7 位取反,故盘 5 和盘 7 的重写值分别为 10101100、11001111。磁盘 内容 数据块 1)00110100 2)11100111 word 文档 可自由复制编辑 3)01111111 4)10000100 冗余块 5)10101100 6)01010111 7)11001111 (樊星宇 2141312)2.4.10 RAID 6 方案 从磁盘崩溃中恢复 使用足够多的冗余盘处理多个磁盘的崩溃,例如,基于海明码的纠错技术 7 个盘,其中 14 为数据盘,57
18、 为冗余盘。数据盘与冗余盘之间的关系由一个 37 矩阵描述如下:1.盘 5 的位是盘 1,2,3 相应位的模 2 和。2.盘 6 的位是盘 1,2,4 相应位的模 2 和。3.盘 7 的位是盘 1,3,4 相应位的模 2 和。习题 2.4.10 假设块只有 8 位长,采用带有 7 个磁盘的 RAID 6 级方案,描述从下列故障中恢复所要采取的步骤:a)盘 1 和盘 4;b)盘 1 和盘 7;c)盘 2 和盘 5。word 文档 可自由复制编辑 (蒋娜 2141288)习题 3.1.1 假定一个存储块可存放 5 个记录,或 20 个键-指针对。已知有 n 个记录,如果表示成 n 的函数,创建以下
19、两种数据文件各需要多少个数据块:a)稠密索引;b)稀疏索引 答案:解:a.稠密索引 因为一个存储块存储 5 个记录,n 个存储记录需要 n/5 个数据块,稠密索引需要为每个记录建立键-指针对,所以键-指针需要 n/20 个数据库,所以表示成 n 的函数是 n/5+n/20=n/4 b.稀疏索引 因为一个存储块存储 5 个记录,n 个存储记录需要 n/5 个数据块,但是稀疏索引需要为每个数据块建立键-指针对,所以键-指针对需要(n/5)/20 个数据块,所以表示成 n 的函数是n/5+(n/5)/20=21n/100 习题 3.1.2 如果数据块中可以存放 50 个记录,或 500 个键-指针对
20、,但是存放数据和索引的数据块都要word 文档 可自由复制编辑 求最多只能填满 80%,重做习题 3.1.1.答案:答:我们知道一个记录在存放时有数据文件和索引文件,它们分别占用存储块,由题中所述可知在索引块中我们采用了稠密索引和稀疏索引,这样两种形式。只要分别计算出这两个部分的存储块的大小,再求和就能求出需要的存储块。下面分别来求:a)一个数据文件和一个稠密索引 数据文件的大小容易知道,由已知给定的记录数为 n,且每个存储块可存放 50 个记录,数据块充满度不许超过 80%。我们得到数据文件所占用的存储块大小为:n/(50*0.8);稠密索引是指块中只存放记录的键以及指向记录本身的指针,数据
21、文件中每个键在索引中都被表示出来,且稠密索引文件中的索引块保持键的顺序和文件中的排序顺序一致,又由已知每个存储块可存放 500 个键-指针对,索引块充满度不许超过 80%。这样我们就能得到索引文件所占用的存储块大小为:n/(500*0.8)。所以总的结果=数据文件所占用的存储块+索引文件所占用的存储块=n/(50*0.8)+n/(500*0.8)=(11/400)*n b)一个数据文件和一个稀疏索引 同上,数据文件的大小容易知道,由已知给定的记录数为 n,且每个存储块可存放 50 个记录,数据块充满度不许超过 80%。我们得到数据文件所占用的存储块大小为:n/(50*0.8);稀疏索引与稠密索
22、引不同点在于,稀疏索引在索引中只为每个数据块存放一个键。但要注意如果本题按照书中所给出的稀疏索引的比例存放记录的话,参见 P92.则又由已知每个存储块可存放 500 个键-指针对,索引块充满度不许超过 80%。这样我们就能得到索引文件所占用的存储块大小为:n/(50*500*0.8)。这样才能保证结果的正确性。所以总的结果=数据文件所占用的存储块+索引文件所占用的存储块=n/(50*0.8)+(n/50*0.8)/500*0.8=401n/16000 (万康 2141289)习题 3.1.5 假定一个存储块可以存放 5 个记录,或 20 个键-指针对,或 100 个指针。如果我们使用图3-7
23、的间接桶模式:a)如果平均每个查找键值出现在 10 个记录中,存放在 5000 个记录和它的辅助索引共需要多少块?如果不使用桶又需要多少块?b)如果给定键值的记录数没有限制,所需的最大和最小存储块数各为多少?word 文档 可自由复制编辑 图 3-7 通过在辅助索引中使用间接层以节省空间 解:a)使用桶时 每个数据存储块可以存储 5 个记录,所以 5000 个记录需要的数据存储块个数为 5000/5=1000 每个桶存储块可以存放 100 个指针,所以存放这 5000 个记录辅助索引需要的桶 存储块个数为 5000/100=50 每个索引块设有 20 个键-指针对,平均每个键值出现在 10 个
24、记录中,所以存放这 5000 个记录的辅助索引需要的索引块数为 5000/(20*10)=25 总块数=5000/5+5000/100+5000/(20*10)=1000+50+25=1075 不使用桶时 索引指针直接对应到相应的数据存储块的记录上块总数为 5000/5+5000/20=1250 word 文档 可自由复制编辑 图 3-5 辅助索引 b)给定键值的记录数没有限制 假设给定键值的记录数为 1,就可以得到最多的存储块数为 5000/5+5000/100+5000/(20*1)=1000+50+250 =1300 假设给定键值的记录数为 5000,就可以得到最少的存储块数为 5000
25、/5+5000/100+1=1051 (张恩斌 2141287)习题 3.2.1 假定存储块能放 10 个记录或者 99 个键和 100 个指针,再假定 B 树结点的平均充满程度为70%;即有 69 个键和 70 个指针。我们可以用 B 树作为几种不同结构的一部分。对下面描述的每种结构,确定:(1)1000000 个记录的文件所需的总块数;(2)检索一个给定键值的记录所需的平均磁盘 I/O 数。可以假定最初在主存中不存在任何东西,并且查找键是记录的主键。a)数据文件是按查找键排序的顺序文件,每块存放 20 个记录。B-树为稠密索引 a(1)1000000/10=100000 块。B 树为稠密索
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 实现 习题
限制150内