当前位置:文档之家› 数据库作业答案

数据库作业答案

数据库作业答案
数据库作业答案

习题2.2.1 Megatron 777磁盘具有以下特性:100000个磁道。有10个盘面,每个盘面有1、1024字节。磁道平均有1000扇区,每个扇区为2、20%被用于间隙。、每个磁道的3 /min。磁盘旋转为10000转4、

1+0.0002*n ms。磁头移动n5、个磁道所需要的时间是

Megatron 777的问题。回答下列关于磁盘的容量是多少?a)

9KB

100×1024Bytes = 10磁盘容量= 10×100000×英寸的圆面上,那么一个磁道的扇区中的平均位密度是多少?如果磁道是在直径3.5b)bpi(bits/inch)位密度是指磁道上单位距离可记录的比特数,单位。5 3.5inch/2 ,该磁道的周长为(3.我们选取中间磁道来计算平均位密度,中间磁道的直径为1024。同时,每个磁道的容量是π/2)inch1000π/2)inch,扇区所占的周长是80%××(3.58 bits

×/2)inch = 3.5π×1024×8)bits/(80%×所以一个磁道的扇区中的平均位密度是(1000 1861733.6 bpi)最大寻道时间是多少?c100000 ms = 21ms 1+0.0002×当磁头移动100000个磁道时,寻道时间最大)d最大旋转等待时间是多少?= 当所需要块的起点刚好从磁头下面越过,则要等待旋转一周的时间。最大旋转等待时间

= 6 ms/r

10000r/min)((1r)/ ,一个块的传输时间是多少?64如果一个块是65536扇区)字节(即e)个扇区和扇区之间的63个间隙。64磁头必须越过

被64个扇区和63个间隙覆盖的圆弧的总度数为:360×80%×64/1000+360×20%×63/1000

= 22.968 度

传输时间是(22.968/360)×6 ms = 0.3828 ms

f)平均寻道时间是多少?

平均移动距离是移动整个磁盘的1/3,所以平均寻道时间为:(100000×1/3)×0.0002+1 ms = 7.67 ms

g)平均旋转等待时间是多少?

平均旋转等待时间为旋转半周所需的时间,由d)可知,为:6/2 ms = 3 ms

习题2.2.3 证明如果我们将磁头从一个随机的柱面移动到另一个随机的柱面上,平均移动距。(忽略因有限柱面数目产生的边际效应)1/3离是扫描过整个磁盘

的.

假设磁头起初以相同的概率被定为在8192个柱面的任一位置。如果是在柱面1或柱面8192,那么移动的平均磁道数是(1+2+···+8191)/8191,即大约4096磁道。如果是在柱面4096,即中间位置,则磁头移进或移出的可能性是相同的,而且无论移进还是移出,移动距离平均来说大约是总磁道数的四分之一,即2048磁道。计算表明,当磁头的初始位置从柱面1到柱面4094变化时,磁头需要移动的平均距离按二次方回升到4096,如上图所示。

2 –x + r/2 y = (1/r)x,平均行进距离y,则计算该二次函数可得我们令r = 8192,初始磁道x r232r2/

3 /2 + rx/2)|/r–x + r/2)dx = (x = r/3r - x对所有初始位置进行积分∫(x002/3/r = r/3,即越过整个磁盘的= r1/3 所以平均行进距离

习题2.3.1 假设我们正在为Megatron 747磁盘调度I/O请求,磁头的初始位置在磁道32000,图2-9的请求已经产生。在下面两种情况下,每一种请求在何时完全得到服务?

请求的柱面到达时间

8000 0

1 48000104000

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.6 48000 33.9

1+(48000-40000)/4000+4.3+33.9

41.2

40000

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

请求的柱面完成时间计算说明

8000 11.3 1+(32000-8000)/4000+4.3+0

1+(48000-8000)/4000+4.3+11.3 48000 26.6

1+(48000-4000)/4000+4.3+26.6 42.9 4000

1+(40000-4000)/4000+4.3+42.9

40000

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

小时。,更换一个盘要花10习题2.4.3 假设我们使用例2.8中的镜像盘,每年故障率为5% 导致数据丢失的磁盘平均故障时间是多少?= 1/876

365)小时,相当于一年的替换故障磁盘的过程花1010/(24×= ×1/876 由于我们假定磁盘的平均寿命是20年,拷贝过程中发生故障的可能性是5%1/17520

这些故年发生一次故障。如果一个磁盘每20年年发生一次故障,那么两个磁盘之一平均1017520 10×障的每17520个中有一个导致数据丢失。换句话说,导致数据丢失的平均时间是= 175200年。

一样,假个数据盘和一个冗余盘。与例2.9假设我们使用RAID 4级方案,有4习题2.4.5

设块为单字节,如果数据盘的相应块如下,给出冗余盘的块。10111011 和,11000000,00101011a) 0101011000000110

01000001 0011110011111000,和b) 11110000,01110101

1有故障。假设数据盘在下列情况下恢2.4.52.4.7 采用和习题一样的RAID 4级方案,习题复该磁盘的块:

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+1 1字节。首部长度为假设字符为英文字符,则占4+4+1+43 = 52字节a)字节b)8+8+8+56 = 80 字节c) 4+4+4+48 = 60

地IP地址有4个字节,假设一个全球范围的地址系统中块地址由主机2.6.5 习题现在,IP上的

块地址组成。磁盘)之间的设备号以及各个设备号(假设为Megatron 747址,1到10000 块地

址需要多少字节?字节IP地址41413字节id 142位,设备号占用< 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字节,记录长度2 27+2+8+8 = 45的指针字节。8字节,所以一共需要

2.7.3 假设在习题2.7.1习题的病人记录上添加另外的可重复字段,表示胆固醇化验,每一次胆固醇化验需要一个24字节的日期和化验的整数结果。如果

a)重复化验保存在记录中。

b)化验存储在另外一个块中,记录中存储指向化验的指针。

分别给出病人记录的格式。

a)

b)

关系数据库系统总是倾向于尽可能使用定长元组,给出这种优先考虑的三种理2.8.1 习题由。

便于修改,当一个定长记录被修改时,对存储系统没有影响,因为我们知道它占用与修) 1 改前完全相同的空间。更有效地对记录进行搜索。2)

对定长元组的删除和插入管理相对变长记录来说要简便。3)

≤A≤习题B6.1.1 假设数据库上的一致性约束是0。判断以下各事务是否保持一致性。a) B:=A+B; A:=A+B;

不能保持一致性b) A:=B+1; B:=A+1;

保持一致性c) A:=A+B; B:=A+B;

保持一致性

U>;;

恢复管理T>;;;;;;;假设故障发生

且出现在磁盘上的最后一条日志记包括对磁盘和日志所做的改变,器的行为,录为:a)

在磁盘上的未提交,要被撤销。向后扫描日志,遇到记录,于是将A事务T、U 和被写到日志中且日志被刷新。值存为10。最后,记录 b)C未提交,要被撤销。向后扫描日志,首先遇到记录,于是将U事务T已提交,。最后,记录A在磁盘上的值置为10在磁盘上的值存为30。接着遇到记录,并将

被写到日志中且日志被刷新。 c)

事务T已提交,U未提交,要被撤销。向后扫描日志,首先遇到记录,将E在磁盘上

的值存为50。接着遇到记录,于是将C在磁盘上的值存为30。再遇到记录,并将A在磁盘上的值置为10。最后,记录被写到日志中且日志被刷新。

d)

事务T、U均被提交。什么都不做。

习题6.2.7 考虑如下日志记录序列:;;;

T>;;;;;;;;

U>;;;;;

。假设我们在如下日志记录中的某一条写入(主存)后立即开始一个非静止检查点:

a)

b)

c)

d)

e)

对其中的每一个,说明:记录。ⅰ何时写入我们需要在日志中回为了找到所有可能未完成的事务,ⅱ对于每一个可能发生故障的时刻,溯多远。之后写入,所以在S,日志记录为a)当前活跃的事务只有记录。CKPT(S)>记录之后,那么我们可以扫描直到下一个之前,那么我们要回溯到记录停止。如果故障发生在之后写入,日志记录为

,所以在b) 当前活跃的事务只有T 记录。之前,那么我们要回溯到CKPT(T)>记录停止。如果故障发生在之后

CKPT(T,U)>,所以在)当前活跃的事务有cT和U,日志记录为记录。写入如果故障发生在。那么我们要回溯到记录停止。如果故障发生在之前,CKPT(T,U)>,所以在V,日志记录为Ud)当前活跃的事务有T、和之后写入记录。如果故障发生在记录之后,那么我们可以向后扫描直到下一个

