数据库作业答案Word文件下载.docx
《数据库作业答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据库作业答案Word文件下载.docx(29页珍藏版)》请在冰点文库上搜索。
64/1000+360×
20%×
63/1000
=22.968度
传输时间是(22.968/360)×
6ms=0.3828ms
f)平均寻道时间是多少?
平均移动距离是移动整个磁盘的1/3,所以平均寻道时间为:
(100000×
1/3)×
0.0002+1ms=
7.67ms
g)平均旋转等待时间是多少?
平均旋转等待时间为旋转半周所需的时间,由d)可知,为:
6/2ms=3ms
习题2.2.3证明如果我们将磁头从一个随机的柱面移动到另一个随机的柱面上,平均移动距。
(忽略因有限柱面数目产生的边际效应)1/3离是扫描过整个磁盘的.
假设磁头起初以相同的概率被定为在8192个柱面的任一位置。
如果是在柱面1或柱面8192,那么移动的平均磁道数是(1+2+·
·
+8191)/8191,即大约4096磁道。
如果是在柱面4096,即中间位置,则磁头移进或移出的可能性是相同的,而且无论移进还是移出,移动距离平均来说大约是总磁道数的四分之一,即2048磁道。
计算表明,当磁头的初始位置从柱面1到柱面4094变化时,磁头需要移动的平均距离按二次方回升到4096,如上图所示。
2–x+r/2y=(1/r)x,平均行进距离y,则计算该二次函数可得我们令r=8192,初始磁道xr232r2/3/2+rx/2)|/r–x+r/2)dx=(x=r/3r-x对所有初始位置进行积分∫(x002/3/r=r/3,即越过整个磁盘的=r1/3所以平均行进距离
习题2.3.1假设我们正在为Megatron747磁盘调度I/O请求,磁头的初始位置在磁道32000,图2-9的请求已经产生。
在下面两种情况下,每一种请求在何时完全得到服务?
请求的柱面到达时间
80000
148000104000
20
40000
)我们采用电梯算法(起初朝任一方向开始移动都是允许的
请求的柱完成时计算说
800011.31+(32000-8000)/4000+4.3+0
1+(8000-4000)/4000+4.3+11.3400017.6
1+(48000-4000)/4000+4.3+17.64800033.9
1+(48000-40000)/4000+4.3+33.9
41.2
b)我们采用先到达先服务调度。
请求的柱面完成时间计算说明
800011.31+(32000-8000)/4000+4.3+0
1+(48000-8000)/4000+4.3+11.34800026.6
1+(48000-4000)/4000+4.3+26.642.94000
1+(40000-4000)/4000+4.3+42.9
57.2
平均k个随机选定的块,在我们经过所有的块之前,习题2.3.4如果我们要从一个柱面上读来说我们必须绕着柱面走多远?
xk
,...,个块的位置分别以圆周的分数标识设kx1,x2k-1k的平均值为1之间某个t值的概率为tktt,t,的概率密度为均小于x1,x2,...,xk0—k-11)tdt=k/(k+1)
∫(kt0磁道长度。
因此平均来说必须绕着柱面走k/(k+1)
另一个位作如果我们在一个串末附加一个位作为该串各奇数位置的奇偶校验位,习题2.4.2
找对于下列位序列,为该串各偶数位置的奇偶位,我们就有了与一个串关联的两个奇偶位。
出这种方法计算的两个位。
a)00111011
10
b)00000000
00
c)10101101
小时。
,更换一个盘要花10习题2.4.3假设我们使用例2.8中的镜像盘,每年故障率为5%导致数据丢失的磁盘平均故障时间是多少?
=1/876
365)小时,相当于一年的替换故障磁盘的过程花1010/(24×
=×
1/876由于我们假定磁盘的平均寿命是20年,拷贝过程中发生故障的可能性是5%1/17520
这些故年发生一次故障。
如果一个磁盘每20年年发生一次故障,那么两个磁盘之一平均101752010×
障的每17520个中有一个导致数据丢失。
换句话说,导致数据丢失的平均时间是=175200年。
一样,假个数据盘和一个冗余盘。
与例2.9假设我们使用RAID4级方案,有4习题2.4.5
设块为单字节,如果数据盘的相应块如下,给出冗余盘的块。
10111011和,11000000,00101011a)0101011000000110
010000010011110011111000,和b)11110000,01110101
1有故障。
假设数据盘在下列情况下恢2.4.52.4.7采用和习题一样的RAID4级方案,习题复该磁盘的块:
a)盘2至盘4的内容为01110110,11000000和00101011,同时冗余盘保存着11110011
01101110
b)盘2至盘4的内容为11110000,11111000和00110011,同时冗余盘保存着10000001
10111010
字节整数,的字符串,一个2习题2.5.1假设一条记录有如下顺序的字段:
一个长度为23时间(无小数点)。
如果一个SQL日期,一个SQL字段可以在任何字节处开始,a)8的倍数的字节处开始,b)字段必须在的倍数的字节处开始,字段必须在c)4这条记录占用多少字节?
8SQL时间2字节,一个SQL日期10字节,一个长度为23的字符串占用23字节,整数字节。
23+2+10+8=43字节a)24+8+16+8=56字节b)字节c)24+4+12+8=48
字节的指针和一个字4习题2.5.2假设字段同习题2.5.1,但是记录有一个首部,它由两个3种情况,计算记录长度。
a)至(c)2.5.1符组成,对习题中字段对齐的(4+4+11字节。
首部长度为假设字符为英文字符,则占4+4+1+43=52字节a)字节b)8+8+8+56=80字节c)4+4+4+48=60
地IP地址有4个字节,假设一个全球范围的地址系统中块地址由主机2.6.5习题现在,IP上的块地址组成。
磁盘)之间的设备号以及各个设备号(假设为Megatron747址,1到10000块地址需要多少字节?
字节IP地址41413字节id142位,设备号占用<
10000<
22,磁盘的设备字节柱面号2有16384个柱面——>
>
2位——字节磁道号16>
1字节磁道内块号8位——综上,块地址需要4+2+2+2+1=11字节
习题2.6.7假设我们自动混写所有指针,所用的总时间是单独混写每一个指针所用总时间的一半。
如果主存中一个指针被至少跟踪一次的概率为p,p为何值时自动混写比按需混写更有效?
设c是单独混写每一个指针所用总时间。
则自动混写总时间为c/2,按需混写的总时间是pc,根据题意,则得到关系pc>
c/2,从而p>
1/2
习题2.6.9假设我们有4096字节块,块中存储200字节长的记录。
块首部由一个偏移量表组成,如果2-19所示,它使用2字节长指针指向块内记录。
通常,每天向每块插入两条记录,删除一条记录。
删除记录必须使用一个“删除标记”代替它的指针,因为可能会有悬挂指针指向它。
更明确地说,假设任何一天删除记录总发生在插入之前。
如果刚开始时块是空的,多少天之后,不再有插入记录的空间?
2+200)2插入两条记录,同时使用2个指针指向记录,总计增加了×
(第一天,只做插入操作,=404字节。
404-200=204字节之后的每一天都先删除一条记录再增加两条记录,净增字节。
20,即在1+18=19天之后,块中剩余空间为20)由于(4096-404/204=18·
字节空间,这时候只能够再插入一条记录200+20=220在第20天,先删除一条记录,余下(202字节)。
,习题ID2.7.1一个病人记录包含以下定长字段:
病人的出生日期,社会保险号码,病人如果记录内一个指针字节长。
它还有下列变长字段:
每一个字段都是9姓名,住址和病史。
这条记录需要多少字节?
2字节整数,不包括变长字段空间,记录长度是一个需要8字节,你可以假设不需要对字段进行对齐。
字节,指向“病史”字节,指向“住址”的指针8定长字段需要3×
9=27字节,记录长度227+2+8+8=45的指针字节。
8字节,所以一共需要
2.7.3假设在习题2.7.1习题的病人记录上添加另外的可重复字段,表示胆固醇化验,每一次胆固醇化验需要一个24字节的日期和化验的整数结果。
如果
a)重复化验保存在记录中。
b)化验存储在另外一个块中,记录中存储指向化验的指针。
分别给出病人记录的格式。
b)
关系数据库系统总是倾向于尽可能使用定长元组,给出这种优先考虑的三种理2.8.1习题由。
便于修改,当一个定长记录被修改时,对存储系统没有影响,因为我们知道它占用与修)1改前完全相同的空间。
更有效地对记录进行搜索。
2)
对定长元组的删除和插入管理相对变长记录来说要简便。
3)
≤A≤习题B6.1.1假设数据库上的一致性约束是0。
判断以下各事务是否保持一致性。
a)B:
=A+B;
A:
不能保持一致性b)A:
=B+1;
B:
=A+1;
保持一致性c)A:
保持一致性
U>
;
<
U,A,10>
STARTT和U的一系列日志记录:
START习题6.2.3下面是两个事务。
请描述恢复管理T>
T,B,20>
U,C,30>
T,D,40>
COMMITT>
U,E,50>
COMMITU>
假设故障发生且出现在磁盘上的最后一条日志记包括对磁盘和日志所做的改变,器的行为,录为:
a)<
STARTT>
在磁盘上的未提交,要被撤销。
向后扫描日志,遇到记录<
,于是将A事务T、U和<
ABORTT>
被写到日志中且日志被刷新。
ABORTU>
值存为10。
最后,记录<
b)C未提交,要被撤销。
向后扫描日志,首先遇到记录<
,于是将U事务T已提交,。
最后,记录A在磁盘上的值置为10在磁盘上的值存为30。
接着遇到记录<
,并将<
<
c)
事务T已提交,U未提交,要被撤销。
,将E在磁盘上的值存为50。
,于是将C在磁盘上的值存为30。
再遇到记录<
,并将A在磁盘上的值置为10。
最后,记录<
d)<
事务T、U均被提交。
什么都不做。
习题6.2.7考虑如下日志记录序列:
STARTS>
S,A,60>
COMMITS>
START
T>
T,A,10>
STARTU>
U,B,20>
T,C,30>
STARTV>
U,D,40>
V,F,70>
COMMIT
T,E,50>
V,B,80>
COMMITV>
。
假设我们在如下日志记录中的某一条写入(主存)后立即开始一个非静止检查点:
a)<
b)<
c)<
e)<
对其中的每一个,说明:
记录。
ⅰ何时写入<
ENDCKPT>
我们需要在日志中回为了找到所有可能未完成的事务,ⅱ对于每一个可能发生故障的时刻,溯多远。
之后写入,所以在<
S,日志记录为<
STARTCKPT(S)>
a)当前活跃的事务只有<
记录。
CKPT(S)>
记录之后,那么我们可以扫描直到下一个<
START如果故障发生在<
。
之前,那么我们要回溯到<
记录停止。
如果故障发生在之后写入<
,日志记录为<
STARTCKPT(T)>
,所以在b)当前活跃的事务只有T记录。
START记录之后,那么我们可以向后扫描直到下一个如果故障发生在<
CKPT(T)>
如果故障发生在之后<
STARTCKPT(T,U)>
,所以在)当前活跃的事务有cT和U,日志记录为记录。
写入<
START记录之后,那么我们可以向后扫描直到下一个<
如果故障发生在。
那么我们要回溯到<
如果故障发生在<
之前,CKPT(T,U)>
STARTCKPT(T,U,V)>
,所以在V,日志记录为<
Ud)当前活跃的事务有T、和之后写入<
记录之后,那么我们可以向后扫描直到下一个<
CKPT(T,U,V)>
e)当前活跃的事务有T和V,日志记录为<
STARTCKPT(T,V)>
,所以在<
之后写入<
CKPT(T,V)>
习题6.3.2使用习题6.2.7的数据,对该习题中(a)到(e)的各个位置,回答:
ⅰ)何时能写入<
CKPT>
ⅱ)对每一个可能发生故障的时刻,为了找到所有可能未完成的事务,我们需要在日志中向后看多远。
请考虑<
记录在崩溃发生之前写入和未写入的两种情况。
a)当前活跃的事务只有S,日志记录为<
之前写入<
如果崩溃发生在<
记录之后,那么在日志中只要回溯到<
记录之前,我们必须向后搜索到倒数第二个STARTCKPT记录并得到其活跃事务列表。
在本题中没有前一检查点,因而必须一直走到日志的开头,确定没有已提交的事务。
b)当前活跃的事务只有T,日志记录为<
如果崩溃发。
那么在日志中只要回溯到记录之后,<
如果崩溃发生在.
记录并得到其STARTCKPT生在<
记录之前,我们必须向后搜索到倒数第二个确定已提交的事在本题中没有前一检查点,因而必须一直走到日志的开头,活跃事务列表。
写入日志中。
务只有S,重复其动作<
,并在恢复后将记录之前,所以在<
和U,日志记录为<
c)当前活跃的事务有T<
写入如果崩溃发<
记录之后,那么在日志中只要回溯到记录并得到其STARTCKPT生在<
写入日志中。
并在恢复后将记录<
和<
,<
所以在,日志记录为<
,d)当前活跃的事务有T、U和V记录。
如果崩溃发生在记录并得到其CKPT<
记录之前,我们必须向后搜索到倒数第二个START生在确定已提交的事因而必须一直走到日志的开头,活跃事务列表。
在本题中没有前一检查点,<
ABORT和<
、<
,并在恢复后将记录写入日志中。
V>
之前<
和e)当前活跃的事务有TV,日志记录为写入<
如果崩溃发那么在日志中只要回溯到<
记录之后,记录并得到其记录之前,我们必须向后搜索到倒数第二个STARTCKPT生在<
确定已提交的事活跃事务列表。
在本题中没有前一检查点,因而必须一直走到日志的开头,、<
,并在恢复后将记录<
ABORT,重复其动作<
、<
和务有SU和<
ABORTV>
习题6.3.47.1.1习题
使用redo和T记录并刷新日志。
已提交,为已提交,为和U已提交,
a)事务U<
b)事务T日志。
c)事务T日志。
d)事务T
日志,重复习6.2.都未提交,什么都不做,磁盘数据无变化,在日志中写<
ABORTU写入2,写入4,在日志中写<
ABORTU记录并刷写入2,写入4,在日志中写<
ABORTU记录并刷写入1写入2写入3写入4。
习题6.4.2下面是两个事务T和U的一系列日志记录:
U,A,10,11>
T,B,20,21>
U,C,30,31>
T,D,40,41>
U,E,50,51>
请描述恢复管理器的行为,包括对磁盘和日志所做的改变,假设故障发生且出现在磁盘上的最后一条日志记录为:
事务U未提交,回滚U(从后往前),A的值置为10。
在日志中写入<
记录并刷新日志。
41的值置为D,21的值置为B,将T已提交,重做T事务.
ABORT10。
在日志中写入,,将C的值置为30A的值置为事务U未提交,回滚U(从后往前)U>
<
c)。
D的值置为41T,将B的值置为21,事务T已提交,重做。
10,A50的值置为,C的值置为30事务U未提交,回滚U(从后往前),将E的值置为记录并刷新日志。
d)D,的值置为31B的值置为21,CT和U都已提交,重做、U,将A的值置为11,事务T。
的值置为51的值置为41,E
S,A,60,61>
考虑如下日志记录序列:
6.4.4习题,F,70,71>
T,A,61,62>
U,B,20,21>
T,C,30,31>
U,D,40,41>
V<
T,E,50,51>
V,B,21,22>
ⅰ何时写入我们需要在日志中回ⅱ对于每一个可能发生故障的时刻,为了找到所有可能未完成的事务,<
记录在崩溃发生以前写入和未写入的两种情况。
溯多远。
请考虑a)<
记录可以在<
之后任意位置出现。
当前活跃的事务只有S。
当前活跃的事务只有T。
在本题中没有前一检查点,因而必须一直走到日志的开头,确定已提交的事务只有S。
当前活跃的事务有T和U。
U,D,40,41