数据库系统实现习题 全.docx

上传人:b****7 文档编号:8971293 上传时间:2023-02-02 格式:DOCX 页数:47 大小:576.34KB
下载 相关 举报
数据库系统实现习题 全.docx_第1页
第1页 / 共47页
数据库系统实现习题 全.docx_第2页
第2页 / 共47页
数据库系统实现习题 全.docx_第3页
第3页 / 共47页
数据库系统实现习题 全.docx_第4页
第4页 / 共47页
数据库系统实现习题 全.docx_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

数据库系统实现习题 全.docx

《数据库系统实现习题 全.docx》由会员分享,可在线阅读,更多相关《数据库系统实现习题 全.docx(47页珍藏版)》请在冰豆网上搜索。

数据库系统实现习题 全.docx

数据库系统实现习题全

(达建松2141280)习题2.2.1

Megatron777磁盘具有以下特性:

1)有10个盘面,每个盘面有100000个磁道。

2)磁道平均有1000个扇区,每个扇区为1024字节

3)每个磁道的20%被用于间隙。

4)磁盘旋转为10000转/min。

5)磁头移动n个磁道所需要的时间是1+0.0002nms。

回答下列有关Megatron777的问题。

a)磁盘的容量是多少?

b)如果磁道是在直径3.5英寸的圆面上,那么一个磁道的扇区中的平均位密度是多少?

c)最大寻道时间是多少?

d)最大旋转等待时间是多少?

e)如果一个块是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)磁道平均有1000个扇区,每个扇区为1024字节.

3)每个磁道的20%被用于间隙.

c)最大寻道时间是磁头跨越全部柱面所花费的时间。

即1+0.0002*99999=20.9998ms

已知:

1)有10个盘面,每个盘面有100000个磁道。

5)磁头移动n个磁道所需要的时间是1+0.0002nms。

d)最大旋转等待时间是磁头旋转一圈的时间。

即1/(10000/60)=6ms

已知:

4)磁盘旋转为10000转/min。

e)该块占用64个扇区,为此,磁头必须越过64个扇区和扇区之间的63个间隙。

由于间隙合在一起占72度圆弧,而扇区覆盖剩余288度圆弧,则被它们覆盖的圆弧的总度数为:

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请求,磁头的初始位置在磁道32000,图2-9的请求已经产生。

在下列两种情况下,每一种请求在何时可以完全得到服务?

a)我们采用电梯调度算法(起初朝任何一个方向开始移动都是允许的)。

b)我们采用先到达先服务调度。

请求的柱面

到达时间

8000

0

48000

1

4000

10

40000

20

图2-94个块访问请求的到达时间

Megatron747磁盘的平均寻道时间、旋转等待时间和传输时间分别为6.46、4.17和0.13(所有时间均以ms计算)。

因为每个块访问导致0.13ms传输时间和4.17ms平均旋转等待时间,即无论寻道时间是多少,都需为每一次块访问加上4.3ms。

寻道时间可通过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后,磁头由柱面8000向柱面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的请求已经到达(在第20ms到达的),故而,在访问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

40000

20

31.1

对于FCFS算法而言每个请求的完成时间如下表:

请求的柱面

到达时间

完全得到服务时间

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

假设我们使用两台Megatron747磁盘互相作为镜像。

然而,我们使第一个磁盘的磁头保持在柱面的靠内一半,第二个磁盘的磁头保持在柱面靠外的一半,而不是允许从两个磁盘都能读任何的块。

假设读请求是对随机的磁道,我们始终不必去写:

a)系统的能够读块的平均速率是多少?

读块的平均速率为之前单个磁头的两倍。

b)这个速率与无任何约束的镜像Megatron747磁盘的平均速率相比如何?

平均速率一样。

c)你预计该系统的缺点是什么?

1.缺点是以空间为代价换取时间。

2.如果其中的一个磁头坏了,则读取操作就出问题了,每次只能读取一半的数据。

2.4.1计算下列位序列的奇偶校验位:

a)00111011。

b)00000000。

c)10101101。

解:

定义:

如果有奇数个数据盘的第j位为1,在冗余盘中,我们选取位j为1,;如果在数据盘中的第j位有偶数个1,我们选取冗余盘的位j为0。

即:

有奇数个1,为1;有偶数个1,为0。

00111011

00000000

10101101

-------------------------

10010110

(薛鑫)2.4.2

如果我们在一个串末附加一个位作为该串奇数位置的奇偶校验位,另一个位作为该串各偶数位置的奇偶位,我们就有了与一个串关联的两个奇偶位。

对于习题2.4.1的每一个串,找出按这种方法计算的两个位。

a)00111011。

b)00000000。

c)10101101。

解:

RAID5级,不必将一个盘作为冗余盘,而把其他盘作为数据盘;相反我们可以把每个磁盘作为某些块的冗余盘来处理。

12345678

---------------------------------------

0011101110

0000000000

1010110110