CKPT(T,U,V)>记录停止。如果故障发生在之前,那么我们要回溯到

T>。

e)当前活跃的事务有T和V,日志记录为,所以在之后写入记录。

如果故障发生在记录之后,那么我们可以向后扫描直到下一个

CKPT(T,V)>记录停止。如果故障发生在之前,那么我们要回溯到

习题6.3.2使用习题6.2.7的数据,对该习题中(a)到(e)的各个位置,回答:

ⅰ)何时能写入记录。

ⅱ)对每一个可能发生故障的时刻,为了找到所有可能未完成的事务,我们需要在日志中向后看多远。请考虑记录在崩溃发生之前写入和未写入的两种情况。

a)当前活跃的事务只有S,日志记录为,所以在之前写入记录。

如果崩溃发生在记录之后,那么在日志中只要回溯到。如果崩溃发生在记录之前,我们必须向后搜索到倒数第二个START CKPT记录并得到其活跃事务列表。在本题中没有前一检查点,因而必须一直走到日志的开头,确定没有已提交的事务。b) 当前活跃的事务只有T,日志记录为,所以在之前写入记录。

如果崩溃发。那么在日志中只要回溯到记录之后,如果崩溃发生在.记录并得到其START CKPT生在记录之前,我们必须向后搜索到倒数第二个确定已提交的事在本题中没有前一检查点,因而必须一直走到日志的开头,活跃事务列表。写入日志中。务只有S,重复其动作,并在恢复后将记录之前,所以在和U,日志记录为c)当前活跃的事务有T 记录。写入如果崩溃发。如果崩溃发生在记录之后,那么在日志中只要回溯到记录并得到其START CKPT生在记录之前,我们必须向后搜索到倒数第二个确定已提交的事在本题中没有前一检查点,因而必须一直走到日志的开头,活跃事务列表。写入日志中。并在恢复后将记录务只有S,重复其动作所以在,日志记录为,d)当前活跃的事务有T、U和V 记录。之前写入如果崩溃发。记录之后,那么在日志中只要回溯到如果崩溃发生在记录并得到其CKPT记录之前,我们必须向后搜索到倒数第二个START 生在确定已提交的事因而必须一直走到日志的开头,活跃事务列表。在本题中没有前一检查点,务只有S,重复其动作,并在恢复后将记录写入日志中。V>之前,所以在和e)当前活跃的事务有TV,日志记录为写入记录。如果崩溃发那么在日志中只要回溯到。如果崩溃发生在记录之后,记录并得到其记录之前,我们必须向后搜索到倒数第二个START CKPT生在确定已提交的事活跃事务列表。在本题中没有前一检查点,因而必须一直走到日志的开头,、,并在恢复后将记录T>和务有SU和写入日志中。

日志,重复习6.2.都未提交,什么都不做,磁盘数据无变化,在日志中写

习题6.4.2下面是两个事务T和U的一系列日志记录:;;;;;;;;;。请描述恢复管理器的行为,包括对磁盘和日志所做的改变,假设故障发生且出现在磁盘上的最后一条日志记录为:

a)

事务U未提交,回滚U(从后往前),A的值置为10。在日志中写入记录并刷新日志。

b)

。41的值置为D,21的值置为B,将T已提交,重做T事务.

记录并刷新日志。 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

; ; ; ; 考虑如下日志记录序列:6.4.4习

题,F,70,71>; ; ; ; ; ; ;

; ; ; ; ;

。假设我们在如下日志记录中的某一条写入(主存)后立即开始一个非静止检查点:a)

b)

c)

d)

e)

对其中的每一个,说明:记录。ⅰ何时写入我们需要在日志中回ⅱ对于每一个可能发生故障的时刻,为了找到所有可能未完成的事务,记录在崩溃发生以前写入和未写入的两种情况。溯多远。请考虑a) 记录可以在之后任意位置出现。

当前活跃的事务只有S。如果崩溃发生在记录之后,那么在日志中只要回溯到

。如果崩溃发生在记录之前,我们必须向后搜索到倒数第二个START CKPT记录并得到其活跃事务列表。在本题中没有前一检查点,因而必须一直走到日志的开头,确定没有已提交的事务。

b) 记录可以在之后任意位置出现。

当前活跃的事务只有T。如果崩溃发生在记录之后,那么在日志中只要回溯到

。如果崩溃发生在记录之前,我们必须向后搜索到倒数第二个START CKPT记录并得到其活跃事务列表。在本题中没有前一检查点,因而必须一直走到日志的开头,确定已提交的事务只有S。

c) 记录可以在之后任意位置出现。

当前活跃的事务有T和U。如果崩溃发生在记录之后,那么在日志中只要回溯到。如果崩溃发生在记录之前,我们必须向后搜索到倒数第二个START CKPT记录并得到其活跃事务列表。在本题中没有前一检查点,因而必须一直走到日志的开头,确定已提交的事务只有S。

d) 记录可以在之后任意位置出现。

当前活跃的事务有T、U和V。如果崩溃发生在记录之后,那么在日志中只要回溯到。如果崩溃发生在记录之前,我们必须向后搜索到倒数第二个START CKPT记录并得到其活跃事务列表。在本题中没有前一检查点,因而必须一直走。S到日志的开头,确定已提交的事务只有.

之后任意位置出现。e) 记录可以在记录之后,那么在日志中只要回

当前活跃的事务有T和V。如果崩溃发生在我们必须向后搜索到倒数第二个记录之前,溯到。如果崩溃发生在记录并得到其活跃事务列表。在本题中没有前一检查点,因而必须一直走到CKPTSTART

。日志的开头,确定已提交的事务有S和U

日志,那么:6.15中使用的是redo日志而不是undo/redo 习题6.5.1如果在例6.14和例日志会是怎样的?a)

Dump completes

未提交的后果是什么?如果我们需要使用备份以及这一日志进行恢复,b)T1也就是说,它所做的修改不能到达磁盘。T1,在T1提交之前转储已经完成,对于未提交事务不能变到新值。和BA 恢复后数据库的状态是什么?c)4),6,,、C、和D分别是(12、数据库元素AB

T1执行以下步骤:航班预订系统执行的一个事务和Aⅰ. 询问顾客希望的航班时间和城市。所需航班信息位于数据库元素(可能是磁盘块)中,系统在磁盘上检索所需信息。B包括该航班的预订中,顾客选择一个航班,该航班的数据在Bⅱ. 告诉顾客供选择的选项,号。为该顾客预订该航班。顾客为该航班选择一个座位;该航班的座位信息位于数据库元素C中。ⅲ.

ⅳ. 系统获得顾客的信用卡号,并将该航班的账单附加到数据库元素D的账单列表上。

ⅴ. 顾客的电话和航班数据被加到数据库元素E上的另一个列表中,这是为了向顾客发确认航班的传真。

将事务T1表示为r和w动作的一个序列。

r(A); r(B); w(B); r(C); w(C); r(D); w(D); r(E); w(E). 111111111

习题7.2.1 下面是用对数据库元素A和B的影响来描述的两个事务,我们可以假设数据库元素A 和B是整数。

T1:READ(A,t); t:=t+2; WRITE(A,t); READ(B,t); t:=t*3; WRITE(B,t);

T2:READ(B,s); s:=s*2; WRITE(B,s); READ(A,s); s:=s+3; WRITE(A,s);

我们假设不管数据库上的一致性约束是什么,这些事务在隔离的情况下能够保持这些约束。不是一致性约束。A=B注意,

a)给出上面12个动作的一个串行调度的例子和一个非串行调度的例子。

b)这12个动作共有多少串行调度?

c)这12个动作共有多少可串行化调度?

d)这两个串行顺序对数据库的影响是相同的,即(T1,T2)和(T2,T1)等价。通过给出任意数据库初态时这两个事务的结果,说明这一事实。

)的结果。

习题7.2.5对以下的每一个调度:

a)w3(A) ;r1(A) ; w1(B) ;r2(B) ; w2(C) ;r3(C) ;

b)r1(A) ; r2(A) ;w1(B) ; w2(B) ;r1(B) ; r2(B) ; w2(C) ; w1(D) ;

c)r1(A) ; r2(A) ;r1(B) ; r2(B) ;r3(A) ; r4(B) ; w1(A) ; w2(B) ;

d)r1(A) ; r2(A) ;r3(B) ;w1(A) ;r2(C) ; r2(B) ; w2(B) ; w1(C) ;

e)r1(A) ; w1(B) ; r2(B) ;w2(C) ; r3(C) ; w3(A) ;

回答如下问题:

ⅰ. 调度的优先图是什么?

ⅱ. 调度是冲突可串行化的吗?如果是,等价的串行调度有哪些?

ⅲ. 是否有等价的调度(不管事务对数据做什么),但又不是冲突等价的?

a)

优先图是T1 -----> T2 -----> T3

该图有环,所以调度不是冲突可串行化的。

没有等价且不为冲突等价的调度。假设A, B和C的初值都为10,T3将A置为A+C,T2将C 设为B+C,T1是将B设为A+B。如果T1不优先于T2,那么C的赋值将出错。如果T2不优先于T3,那么A的赋值将出错。如果T3不优先于T1,那么B的赋值将出错。

b)

优先图是T1 -----> T2

该图有环,所以调度不是冲突可串行化的。

,,A+B置为B也将T2 ,20置为D,A+B置为B将T1,10的初值都为D和CA, B假设

C置为20。调度(T, T)和(T, T)是等价的。1122c)

优先图(precedence graph)是T3 -----> T1 -----> T2 <----- T4

该图是有环的,所以调度不是冲突可串行化的。

没有等价且不为冲突等价的调度。假设A和B的初值都为10,T1将A设为A+B,T2将B设为B+A,T3是打印A,T4是打印B。如果T4不优先于T2,则T4打印出来B的值是错误的。如果T3不优先于T1,则T3打印出来A的值是错误的。

d)

优先图(precedence graph)是T3 -----> T2 -----> T1

该图是无环的,所以调度是冲突可串行化的。等价的串行调度只有(T, T, T)123没有等价且不为冲突等价的调度。假设A, B和C的初值都为10,T1将A和C置为20,T2将B设为A+B+C,T3是打印B。如果T3不优先于T2,则T3打印出来B的值是错误的。如果T2不优先于T1,则它对B的赋值就出错了。

e)

优先图是T1 -----> T2 -----> T3

该图无环,所以调度是冲突可串行化的。等价的串行调度只有(T, T, T)。312没有等价且不为冲突等价的调度。假设A, B和C的初值都为10,T3将A置为A+C,T2将C设为B+C,T1是将B设为A+B。如果T1不优先于T2,那么C的赋值将出错。如果T2不优先于T3,那么A的赋值将出错。如果T1不优先于T3,那么B的赋值将出错。

习题7.3.1 下面是两个事务,其中给出了封锁请求和事务的语义。回忆一下习题7.2.1中,这些事务具有特殊的性质,即它们被调度的方式可以是非冲突可串行化的,但由于其语义又是可串行化的。

下面的问题中,只考虑读写动作的调度,而不要考虑封锁、解锁或赋值步骤。

a)给出被锁禁止的调度的一个例子。

r(A); r(B); w(B); r(A); w(A); r(B); w(B); w(A)21112212

习题7.3.3 对于习题7.2.5种的每个调度,假设每个事务刚好在读或写每个数据库元素以前获得该元素上的锁,并且每个事务在最后一次访问一个元素后立即释放其锁。说一说封锁调度器对这些调度中的每一个会怎么做;即哪些请求将被推迟,而什么时候它们又将被允许继续?

a)没有操作被推迟,调度顺序为w3(A) ;r1(A) ; w1(B) ;r2(B) ; w2(C) ;r3(C) ;

b) 请求r(B)将被推迟,因为T1对数据库元素B加锁了,等到r(B),之后T将释放B上的111锁,这时候r(B)将被允许继续。调度顺序为:r1(A) ; r2(A) ;w1(B) ; r1(B) ;w2(B) ; r2(B) ; w2(C) ; 1w1(D) ;

c) 请求r2(A)将被推迟,因为T1对数据库元素A加锁了,等到w(A),之后T将释放A上的11锁,这时候r加锁A对数据库元素T1也将被推迟,因为r3(A)将被允许继续。同样请求(A)2.

将被允(A)上的锁,这时候r之后T将释放AT1解锁之后有T2对A加锁,等到r2(A),了,32 w2(B)之后才将被允许继续。许继续。另外r4(B)也被推迟,要在调度顺序为:r1(A) ; r1(B) ;w1(A) ; r2(A) ; r2(B) ;r3(A) ; w2(B) ; r4(B) ;

上的将释放A(A),之后T将被推迟,因为T1对数据库元素A加锁了,等到w(A)d) 请求r112(B); (B); wr(C); r(A); r(B); w(A); r(A); 锁,这时候r(A)将被允许继续。调度顺序为: r22322121 . (C)w1r1(A) ;

w1(B) ; r2(B) ;w2(C) ; r3(C) ; w3(A) ; 没有操作被推迟,调度顺序为e)

的每一个调度:T2和T3 习题7.4.1对下面事务T1、r1(A);r2(B);r3(C);w1(B);w2(C);w3(A);

)ar1(A);r2(B);r3(C); r1(B);r2(C);r3(D);w1(C);w2(D);w3(E); )b 做以下各件事情:

a)

: sl1(A); r1(A); sl2(B); r2(B); sl3(C); r3(C); xl1(B); w1(B); u1(A); u1(B); xl2(C); w2(C); u2(B);

(i)u2(C); xl3(A); w3(A); u3(C); u3(A);

存在共享锁的情Bxl2(C)操作被推迟,在3个加锁和读操作是正确的,但xl1(B)和(ii): 前面不能再加排它锁。存在共享锁的情况下T2况下T1不能再加排它锁,同理在Cw2(C)事务完成的前提是事务完成后;但T2出现死锁现象。如果要执行w1(B),则需在T2要执行完,这一解锁的话则w3(A)解锁;T3要对C要执行完,这一操作要求之前T3要对C w1(B)要执行完,陷入死循环。要对A解锁的话则T1操作要求之前T1要对A解锁,w2(C); xl2(C); w1(B); xl1(B); u1(A); u1(B); sl1(A); r1(A); sl2(B); r2(B); sl3(C); r3(C); : (iii)u2(B); u2(C); xl3(A); w3(A); u3(C); u3(A);

存在共享锁的情Bxl2(C)操作被推迟,在个加锁和读操作是正确的,但xl1(B)和前面(iv): 3 不能再加排它锁。存在共享锁的情况下T2况下T1不能再加排它锁,同理在Cw2(C)T2事务完成的前提是事务完成后;但出现死锁现象。如果要执行w1(B),则需在T2要执行完,这一解锁的话则w3(A)T3要对C解锁;要执行完,这一操作要求之前T3要对C 要执行完,陷入死循环。A

解锁的话则w1(B)T1操作要求之前要对A解锁,T1要对ul2(C); u1(A); u1(B); r3(C); ul1(B); xl1(B); w1(B); r2(B); : (v)sl1(A); r1(A); sl2(B); sl3(C);

xl2(C); w2(C); u2(B); u2(C); ul3(A); xl3(A); w3(A); u3(C); u3(A);

存在共享锁的情B操作被推迟,xl1(B)和xl2(C)在个加锁和读操作是正确的,前面(vi): 3但不能再加排它锁。T2存在共享锁的情况下C不能再加排它锁,同理在T1况下

w2(C)事务完成的前提是事务完成后;但出现死锁现象。如果要执行T2w1(B),则需在T2要执行完,这一w3(A)C解锁的话则要对C解锁;T3要对要执行完,这一操作要求之前T3解锁的话则w1(B)要执行完,陷入死循环。解锁,T1要对A操作要求之前T1要对Ab)

(i): sl1(A); r1(A); sl2(B); r2(B); sl3(C); r3(C); sl1(B); r1(B); sl2(C); r2(C); sl3(D); r3(D); xl1(C);

w1(C); u1(A); u1(B);u1(C); xl2(D); w2(D); u2(B); u2(C); u2(D);xl3(E); w3(E); u3(C); u3(D);

u3(E);

(ii): 前面6个加锁和读操作是正确的,但xl1(C)和xl2(D)操作被推迟,在C存在共享锁的情况下T1不能再加排它锁,同理在D存在共享锁的情况下T2不能再加排它锁。

先执行T3事务,w3(E),T3执行完成后释放它在C、D、E上的锁;由于还有事务T2在C上加了共享锁,所以xl1(C)操作依然被推迟,于是先执行T2事务,w2(D),执行完成后T2释放在B、C、D上的锁,这时候T1就可以执行了,w1(C),执行完成后释放A、B、C上的锁。

(iii): sl1(A); r1(A); sl2(B); r2(B); sl3(C); r3(C); sl1(B); r1(B); sl2(C); r2(C); sl3(D); r3(D); xl1(C);