(韩月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->01101110

2->01110110

3->11000000

4->00101011

冗->11110011

b.1->10111010

2->11110000

3->11111000

4->00110011

冗->10000001

2.4.8

假设习题2.4.5第1个盘得块被改变为01010101。

其他盘上相应的块必须做什么样的改变?

解:

a)由数据盘各位的模2和可求得冗余盘的各位,即00000110。

当盘1由01010110改为01010101时,求盘1旧值与新值的模2和,得到00000011。

将冗余块自身和00000011求模2和,得到新的冗余块,即00000101。

所以盘1变为01010101,冗余盘变为00000101,盘2、3、4没变化。

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、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)

00011011

7)

10001001

图2-11所有磁盘的第一块

答案:

a)前4个盘是数据盘,盘5~7是冗余盘.

盘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(该块的旧值)的模2和,则得到00101010;其中为1的位为3、5、7,所以只要对冗余块5和7的3、5、7位取反,故盘5和盘7的重写值分别为10101100、11001111。

磁盘

内容

数据块1)

00110100

2)

11100111

3)

01111111

4)

10000100

冗余块5)

10101100

6)

01010111

7)

11001111

(樊星宇2141312)2.4.10

RAID6方案从磁盘崩溃中恢复

使用足够多的冗余盘处理多个磁盘的崩溃,例如,基于海明码的纠错技术

7个盘,其中1~4为数据盘,5~7为冗余盘。

数据盘与冗余盘之间的关系由一个37矩阵描述如下:

1.盘5的位是盘1,2,3相应位的模2和。

2.盘6的位是盘1,2,4相应位的模2和。

3.盘7的位是盘1,3,4相应位的模2和。

习题2.4.10假设块只有8位长,采用带有7个磁盘的RAID6级方案,描述从下列故障中恢复所要采取的步骤:

a)盘1和盘4;b)盘1和盘7;c)盘2和盘5。

(蒋娜2141288)习题3.1.1

假定一个存储块可存放5个记录,或20个键-指针对。

已知有n个记录,如果表示成n的函数,创建以下两种数据文件各需要多少个数据块:

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个键-指针对,但是存放数据和索引的数据块都要求最多只能填满80%,重做习题3.1.1.

答案:

答:

我们知道一个记录在存放时有数据文件和索引文件,它们分别占用存储块,由题中所述可知在索引块中我们采用了稠密索引和稀疏索引,这样两种形式。

只要分别计算出这两个部分的存储块的大小,再求和就能求出需要的存储块。

下面分别来求:

a)一个数据文件和一个稠密索引

数据文件的大小容易知道,由已知给定的记录数为n,且每个存储块可存放50个记录,数据块充满度不许超过80%。

我们得到数据文件所占用的存储块大小为:

n/(50*0.8);

稠密索引是指块中只存放记录的键以及指向记录本身的指针,数据文件中每个键在索引中都被表示出来,且稠密索引文件中的索引块保持键的顺序和文件中的排序顺序一致,又由已知每个存储块可存放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);

稀疏索引与稠密索引不同点在于,稀疏索引在索引中只为每个数据块存放一个键。

但要注意如果本题按照书中所给出的稀疏索引的比例存放记录的话,参见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的间接桶模式:

a)如果平均每个查找键值出现在10个记录中,存放在5000个记录和它的辅助索引共需要多少块?

如果不使用桶又需要多少块?

b)如果给定键值的记录数没有限制,所需的最大和最小存储块数各为多少?

图3-7通过在辅助索引中使用间接层以节省空间

解:

a)

①使用桶时

每个数据存储块可以存储5个记录,所以5000个记录需要的数据存储块个数为

5000/5=1000

每个桶存储块可以存放100个指针,所以存放这5000个记录辅助索引需要的桶存储块个数为

5000/100=50

每个索引块设有20个键-指针对,平均每个键值出现在10个记录中,所以存放这5000个记录的辅助索引需要的索引块数为

5000/(20*10)=25

总块数=5000/5+5000/100+5000/(20*10)

=1000+50+25=1075

②不使用桶时

索引指针直接对应到相应的数据存储块的记录上块总数为

5000/5+5000/20=1250

图3-5辅助索引

b)给定键值的记录数没有限制

假设给定键值的记录数为1,就可以得到最多的存储块数为

5000/5+5000/100+5000/(20*1)

=1000+50+250

=1300

假设给定键值的记录数为5000,就可以得到最少的存储块数为

5000/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树为稠密索引,叶结点中为数据文件的每一个记录设有一个键指针对。

首先有100000数据块,如果在B树底层结点平均每块有70个指针,然后有1000000/70=14286个B树块在最底层,下一层的B树需要14286/70=205个B树块,第三层需要205/70=3块,第四层需要1个根块,所以需要100000+14286+205+3+1=114495块。

(2)匹配记录有1000个,首先1000/10=100数据块,1000/70=15块,15/70=1块,第三层需要1块,第四层需要1块。

所以需要100+15+1+1+1=118块。