w1(C); u1(A); u1(B);u1(C); xl2(D); w2(D); u2(B); u2(C); u2(D);xl3(E); w3(E); u3(C); u3(D);

u3(E);

(iv): 前面6个加锁和读操作是正确的,但xl1(C)和xl2(D)操作被推迟,在C存在共享锁的情况下T1不能再加排它锁,同理在D存在共享锁的情况下T2不能再加排它锁。

先执行T3事务,w3(E),T3执行完成后释放它在C、D、E上的锁;由于还有事务T2在C上加了共享锁,所以xl1(C)操作依然被推迟,于是先执行T2事务,w2(D),执行完成后T2释放在B、C、D上的锁,这时候T1就可以执行了,w1(C),执行完成后释放A、B、C上的锁。

(v): sl1(A); r1(A); sl2(B); r2(B); sl3(C); r3(C); sl1(B); r1(B); sl2(C); r2(C); sl3(D); r3(D); ul1(C);

xl1(C); w1(C); u1(A); u1(B);u1(C); ul2(D); xl2(D); w2(D); u2(B); u2(C); u2(D); ul3(E); xl3(E);

w3(E); u3(C); u3(D); u3(E);

(vi): 前面6个加锁和读操作是正确的,但xl1(C)和xl2(D)操作被推迟,在C存在共享锁的情况下T1不能再加排它锁,同理在D存在共享锁的情况下T2不能再加排它锁。

先执行T3事务,w3(E),T3执行完成后释放它在C、D、E上的锁;由于还有事务T2在C上加了共享锁,所以xl1(C)操作依然被推迟,于是先执行T2事务,w2(D),执行完成后T2释放在B、C、D上的锁,这时候T1就可以执行了,w1(C),执行完成后释放A、B、C上的锁。

习题7.4.2

sl1(A); r1A(); sl2(B); r2(B); il1(B); inc1(B); il2(A); inc2(A); xl1(C); w1(C); u1(A); u1(B); u1(C);

xl2(D); w2(D); u2(B); u2(A); u2(D);

前面2个加锁和读操作是正确的,但il1(B)操作被推迟,在B存在共享锁的情况下T1不能再加增量锁。事务T1后面的操作被推迟,再看T2事务,操作il2(A)也是不允许的,因为T1事务在A上加了共享锁,所以T1、T2事务都不能正常执行,陷入死锁状态。

)a b)T1—IS(C); S锁;(T1加锁,为块B2IS锁,,为对象O5加a)第一步,T1为类外延加ISIS(B2); sl1(O5); r1(O5);) —IX(B2); xl2(O5) Denied!

—T2—IX(C); T2 第二步,T1—IX(C); T1—IX(B2); xl1(O4); w1(O4); u1(O4); u1(O5); 第三步:第四步:xl2(O5); w2(O5);

第五步:T2—IS(C); T2—IS(B2); sl2(O3); r2(O3); u2(O3); u2(O5);

b)第一步,T1—IS(C); T1—IS(B1); sl1(O1); r1(O1);

第二步,T1—IS(C); T1—IS(B2); sl1(O3); r1(O3); u1(O3); u1(O1);

第三步:T2—IS(C); T2—IS(B1); sl2(O1); r2(O1);

第四步:T2—IX(C); T2—IX(B2); xl2(O4); w2(O4);

第五步:T2—IX(C); T2—IX(B2); xl2(O5); w2(O5);u2(O5); u2(O4);

习题7.7.2

a)可以有两种方式进行交错。

r1(A);r1(B);r1(E);r3(B);r3(E);r3(F);

r1(A);r3(B);r3(E);r3(F);r1(B);r1(E);

b)只有一种方式进行交错。

r2(A);r2(C);r2(B);r3(B);r3(E);r3(F);

7.9.1 习题

a)T1最先进行有效性确认,此时没有其他已确认事务,因而什么都不需要检测,T1的有效性成功确认并为数据库元素A写入一个值;

之后是T2的有效性确认,当确认T2有效性时,T1已经验证成功但尚未完成。所以必须检测T2的读写集合是否都满足与WS(T1) = {A}没有公共元素。由于RS(T2) =

{B,C},WS(T2) = {B},两个都检测成功,因而确认T2的有效性。

最后是T3有效性确认,当确认T3有效性时,T1、T2已经验证成功但都尚未完成。所以必须检测T3的读写集合是否都满足与WS(T1) = {A}、WS(T2) = {B}没有公共元素。由于RS(T3) = {C},WS(T3) = {C},全都检测成功,因而确认T3的有效性。

b)T1最先进行有效性确认,此时没有其他已确认事务,因而什么都不需要检测,T1的有效性

成功确认并为数据库元素A写入一个值;

之后是T2的有效性确认,当确认T2有效性时,T1已经验证成功但尚未完成。所以必须检

测T2的读写集合是否都满足与WS(T1) = {C}没有公共元素。由于RS(T2) = {B,C},WS(T2) = {B},WS(T1) ∩RS(T2) = {C},T2的有效性不能确认。T2被回滚。

最后是T3有效性确认,当确认T3有效性时,T1已经验证成功但尚未完成。所以必须检测

T3的读写集合是否都满足与WS(T1) = {C}没有公共元素。由于RS(T3) = {C},WS(T3) =

被回滚。T3的有效性不能确认。T3,RS(T3) = {C} ∩WS(T1) ,{A}

数据库系统概论第五版课后习题答案王珊版

第二章关系数据库 1 .试述关系模型的三个组成部分。 答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。 2 .试述关系数据语言的特点和分类。 答:关系数据语言可以分为三类: 关系代数语言。 关系演算语言:元组关系演算语言和域关系演算语言。 SQL:具有关系代数和关系演算双重特点的语言。 这些关系数据语言的共同特点是,语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。 3 (略) 4 . 5 . 述关系模型的完整性规则。在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空? 答:实体完整性规则是指若属性A是基本关系R的主属性,则属性A不能取空值。 若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。即属性F本身不是主属性,则可以取空值,否则不能取空值。 6.设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式: 1)求供应工程J1零件的供应商号码SNO: πSno(σJno=‘J1’(SPJ)) 2)求供应工程J1零件P1的供应商号码SNO: πSno(σJno=‘J1’∧Pno=‘P1‘(SPJ)) 3)求供应工程J1零件为红色的供应商号码SNO: πSno(πSno,,Pno(σJno=‘J1‘(SPJ))∞πPno(σCOLOR=’红‘(P))) 4)求没有使用天津供应商生产的红色零件的工程号JNO: πJno(SPJ)- πJNO(σcity=‘天津’∧Color=‘红‘(S∞SPJ∞P) 5)求至少用了供应商S1所供应的全部零件的工程号JNO: πJno,Pno(SPJ)÷πPno(σSno=‘S1‘(SPJ)) 7. 试述等值连接与自然连接的区别和联系。 答:连接运算符是“=”的连接运算称为等值连接。它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组 自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。 8.关系代数的基本运算有哪些? 如何用这些基本运算来表示其他运算? 答:并、差、笛卡尔积、投影和选择5种运算为基本的运算。其他3种运算,即交、连接和除,均可以用这5种基本运算来表达。 第三章关系数据库语言SQL 1 .试述sQL 语言的特点。 答: (l)综合统一。sQL 语言集数据定义语言DDL 、数据操纵语言DML 、数据控制语言DCL

SQL第6周数据库上机作业答案

第二次(第6周)上机作业 一、用T-SQL语句在E:\DATA\文件夹中创建一个教师信息数据库teacher,该数据库包含:(界面方式也要会) 1、一个主数据文件逻辑名‘teacherdata1 ’, 物理名‘E:\DATA\tdata1.mdf ’, 初始容量1MB,最大容量10MB,每次增长量为15%。 2、一个辅助数据文件逻辑名‘teacherdata2 ’ 物理名‘E:\DATA\tdata2.ndf ’, 初始容量2MB,最大容量15MB,每次增长量为2MB。 3、两个数据文件不单独创建文件组,即使用默认的PRIMARY组; 4、一个事务日志文件逻辑名‘teacherlog’物理名‘E:\DATA\teacherlog.ldf ’,初始容量500KB,最大容量不受限制,每次增长量为500KB。 先确认E:\DATA\文件夹已创建, CREATE DATABASE teacher ON PRIMARY ( NAME = teacherdata1 , FILENAME = 'E:\DATA\tdata1.mdf' , SIZE =5MB , MAXSIZE= 10 , FILEGROWTH = 15% ) , ( NAME = teacherdata2 , FILENAME = 'E:\DATA\tdata2.ndf' , SIZE = 2 , MAXSIZE= 15 , FILEGROWTH = 2MB ) LOG ON /* 创建事务日志文件*/ ( NAME = teacherlog , FILENAME = 'E:\DATA\teacherlog.LDF', SIZE = 500 KB ,/* 初始容量,KB单位不能省略*/ MAXSIZE = UNLIMITED ,/* 日志文件最大容量不受限制*/ FILEGROWTH = 500 KB/* 增长量KB 不能省略*/ ) 二、修改数据库“teacher”,增加两个文件组,文件组名:Gteacher1和Gteacher2。ALTER DATABASE teacher Add filegroup Gteacher1 ALTER DATABASE teacher Add filegroup Gteacher2 三、增加一个辅助数据文件,文件逻辑名teacherdata3,物理名为:E:\data\ teacherdata3.ndf’,初始大小为20MB,最大100MB,增量10MB,归属于文件组“Gteacher1”。 Alter database teacher Add file

数据库作业题目及答案

实验三内容补充 在“教学管理系统”中设计了许多查询,上述只介绍其中具有代表性的部分,其余查询读者可依例完成。本系统包括的所有查询如下所示: 说明:同学们在进行后面的表单设计时,需要用到没有设计过的查询,则再进行对应的查询设计,没有设计到的可以不做。 1.90 以上学生信息 2.按班查不及格学生 3.按班级编号查看学生基本信息 4.按班级查教师信息 5.按班级查选课 6.按教师编号查 7.按教师姓名查看授课信息 8.按课程类别查 9.按课程名查 10.按上课地点查 11.按所选课程查 12.按系名查 13.按姓名查看学生基本信息 14.按学分查 15.按学号查看学生基本信息 16.按学号查选课 17.按职称查 18.不及格人次 19.不及格学生信息 20.低于所在班平均分学生 21.各班学生人数统计 22.各系教师人数 23.各职称教师人数 24.教师基本信息表查询 25.教师每周学时总数 26.每班不及格人次 27.每班每门课平均成绩 28.每班男女生人数 29.每班平均成绩 30.每班平均分 31.每名学生平均成绩 32.某学年某学期教师每周学时总数 33.某学期某课不及格信息 34.统计各系教师的人数 35.统计各职称教师的人数 36.统计每门课教师的人数 37.统计有课教师的人数 38.学生相关信息查询 39.学生选课情况 40.有课教师的人数

实验四数据登录窗体设计一 4.1数据登录窗体的向导创建 在Access中创建窗体有人工方式创建和使用窗体向导创建两种方法。人工方式创建窗体,需要创建窗体的每一个控件,并建立控件和数据源之间的联系。而使用窗体向导创建窗体,用户只需按照向导的提示输入有关信息,一步一步地完成。创建过程既简单、快捷,又效率高,因此,在设计Access数据库应用系统时,往往是先使用窗体向导建立窗体的基本轮廓,然后再切换到设计视图使用人工方式进行调整。我们在创建“登录教师档案”窗体时采用的就是这种方法。 利用窗体向导创建“登录教师档案”,窗体的步骤如下: ①双击“窗体”对象中“使用向导创建窗体”选项,启动“窗体向导”如图2-1所示。 图2-1“窗体向导”第一个窗口 ②单击“表/查询”下拉列表框右侧的箭头,列出所有有效的表或者查询数据源,从中选择“表:教师档案表”。 ③在“可用字段”列表框中选择需要在新建窗体中显示的字段,此处,单击按钮选择所有字段。 ④单击“下一步”按钮,弹出如图2-2所示的窗口。在此对话框中,选择“纵栏表”项,这时可以在左边看到所建窗体的布局。

华师在线数据库应用作业及答案

作业 1.第1题 使用( )身份验证方式需要客户端应用程序连接时提供登录时需要的用户标识和密码。 A.Windows身份验证 B.SQL Server 身份验证 C.以超级用户身份登录时 D.其他方式登录时 您的答案:B 2.第2题 表达式'123’+'456’的值是()。 A.123456 B.579 C.'123456’ D.'123456” 您的答案:B

3.第3题 将多个查询结果返回一个结果集合的运算符是( )。 A.JOIN B.UNION C.INTO D.LIKE 您的答案:B 4.第4题 使用T-SQL创建视图时,不能使用的关键字是:( )。 A.ORDER BY B.WHERE https://www.doczj.com/doc/ea13224754.html,PUTE D.WITH CHECK OPTION 您的答案:C 5.第5题 系统存储过程在系统安装时就已创建,这些存储过程存放在( )系统数据库中。 A.master

B.tempdb C.model D.msdb 您的答案:A 6.第6题 下面哪种文件无法与SQL Server数据库进行导入和导出操作()。 A.文本文件 B.EXCEL文件 C.Word文件 D.Access文件 您的答案:C 7.第7题 数据库逻辑结构设计阶段的主要功能是:( )。 A.明确用户需求,确定新系统的功能 B.建立数据库的E-R模型 C.将数据库的E-R模型转换为关系模型 D.选择合适的存储结构和存储路径

您的答案:C 8.第8题 在数据库设计过程使用( )可以很好的描述数据处理系统中信息的变换和传递过程。 A.数据流图 B.数据字典 C.E-R图 D.系统流程图 您的答案:A 9.第9题 下列SQL语句中,能够实现参照完整性控制的语句是:( )。 A.FOREIGN KEY B.PRIMARY KEY C.REFERENCES D.FOREIGNKEY和REFERENCES 您的答案:D 10.第10题 T-SQL中的全局变量以( )作前缀。

北大数据库原理上机考题练习及参考答案 练习二(商品、顾客、购买)

题目: 现有一个商店的数据库,记录顾客及其购物情况,由下面三个表组成:商品(商品号,商品名,单价,商品类别,供应商); 顾客(顾客号,姓名,住址); 购买(顾客号,商品号,购买数量); 试用SQL语言完成下列功能: 1 建表,在定义中要求声明: (1)每个表的主外码; (2)顾客的姓名和商品名不能为空值; (3)单价必须大于0,购买数量必须再0到20之间; 2 往表中插入数据: 商品(M01,佳洁士,8.00,牙膏,宝洁; M02,高露洁,6.50,牙膏,高露洁; M03,洁诺,5.00,牙膏,联合利华; M04,舒肤佳,3.00,香皂,宝洁; M05,夏士莲,5.00,香皂,联合利华; M06,雕牌,2.50,洗衣粉,纳爱斯 M07,中华,3.50,牙膏,联合利华; M08,汰渍,3.00,洗衣粉,宝洁; M09,碧浪,4.00,洗衣粉,宝洁;) 顾客(C01,Dennis,海淀; C02,John,朝阳; C03,Tom,东城; C04,Jenny,东城; C05,Rick,西城;) 购买 (C01,M01,3;C01,M05,2; C01,M08,2;C02,M02,5; C02,M06,4;C03,M01,1; C03,M05,1;C03,M06,3; C03,M08,1;C04,M03,7; C04,M04,3;C05,M06,2; C05,M07,8;) 商品有9 条,顾客有5条, 购买有5条

3 用SQL语句完成下列查询: (1)求购买了供应商"宝洁"产品的所有顾客; (2)求购买的商品包括了顾客"Dennis"所购买商品的顾客(姓名);(3)求牙膏卖出数量最多的供应商。 4 将所有的牙膏商品单价增加10%。 5 删除从未被购买的商品记录。 参考答案: create table product ( productno char(10) not null, productname char(15) not null, price float(15), sort char(10), supplier char(20), primary key (productno), check (price > 0) ) create table customer ( customerno char(10) not null, customername char(15) not null, address char(10), primary key (customerno) ) create table buy ( customerno char(10) not null, productno char(10) not null, num smallint, primary key (customerno,productno), foreign key (customerno) references customer (customerno), foreign key (productno) references product (productno), check (num between 0 and 20) )

数据库作业答案