b)同a)一样,但组成数据文件的记录没有特定顺序;每块存放20个记录。

[b]

(1)1000000/10=100000块。

首先有100000数据块,如果在B树底层结点平均每块有70个指针,然后有1000000/70=14286个B树块在最底层,下一层的B树需要14286/70=205个B树块,第三层需要205/70=3块,第四层需要1个根块,所以需要100000+14286+205+3+1=114495块。

(2)匹配记录有1000个,首先1000/10=100数据块,1000/70=15块,15/70=1块,第三层需要1块,第四层需要1块。

1000个记录可能分布在1000个块中,所以需要1000+15+1+1+1=1018块。

c)同a)一样,但B树为稀疏索引。

[c]

(1)1000000/10=100000块。

若B树为稀疏索引,在叶结点中为数据文件的每个块设有一个键指针对。

首先有100000数据块,如果在B树底层结点平均每块有70个指针,然后有100000/70=1429个B树块在最底层,下一层的B树需要1429/70=21个B树块,第三层需要21/70=1块,第四层需要1个根块。

所以需要100000+1429+21+1+1=101452

(2)匹配记录有1000个,1000/10=100,首先100/70=2块,2/70=1块,第三层需要1块,第四层需要1块。

所以需要100+2+1+1+1=105块。

d)数据文件是顺序文件,且B-树是稀疏索引,但数据文件的每个基本块有一个溢出块。

平均来讲,基本块是满的,而溢出块只半满。

不过,记录在基本块和溢出块中没有特定的顺序。

[d]

(1)但数据文件的每个基本块有一个溢出块。

平均来讲基本块是满的,而溢出块只是半满。

所以基本快的记录为10个,溢出块记录为5个。

所以有1000000/15=66667个数据块。

然后有66667/70=953个B树块在最低层,下一层的B树需要953/70=14个B树块,第三层需要14/70=1。

因此有66667的数据块和953+14+1=968块个索引块。

一共67635块。

(2)1000/15=67块,67/70=1块,第二层需要1块,第三层需要1块。

因此有67个数据块和3个索引块。

总共70块磁盘I/O。

e)B树的叶结点中不放指向数据记录的指针,而是保存记录本身。

每块可存放10个记录,但平均每个叶结点的充满度为70%,即每个叶结点存放7个记录。

[e]

(1)1000000/7=142858块

如果在B树底层结点平均每块有70个指针,然后有142858/70=2041个B树块在最底层,下一层的B树需要2041/70=30个B树块,第三层需要30/70=1块,所以需要142858+2041+30+1=144930块。

(2)查询匹配的记录有1000个,就需要1000/7=143块,143/70=3块,3/70=1块,第三层需要1块。

所以总共需要143+3+1+1=148块。

(谢胜男2141283)习题3.2.2

假设查询是范围查询且匹配的记录有200个,在这种情况下,重做习题3.2.1。

假定存储块能放10个记录或者99个键和100个指针,再假定B树结点的平均充满程度为70%;即有69个键和70个指针。

我们可以用B树作为几种不同结构的一部分。

对下面描述的每种结构,确定:

(1)1000000个记录的文件所需的总块数;

(2)假设查询是范围查询且匹配的记录有200个,检索一个给定键值的记录所需的平均磁盘I/O数。

可以假定最初在主存中不存在任何东西,并且查找键是记录的主键。

a)数据文件是按查找键排序的顺序文件,每块存放20个记录。

B-树为稠密索引。

b)同a)一样,但组成数据文件的记录没有特定顺序;每块存放20个记录。

c)同a)一样,但B树为稀疏索引。

d)数据文件是顺序文件,且B-树是稀疏索引,但数据文件的每个基本块有一个溢出块。

平均来讲,基本块是满的,而溢出块只半满。

不过,记录在基本块和溢出块中没有特定的顺序。

!

e)B树的叶结点中不放指向数据记录的指针,而是保存记录本身。

每块可存放10个记录,但平均每个叶结点的充满度为70%,即每个叶结点存放7个记录。

解:

a)

(1)1000000/20=50000块

B树为稠密索引,叶结点中为数据文件的每一个记录设有一个键指针对。

首先有50000数据块,如果在B树底层结点平均每块有70个指针,然后有1000000/70=14286个B树块在最底层,下一层的B树需要14286/70=205个B树块,第三层需要205/70=3块,第四层需要1个根块,所以需要50000+14286+205+3+1=64495块。

(2)匹配记录有200个,首先200/20=10数据块,200/70=3块,3/70=1块,第三层需要1块,第四层需要1块。

所以需要10+3+1+1+1=16块。

b)

(1)1000000/20=50000块

B树为稠密索引,叶结点中为数据文件的每一个记录设有一个键指针对。

首先有50000数据块,如果在B树底层结点平均每块有70个指针,然后有1000000/70=14286个B树块在最底层,下一层的B树需要14286/70=205个B树块,第三层需要205/70=3块,第

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1