实验六 1、查询所有数学系学生的信息。 --select * from s where 系='数学系' 2、查询李老师所教的课程号、课程名 --select 课程号,课程名from c where 教师like '李%' 3、查询年龄大于20岁的女同学的学号和姓名。 --select 学号,姓名from s where year(getdate())-year(出生日期)>20 and 性别='女' 4、查询学号为‘H0301’所选修的全部课程成绩。 --select 成绩from sc where 学号= 'H0301' 5、查询平均成绩都在80分以上的学生学号及平均成绩。 --select 学号,AVG(成绩) from sc group by 学号having AVG(成绩)>80 6、查询至少有6人选修的课程号。 --select 课程号from sc group by 课程号having count(*)>=6 7、查询C02号课程得最高分的学生的学号 --select 学号from sc where 课程号='c02' and 成绩=(select max(成绩) from sc where 课程号='c02') 8、查询学号为’J0101’的学生选修的课程号和课程名 --select 课程号,课程名from c,sc where 学号='j0101' and c.课程号=sc.课程号 9、‘李小波’所选修的全部课程名称。 --select c.课程名from s,c,sc where s.学号=sc.学号and c.课程号=sc.课程号and 姓名='李小波' 10、所有成绩都在70分以上的学生姓名及所在系。 --select 姓名,系from s,sc where s.学号=sc.学号group by 姓名, 系having min(成绩)>=70 11、英语成绩比数学成绩好的学生 select sc2.学号 from c c1,c c2,sc sc1,sc sc2 where c1.课程名='英语' and c2.课程名='数学' and sc1.成绩>sc2.成绩 and sc1.学号=sc2.学号and c1.课程号=sc1.课程号and c2.课程号=sc2.课程号 或: Select sc1.学号from sc sc1, sc sc2 where sc1.学号=sc2.学号 And (sc1.课程号in (select 课程号from c where 课程名= ‘英语’))

数据库第五次作业

1. use student go select*from student where Sname notlike'刘%' go 2. use student go select*from student where Sname like'沈__' go 3. use student go select*from student where 2017-Sage=1985 go 4. use student go select sno,sname,sage,sdept,ssex= case ssex when'女'then'女生' when'男'then'男生' else'条件不明' end from student go 5. use student go select*from course where Cname like'&数据&'

go 6. use student go select sno,Sname,Ssex,Sage,sdept from student where sno like'_______[1239][1239]%' go 7. use student go select*from sc where Cno=1 orderby grade asc go 8. use student go select sno from sc where cno=1 and sno in(select sno from sc where Cno=2) go 9. use student go select*from course orderby cpno asc go 10. use student go select*from student where sage>(select AVG(sage)from student) orderby sage desc go

《数据库原理及应用》第三次在线作业参考答案

作业 第1题关系代数的基本操作组成关系代数的完备操作集,其他操作均可以由 基本操作来表达。具体而言,关系代数的基本操作有()。 您的答案:C 题目分数:0.5 此题得分:0.5 批注:课件第七章 第2题在具有非过程性查询语言的数据库系统中,()是查询处理的核心。 您的答案:B 题目分数:0.5 此题得分:0.5 批注:概述 第3题关系数据库系统的查询处理包括两个方面的内容:查询优化和()。 您的答案:A 题目分数:0.5 此题得分:0.5 批注:概述 第4题()是选择操作中的线性搜索算法。 您的答案:D 题目分数:0.5 此题得分:0.5 批注:启发式代数优化算法 第5题()是选择操作中的主索引搜索算法。 您的答案:B 题目分数:0.5 此题得分:0.5 批注:启发式代数优化算法 第6题设关系R和S的属性个数分别为r和s,则(R×S)操作结果的属性个 数为()。

题目分数:0.5 此题得分:0.5 批注:笛卡尔积 第7题查询处理最终可转化成基本的()代数操作。 您的答案:A 题目分数:0.5 此题得分:0.5 批注:查询处理过程 第8题计算笛卡尔乘积的最简单算法称为()。 您的答案:C 题目分数:0.5 此题得分:0.5 批注:笛卡尔积 第9题在SQL中,表示选择操作的语句为()。 您的答案:A 题目分数:0.5 此题得分:0.5 批注:关系数据库标准语言SQL 第10题在SQL中,表示连接操作的语句为()。 您的答案:B 题目分数:0.5 此题得分:0.5 批注:连接操作 第11题投影操作中不包含主键,需要去除重复()。 您的答案:D 题目分数:0.5 此题得分:0.5 批注:投影操作 第12题关系代数的四个组合操作是:交、自然连接、连接和()。您的答案:C 题目分数:0.5 此题得分:0.5

数据库上机答案

数据库上机1 1、新建工厂数据库factory。 create database factory on( name=factory_data, filename='d:\factory.mdf') log on(name=factory_log, filename='d:\factory.ldf') 2、数据库factory包括职工表worker、部门表depart和职工工资表salary。用SQL语句建立这三个表并输入数据,其表结构及用例数据分别如下: 职工表结构为: 职工号:int; 姓名:char(8) ; 性别:char(2) ; 出生日期:datetime; 党员否:char(2) ; 参加工作:datetime; 部门号:int; 其中职工号为主码。 部门表结构为:

部门号:int; 部门名:char(10); 其中部门号为主码。 职工工资表结构为: 职工号:int; 日期:datetime; 工资:decimal(6,1) ; 其中职工号和日期为主码。

create table worker ( 职工号int primary key, 姓名char(8) , 性别char(2), 出生日期datetime, 党员否char(2), 参加工作datetime, 部门号int ) create table depart ( 部门号int primary key, 部门名char(10)

) create table salary ( 职工号int, 日期datetime, 工资decimal(6,1), Primary key(职工号,日期) ) 3. 显示部门的详细信息。 select * from depart 4.查询3号职工的工资单。 select * from salary where职工号=3 5.显示所有职工的姓名及年龄,并按姓名升序显示。 select 姓名, 2015-year(出生日期) '年龄' from worker order by姓名6. 求出各部门的部门号及党员人数。 select 部门号,count(党员否) '党员人数' from worker where 党员否='是' group by 部门号 7. 在worker表的“姓名”列创建唯一索引nameindex。 create unique index nameindex on worker (姓名) 数据库上机2 1. 查询12月份过生日的名单。 答:select 姓名from worker where month(出生日期)= 12 2. 查询所有姓刘的职工信息。 select * from worker where 姓名like ‘刘%’ 3. 显示所有职工的职工号和2011年2月份的工资数。 select 职工号,工资from salary where year(日期)=2011 and month(日期)=2 4. 查询1号部门所有职工的姓名和工资,并按工资降序排列。

数据库作业答案

班级:自动化3班姓名:方超

数据库作业解答: 第二章 1、指明下列实体间联系的种类: (1)教研室和教师(假设一个教师只属于一个教研室,一个教研室可有多名教师)。 答:一对多 (2)商店和顾客。 答:多对多 2、指出下列关系模式的主码: (1)考试情况(课程名,考试性质,考试日期,考试地点)。假设一门课程在不同的日期可以有多次考试,但在同一天只能考一次。多门不同的课程可以同时进行考试。 答:课程名、考试日期 (2)教师授课(教师号,课程号,授课时数,学年,学期)。假设一名教师在同一学年和

学期可以讲授多门课程,也可以在不同学年和学期多次讲授同一门课程,对每门课程的讲授都有一个授课时数。 答:课程号、学年、学期 (3)图书借阅(书号,读者号,借书日期,还书日期)。假设一个读者可以在不同的日期多次借阅同一本书,一个读者可以同时借阅多本不同的图书,一本书可以在不同的时间借给不同的读者。但一个读者不能在同一天对同一本书借阅多次。 答:书号、读者号、借书日期 第三章 1、数据完整性的含义是什么? 答:数据的完整性是为了防止数据库中存在不符合应用语义的数据,为了维护数据的完整性,数据库管理系统提供了一种机制来检查数据库中的数据,看其是否满足语义规定的条件。这些加在数据库数据之上的语义约束条件就是数据完整性约束条件。 2、在对数据进行什么操作时,系统检查Default约束?进行什么操作时,检查Check约束? 答:插入操作且省略了某些列的值时检查DEFAULT约束。插入和修改操作检查CHECK 约束。 3、UNIQUE约束的作用是什么? 答:限制列的取值不重复。 第六章

数据库上机实验(有答案)

数据库上机实验内容及要求(第二部分) 1.建立工厂管理数据库 工厂(包括厂名和厂长名)需要建立一个管理数据库存储以下信息: (1)一个厂内有多个车间,每个车间有车间号、车间主任姓名、地址和联系电话; (2)一个车间有多个工人,每个工人有职工号、姓名、年龄、性别和工种; (3)一个车间生产多种产品,产品有产品号和价格;每种产品只能由一个车间生产; (4)一个车间制造多种零件,一种零件也可能为多个车间制造。零件有零件号、重量和价格; (5)一种产品可由多种零件组成,一种零件也可以装配出多种产品; (6)产品和零件均存入仓库; (7)厂内有多个仓库,仓库有仓库号、仓库主任姓名和电话。 根据以上需求分析结果,按照下述要求,设计并建立工厂管理数据库。 ◆分析实体及联系,设计E-R图。 ◆将E-R图转换成关系模式,并规范化到3NF。 ◆在Microsoft SQL Server2000中基于“企业管理器”建立数据库及相关对象(主 码,外码,索引,约束等)。 ◆测试数据入库 2.基于“查询分析器”,完成并保存下述题目的SQL脚本 (1)建立“工种”是“钳工”的所有职工详细信息的视图; create view View_工人_钳工 as select* from职工表 where工种='钳工' with check option (2)建立“车间号”是“CJ01”的钳工详细信息的视图; create view View_钳工_CJ01 as select* from View_工人_钳工 where车间号='CJ01' (3)建立使用了“零件号”是“LJ0002”的所有产品详细信息的视图; create view View_产品_零件LJ0002 as select产品表.产品号,价格,车间号,仓库号 from装配表,产品表 where装配表.产品号=产品表.产品号and零件号='LJ0002'(4)对零件表按照“零件号”建立唯一索引; create unique index Index_U_零件号on零件表(零件号) (5)对职工表按照“性别”建立聚簇索引; create clustered index Index_C_性别on职工表(性别) (6)查询使用了“零件号”是“LJ0002”的产品的生产车间号;

数据库第五章作业

第五、六章练习题 一、选择题 1、在关系数据库设计中,子模式设计是在__________阶段进行。[ B] A.物理设计B.逻辑设计C.概念设计D.程序设计 2、设有关系R(A,B,C)的值如下: A B C 2 2 3 2 3 4 3 3 5 下列叙述正确的是(B) A.函数依赖A→B在上述关系中成立B.函数依赖BC→A在上述关系中成立C.函数依赖B→A在上述关系中成立D.函数依赖A→BC在上述关系中成立 3、数据库设计阶段分为(D ) A. 物理设计阶段、逻辑设计阶段、编程和调试阶段 B. 模型设计阶段、程序设计阶段和运行阶段 C. 方案设计阶段、总体设计阶段、个别设计和编程阶段 D. 概念设计阶段、逻辑设计阶段、物理设计阶段、实施和调试阶段 4、下列说法中不正确的是(C)。 A. 任何一个包含两个属性的关系模式一定满足3NF B. 任何一个包含两个属性的关系模式一定满足BCNF C. 任何一个包含三个属性的关系模式一定满足3NF D. 任何一个关系模式都一定有码

5、设有关系模式R(A,B,C,D),F是R上成立的函数依赖集,F={B→C,C→D},则属性C的闭包C+为( C ) A.BCD B.BD C.CD D.BC 6、在数据库设计中,将ER图转换成关系数据模型的过程属于( B ) A.需求分析阶段 B.逻辑设计阶段 C.概念设计阶段 D.物理设计阶段 7、下述哪一条不是由于关系模式设计不当而引起的?(B) A) 数据冗余B) 丢失修改C) 插入异常D) 更新异常 8、下面关于函数依赖的叙述中,不正确的是(B) A) 若X→Y,X→Z,则X→YZ B) 若XY→Z,则X→Z,Y→Z C) 若X→Y,Y→Z,则X→Z D) 若X→Y,Y′ Y,则X→Y′ 9、设U是所有属性的集合,X、Y、Z都是U的子集,且Z=U-X-Y。下面关 于多值依赖的叙述中,不正确的是(C) A) 若X→→Y,则X→→Z B) 若X→Y,则X→→Y C) 若X→→Y,且Y′?Y,则X→→Y′ D) 若Z=Φ,则X→→Y 第(10)至(12)题基于以下的叙述:有关系模式A(C,T,H,R,S),基中各属性的含义是: C:课程T:教员H:上课时间R:教室S:学生

全国计算机三级数据库技术上机试题100道

1.【考点分析】本题考查对4位整数的排序。考查的知识点主要包括:数组元素的排序算法,if判断语句和逻辑表达式,以及求余算术运算。 【解题思路】此题属于4位数排序问题。本题需主要解决3个问题:问题1如何取4位数的后3位进行比较;问题2如何按照题目要求的条件(按照每个数的后3位的大小进行降序排列,如果后3位相等,则按照原始4位数的大小进行升序排列)排序;问题3如何将排完序的前10个数存到数组bb中去。 本题的解题思路为:使用双循环对数组按条件进行排序,然后将排完序的前10个数存到数组bb中。对于问题1可以通过算术运算的取余运算实现(aa[i]%1000);问题2通过包含if判断语句的起泡排序法就可以实现。 【参考答案】 void jsSort() { int i,j; /*定义循环控制变量*/ int temp; /*定义数据交换时的暂存变量*/ for(i=0;i<199;i++) /*用选择法对数组进行排序*/ for(j=i+1;j<200;j++) { if(aa[i]%1000aa[j]) /*则要按原4位数的值进行升序排序*/ { temp=aa[i]; aa[i]=aa[j]; aa[j]=temp; } } for(i=0;i<10;i++) /*将排序后的前10个数存入数组b中*/ bb[i]=aa[i]; } 【易错提示】取4位数后三位的算法,if判断语句中逻辑表达式的比较运算符。 2.【考点分析】本题主要考查的知识点包括:C语言循环结构,if判断语句和逻辑表达式,以及分解多位整数的算术运算。 【解题思路】分析题干,本题除给出条件"SIX+SIX+SIX = NINE+NINE"之外,还可得出2个隐含的条件:条件1:SIX和NINE分别是3位和4位的正整数;条件2:SIX的十位数字等于NINE的百位数字,NINE的千位数字和十位数字相等。 本题解题思路:通过嵌套的循环结构可以遍历到所有的3位和4位数,对于每一个3位数及4位数的组合进行题设条件(SIX+SIX+SIX = NINE+NINE)的判断,满足条件的对其分解得到各数位的数字,再进一步判断各位数字是否满足本题隐含的条件(条件1及条件2),如果满足则个数加1,并将该3位数及4位数添加到和值中。 【参考答案】 void countValue() { int i,j; int s2; int n2,n3,n4; for(i=100;i<1000;i++)

信息管理 数据库 作业答案

信息管理数据库作业答案 下载office文档附件 1. 2.视图消解 因为视图没有真实数据,所以对视图的查询要转换为对相应表的查询,这个过程叫视图消解,视图消解过程由DBMS自动完成 正确答案: 视图是从一个或几个基本表(或视图)导出的表,是一个虚表。将对视图的查询转换为对基本表的查询的过程称为视图的消解。 3.函数依赖 函数依赖是从数学角度来定义的,在关系中用来刻画关系各属性之间相互制约而又相互依赖的情况。其类型包括部分函数依赖、完全函数依赖、传递函数依赖。 正确答案: 设R(U)是属性集U上的关系模式。X,Y是U 的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作X?Y。 4.事务 事务(Transaction)是用户定义的一个对数据库读写操作序列,是一个不可分割的工作单位,也是数据库恢复和并发控制的基本单位。数据库系统中通常有多个事务并行运行。在关系数据库中,事务可以是一条、一组SQL语句,或整个程序。 正确答案: 事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。

5.数据字典 数据字典(Data dictionary)是一种用户可以访问的记录数据库和应用程序元数据的目录。主动数据字典是指在对数据库或应用程序结构进行修改时,其内容可以由 DBMS自动更新的数据字典。被动数据字典是指修改时必须手工更新其内容的数据字典。正确答案: 数据字典是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。 6. 数据库角色 对某个 Analysis Services 数据库具有相同访问权限的用户和组的集合。可以将数据库角色指派给数据库中的多个多维数据集,从而将该角色的用户访问权限授予这些多维数据集。正确答案: 对某个数据库具有相同访问权限的用户和组的集合。 7.简述数据库恢复的基本技术 当系统运行过程中发生故障时,数据库恢复技术将数据库从错误状态恢复到某个一致状态,它是数据库可靠性的保证。数据库恢复的基本原理是利用存储在系统别处的冗余数据来重建其恢复技术的两个关键:(1)如何建立冗余数据(2)如何利用冗余数据恢复数据库正确答案: 数据转储:所谓转储即DBA定期地将整个数据库复制到磁盘或另一个磁盘上保存起来的过程。这些备用的数据文本成为后备副本或后援副本。静态转储:在系统中无运行事物时进行的转储操作。动态转储:在转储期间允许对数据库进行存取或修改。即转储和用户事务可以并发执行。海量转储:每次转储全部数据库增量转储:每次只转储上一次转储后更新过的数据。登记日志文件:日志文件是用来记录事务对数据库的更新操作的文件。为保证数据库是可恢复的,登记日志文件时必须

数据库上机实验题目和答案

试用SQL的查询语句表达下列查询: 1.检索王丽同学所学课程的课程号和课程名。 select Cno ,Cname from c where Cno in (select cno from sc where sno in (select sno from s where sname='王丽' )) 2.检索年龄大于23岁的男学生的学号和姓名。 select sno,sname from s where sex='男' and age>23 3.检索‘c01’课程中一门课程的女学生姓名 select sname from s where sex='女' and sno in (select sno from sc where cno='c01') 4.检索s01同学不学的课程的课程号。 select cno from c where cno not in (select cno from sc where sno ='s01') 5.检索至少选修两门课程的学生学号。 select sc.sno from s,sc where s.sno=sc.sno group by sc.sno having count(https://www.doczj.com/doc/ea13224754.html,o)>=2 6.每个学生选修的课程门数。 解法一: select so.sno sno,https://www.doczj.com/doc/ea13224754.html,ount,s.sname from(select sc.sno sno,count(sc.sno) ccount from sc,s where s.sno=sc.sno group by sc.sno ) so,s where s.sno=so.sno 解法二: select sc.sno sno,s.sname,count(sc.sno) ccount from sc,s where s.sno=sc.sno group by sc.sno,sname

数据库系统概论第五版课后习题答案王珊

第1章绪论 1 .试述数据、数据库、数据库系统、数据库管理系统的概念。 答: ( l )数据( Data ) :描述事物的符号记录称为数据。数据的种类有数字、文字、图形、图像、声音、正文等。数据与其语义是不可分的。解析在现代计算机系统中数据的概念是广义的。早期的计算机系统主要用于科学计算,处理的数据是整数、实数、浮点数等传统数学中的数据。现代计算机能存储和处理的对象十分广泛,表示这些对象的数据也越来越复杂。数据与其语义是不可分的。 500 这个数字可以表示一件物品的价格是 500 元,也可以表示一个学术会议参加的人数有 500 人,还可以表示一袋奶粉重 500 克。 ( 2 )数据库( DataBase ,简称 DB ) :数据库是长期储存在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。( 3 )数据库系统( DataBas 。 Sytem ,简称 DBS ) :数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。解析数据库系统和数据库是两个概念。数据库系统是一个人一机系统,数据库是数据库系统的

一个组成部分。但是在日常工作中人们常常把数据库系统简称为数据库。希望读者能够从人们讲话或文章的上下文中区分“数据库系统”和“数据库”,不要引起混淆。 ( 4 )数据库管理系统( DataBase Management sytem ,简称 DBMs ) :数据库管理系统是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。 DBMS 的主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能。解析 DBMS 是一个大型的复杂的软件系统,是计算机中的基础软件。目前,专门研制 DBMS 的厂商及其研制的DBMS 产品很多。著名的有美国 IBM 公司的 DBZ 关系数据库管理系统和 IMS 层次数据库管理系统、美国 Oracle 公司的 orade 关系数据库管理系统、 s 油 ase 公司的 s 油ase 关系数据库管理系统、美国微软公司的 SQL Serve ,关系数据库管理系统等。 2 .使用数据库系统有什么好处? 答: 使用数据库系统的好处是由数据库管理系统的特点或优点决定的。使用数据库系统的好处很多,例如,可以大大提高应用开发的效率,方便用户的使用,减轻数据库系统管理人员维护的负担,等等。使用数据库系统可以大大提高应用开

数据库上机习题及答案

数据库及应用复习题 一、设计题 有一个[学生课程]数据库,数据库中包括三个表: 学生表Student由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,记为: Student(Sno,Sname,Ssex,Sage,Sdept) ,Sno 为关键字。 课程表Course由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,记为:Course(Cno,Cname,Cpno,Ccredit) Cno为关键字。 成绩表SG由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,记为:SG(Sno,Cno,Grade) (SNO, CNO)为关键字。 用SQL语言实现下列功能: 1.建立学生表Student,其中学号属性不能为空,并且其值是唯一的。 2.向Student表增加“入学时间(Scome)”列,其数据类型为日期型。 3.查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列。4.查询学习1号课程的学生最高分数、平均成绩。 5.查询与“李洋”在同一个系学习的学生。 6.将计算机系全体学生的成绩置零。 7.删除学号为05019的学生记录。 8.删除计算机系所有学生的成绩记录。 1. CREATETABLE Student (Sno CHAR(5) NOT NULL UNIQUE, Sname CHAR(20), Ssex CHAR(2), Sage INT, Sdept CHAR(15)) 2. ALTER TABLE Student ADD Scome DATETIME 3. SELECT Sno, Grade FROM SG WHERE Cno='3' ORDER BY Grade DESC 4. SELECT MAX(Grade), AVG(Grade) FROM SC WHERE Cno='1' 5. SELECT Sno, Sname, Sdept FROM Student WHERE Sdept IN

数据库实验上机答案整理-中国石油大学-龚安

实验四SQL练习2 一、实验目的 1.掌握索引的建立、删除及使用; 2.掌握单表查询、连接查询、嵌套查询和集合查询; 3.掌握插入数据、修改数据和删除数据语句的非常用形式。 二、实验学时 2学时 三、实验内容 1.利用Query Analyzer完成以下操作: ⑴在预算日期、结算日期和入账日期上分别建立索引,并在查询操作中体会索引的作用。 ⑵在完成第2题的查询操作后,删除预算日期、结算日期和入账日期上的索引。 2.利用Query Analyzer完成以下操作: ⑴采油一矿二队2016-5-1到2016-5-28有哪些项目完成了预算,列出相应明细。 ⑵采油一矿二队2016-5-1到2016-5-28有哪些项目完成了结算,列出相应明细。 ⑶采油一矿二队2016-5-1到2016-5-28有哪些

项目完成了结算,列出相应的材料费消耗明细。 ⑷采油一矿二队2016-5-1到2016-5-28有哪些项目完成了入账,列出相应明细。 ⑸列出采油一矿二队2016-5-1到2016-5-28总的预算金额。 ⑹列出采油一矿二队2016-5-1到2016-5-28总的结算金额。 ⑺列出采油一矿二队2016-5-1到2016-5-28总的入账金额。 ⑻列出采油一矿2016-5-1到2016-5-28总的入账金额。 ⑼有哪些人员参与了入账操作。 ⑽列出2016-5-1到2016-5-28进行了结算但未入账的项目。 ⑾列出采油一矿二队的所有项目,按入账金额从高到低排列。 ⑿列出有哪些施工单位实施了项目,并计算各单位所有项目结算金额总和。 ⒀找出消耗了材料三且消耗超过了2000元的项目,列出相应消耗明细(利用子查询)。 ⒁作业公司二队参与了哪些项目。 ⒂作业公司一队和二队参与了哪些项目(利用

数据库作业(答案)

《数据库原理与应用》综合设计任务书 前言 《数据库原理与应用》课程的重点知识模块包括:1)数据库设计、2)用SQL实现建库、建表、查询、更新、和创建视图、3)存储过程和触发器设计。针对这三个应用能力,用一个案例作为背景,布置三次大作业。 在校大学生都能理解“图书管理系统”的应用场合和业务流程。因此,以图书管理系统作为案例来布置作业,可以降低业务分析难度,让学生将主要精力放在知识消化与技术应用上。 本文档包括四个部分。第一部分描述系统的需求,第二部分提出E-R模型设计和关系模型设计的任务;第三部分提出在SQL Server中,用SQL语句来建库、建表、查询、更新数据、创建视图的任务;第四部分,根据应用需求、安全需求和数据完整性要求,提出设计存储过程和触发器的任务。 每个任务之前,都给出了完成任务所需要掌握的关键知识点,学生可以在对这些知识点进行复习的基础上完成任务,每个任务是一次大作业。 第一部分案例的需求描述 本部分描述“图书管理系统”的需求,学生通过阅读本部分内容,了解系统的功能要求、运行环境,对系统所需的数据有总体认识,作为三次作业的基础。 1.2 需求分析 1)功能需求

图1-1:功能需求示意图 教师信息管理:用于教师基本资料的增删改查。 图书信息管理:用于图书基本信息的增删改查,分类统计图书册数和价值。 借书登记:记录借书时间、所借图书、借书人、办理人。 还书登记:记录还书时间、所还图书、还书人、办理人。 催还:查询借阅逾期的借书信息,给借书人发电子邮件,给借书人的部门打电话。 2)运行环境要求 图1-2:运行环境拓扑图 系统采用C/S模式,有两台PC和一台服务器,联成一个局域网。PC上安装图书管理软件的客户端,服务器上安装DBMS,服务器也可由两台PC中的一台来代替。 第二部分作业1——E-R模型与关系模型设计 (满分8分)

相关主题
文本预览
相关文档 最新文档