2022年软考-数据库系统工程师考前模拟强化练习题10(附答案详解)

上传人:住在****她 文档编号:101048053 上传时间:2022-06-04 格式:DOCX 页数:19 大小:55.20KB
返回 下载 相关 举报
2022年软考-数据库系统工程师考前模拟强化练习题10(附答案详解)_第1页
第1页 / 共19页
2022年软考-数据库系统工程师考前模拟强化练习题10(附答案详解)_第2页
第2页 / 共19页
2022年软考-数据库系统工程师考前模拟强化练习题10(附答案详解)_第3页
第3页 / 共19页
点击查看更多>>
资源描述
2022年软考-数据库系统工程师考前模拟强化练习题(附答案详解)1. 单选题在TCP/IP协议栈中,应用层协议数据单元为( )。问题1选项A.消息B.段C.用户数据报D.帧【答案】A【解析】在TCP/IP协议栈中,应用层协议数据单元为消息或者报文。其中段是传输层,用户数据报是网络层,帧是数据链路层。物理层是比特流。应用层消息、报文(message)传输层数据段(segment)网络层分组、数据包(packet)链路层帧(frame)物理层比特流2. 案例题阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】某商业银行账务系统的部分关系模式如下:账户表:Account (ano, aname, balance),其中属性含义分别为:账户号码,账户名称和账户余额。交易明细表:TranDetails (too, ano, ttime, toptr, amount, ttype),其中属性分别为:交易编号,账户号码,交易时间,交易操作员,交易金额,交易类型(1-存款,2-取款,3-转账)。余额汇总表:AcctSums (adate, atime, allamt),其中属性分别为:汇总日期,汇总时间,总余额。常见的交易规则如下:存/取款交易:操作员核对用户相关信息,在系统上执行存/取款交易。账务系统增加/ 减少该账户余额/并在交易明细表中增加一条存/取款交易明细。转账交易:操作员核对用户相关信息,核对转账交易账户信息,在系统上执行转账交易。账务系统对转出账户减少其账户余额,对转入账户增加其账户余额,并在交易明细表中增加一条转账交易明细。余额汇总交易:将账户表中所有账户余额累计汇总。假定当前账户表中的数据记录如表5-1所示。表5-1请根据上述描述,回答以下问题。【问题1】(3分)假设在正常交易时间,账户上在进行相应存取款或转账操作时,要执行余额汇总交易。下面是用SQL实现的余额汇总程序,请补全空缺处的代码。要求(不考虑并发性能)在保证余额汇总交易正确性的前提下,不能影响其他存取款或转账交易的正确性。CREATE PROCEDURE AcctSum(OUT: Amts DOUBLE)BEGINSET TRANSACTION ISOLATION LEVEL( a );BEGIN TRANSACTION;SELECT sum(balance) INTO : Amts FROM Accounts; if error/ error是由DBMS提供的上一句SQL的执行状态 BEGINROLLBACK;return -2;ENDINSERT INTO AcctSumsVALUES (getDATE(), getTIME(), ( b ));if error / error是由DBMS提供的上一句SQL的执行状态BEGINROLLBACK; return-3; END( c );END【问题2】(8分)引入排它锁指令LX()和解锁指令UX(),要求满足两段锁协议和提交读隔离级别。假设在进行余额汇总交易的同时,发生了一笔转账交易。从101账户转给104账户400元。 这两笔事务的调度如表5-2所示。表5-2 转账汇总部分事务调度表(1)请补全表中的空缺处(a)、(b);(2)上述调度结束后,汇总得到的总余额是多少?(3)该数据是否正确?请说明原因。【问题3】(4分)在【问题2】的基础上,引入共享锁指令LS()和解锁指令US()。对【问题2】中的调度进行重写,要求满足两段锁协议。两个事务执行的某种调度顺序如表5-3所示,该调度顺序使得汇总事务和转账事务形成死锁。请补全表中的空缺处(a)、(b)。表5-3 转账汇总部分事务调度表【答案】【问题1】(3分)(a)SERIALIZABLE(b):Amts(c)COMMIT; return 0;【问题2】(8分)(1)(a)等待 (b)UX(101),UX(104)(2)汇总后余额=500+350+550+600=2000(3)不正确。事务并发过程中,在加锁前,汇总事务已经读取了101账户余额,而转账事务在后面对其进行了更新,所以影响了最终结果。这里是不可重复读问题。【问题3】(4分)(a)LX(104),更新104账户余额(b)LX(101),更新101账户余额【解析】【问题1】(a)空根据题干要求“要求(不考虑并发性能)在保证余额汇总交易正确性的前提下,不能影响其他存取款或转账交易的正确性。”因此对效率不作要求,对隔离要求比较高,选择SERIALIZABLE方式。READ COMMITTED指定在读取数据时控制共享锁以避免脏读,但数据可在事务结束前更改,从而产生不可重复读取或幻像数据。该选项是 SQL Server 的默认值。READ UNCOMMITTED执行脏读或 0 级隔离锁定,这表示不发出共享锁,也不接受排它锁。当设置该选项时,可以对数据执行未提交读或脏读;在事务结束前可以更改数据内的数值,也可以出现在数据集中或从数据集消失。该选项的作用与在事务内所有语句中的所有表上设置 NOLOCK 相同。这是四个隔离级别中限制最小的级别。REPEATABLE READ锁定查询中使用的所有数据以防止其他用户更新数据,但是其他用户可以将新的幻像行插入数据集,且幻像行包括在当前事务的后续读取中。因为并发低于默认隔离级别,所以只在必要时才使用该选项。SERIALIZABLE在数据集上放置一个范围锁,以防止其他用户在事务完成之前更新数据集或将行插入数据集内。这是四个隔离级别中限制最大的级别。因为并发级别较低,所以应只在必要时才使用该选项。该选项的作用与在事务内所有 SELECT 语句中的所有表上设置 HOLDLOCK 相同。(b)空是对参数的返回。(c)空是事务正常提交结束,根据前面的格式可以看到,除了确认提交,还需要返回值,此时返回0。【问题2】(1)(a)空读取104账户余额时,该数据已被加写锁,因此需要等待转账事务释放锁;(b)空是对锁的释放。(2)本题主要考查的是,101账户余额在加锁之前已被读取,会影响结果。最终结果应该是500+350+550+600=2000。(3)问题2的计算结果并不正确,101读取的是原始值而不是实时值,后面被转账事务做了修改。【问题3】本题没有给出解锁过程,一个空需要填写多个语句。3. 单选题操作系统中,短期调度指的是( )。问题1选项A.作业调度B.进程调度C.线程调度D.CPU调度【答案】B【解析】长期调度,又称为作业调度或高级调度,这种调度将已进入系统并处于后备状态的作业按某种算法选择一个或一批,为其建立进程,并进入主机,当该作业执行完毕时,还负责回收系统资源,在批处理系统中,需要有作业调度的过程,以便将它们分批地装入内存,在分时系统和实时系统中,通常不需要长期调度。它的频率比较低,主要用来控制内存中进程的数量。中期调度,又称为交换调度。它的核心思想是能将进程从内存或从CPU竞争中移出,从而降低多道程序设计的程度,之后进程能被重新调入内存,并从中断处继续执行,这种交换的操作可以调整进程在内存中的存在数量和时机。其主要任务是按照给定的原则和策略,将处于外存交换区中的就绪状态或等待状态的进程调入内存,或把处于内存就绪状态或内存等待状态的进程交换到外存交换区。短期调度,又称为进程调度、低级调度或微观调度。这也是通常所说的调度,一般情况下使用最多的就是短期调度。它的主要任务是按照某种策略和算法将处理机分配给一个处于就绪状态的进程,分为抢占式和非抢占式。4. 单选题同一进程的多个线程共享的内容不包括( )。问题1选项A.地址空间B.栈C.全局变量D.记账信息【答案】B【解析】线程共享地址空间,但线程的私有数据、线程栈等又是需要单独保存的。所以,地址空间、全局变量、记账信息都是可共享的。5. 案例题阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。【说明】某学生信息管理系统的部分数据库关系模式如下:学生:Student ( stuno, stuname, stuage, stusex, schno),各属性分别表示学生的学号、姓名、年龄、性别,以及学生所属学院的编号;- stuno 主键学院:School ( schno, schname, schstunum ),各属性分别表示学院的编号、名称及学生人数;- schno 主键俱乐部:Club (clubno,clubname, clubyear, clubloc ),各属性分别表示俱乐部的编号、名称、成立年份和活动地点; - clubno 主键参加:JoinClub ( stuno, clubno. joinyear ),各属性分别表示学号、俱乐部编号,以及学生加入俱乐部 的年份。 - stuno, clubno 主键有关关系模式的说明如下:(1) 学生的性别取值为F和M (F表示女性,M表示男性)。(2) 删除一个学院的记录时,通过外键约束级联删除该学院的所有学生记录。(3) 学院表中的学生人数值与学生表中的实际人数要完全保持一致。也就是说,当学生表中增减记录时,就要自动修改相应学院的人数。根据以上描述,回答下列问题,将SQL语句的空缺部分补充完整。【问题1】(4分)请将下面创建学生表的SQL语句补充完整,要求定义实体完整性约束、参照完整性 约束,以及其他完整性约束。CREATE TABLE Student (stuno CHAR(ll) ( a ),stuname VARCHAR,stuage SMALLINT,stusex CHAR(l) ( b),schno CHAR(3) ( c) ON DELETE ( d));【问题2】(5分)创建倶乐部人数视图,能统计每个倶乐部已加入学生的人数,属性有clubno clubname 和clubstunum。对于暂时没有学生参加的俱乐部,其人数为0。此视图的创建语句如下, 请补全。CREATE VIEW CS_NUMBER ( clubno, clubname, clubstunum ) ASSELECT JoinClub.clubno, ( e ) , ( f )FROM JoinClub, ClubWHERE JoinClub.clubno = Club.clubno( g ) BY JoinClub.clubno (h )SELECT clubno, clubname, 0 FROM ClubWHERE clubno NOT IN(SELECT DISTINCT clubno FROM ( i));【问题3】(4分)每当系统中新加或删除一个学生,就需要自动修改相应学院的人数,以便保持系统中学生人数的完整性与一致性。此功能由下面的触发器实现,请补全。CREATE TRIGGER STU_NUM_TRGAFTER INSERT OR DELETE ON ( j )REFERENCING new row AS nrow, old row AS orow FOR EACH(k )BEGINIF INSERTING THENUPDATE School ( l )END IF;IF DELETING THENUPDATE School ( m);END IF;END;【问题4】(2分)查询年龄小于19岁的学生的学号、姓名及所属学院名,要求输出结果把同一个学院的学生排在一起。此功能由下面的SQL语句实现,请补全。SELECT stuno, stuname, schname FROM Student, School WHERE Student.schno = School.schnoAND stuage 【答案】【问题1】(4分)(a)PRIMARY KEY(b)CHECK VALUES IN(F, M)或CHECK (stusex IN(F,M)或其他等价形式(c)REFERNCES School(schno)(d)CASCADE【问题2】(5分)(e)min(clubname)或者max(clubname)(f)COUNT(stuno) 或者count(*)(g)GROUP(h)UNION(i)JoinClub【问题3】(4分)(j)Student(k)ROW(l)SET schstunum=schstunum+1 where School.schno= nrow.schno(m)SET schstunum=schstunum-1 where School.schno=orow.schno【问题4】(2分)(n)order(o)Student.schno 或 School.schno6. 单选题甲、乙两公司于2020年7月7日就各自开发的库存管理软件分别申请“宏达”和“鸿达”商标注册,两个库存管理软件相似,甲第一次使用时间为2019年7月,乙第一次使用时间为2019年5月,此情形下,( )能获准注册。问题1选项A.“宏达”B.“宏达”和“鸿达”均可以C.由甲、乙协商哪个D.“鸿达”【答案】D【解析】谁先申请谁拥有(除知名商标的非法抢注)同时申请,则根据谁先使用(需提供证据)无法提供证据,协商归属,无效时使用抽签(但不可不确定)7. 单选题根据计算机软件保护条例的规定,对软件著作权的保护不包括( )。问题1选项A.目标程序B.软件文档C.源程序D.开发软件所用的操作方法【答案】D【解析】开发软件所用的思想、处理过程、操作方法或者数学概念不受保护。8. 单选题属性指的是表中的一个( )。问题1选项A.记录B.列C.元组D.码【答案】B【解析】关系数据库中的关系模型事实上可以看作是一个二维表,这个二维表中的列称为属性(或字段),行称为元组(或记录)。9. 单选题ISO软件质量模型由3个层次组成,分别是质量特性,质量子特性和最度指标。例如( )质量子特性属于可靠性质量特性。问题1选项A.依从性B.成熟性C.易操作性D.易安装性【答案】B【解析】ISO软件质量模型:软件质量的6大特性:功能性、可靠性、易用性、效率、维护性、可移植性软件质量的27个子特性:功能性:适合性、准确性、互操作性、安全性、功能性的依从性可靠性:成熟性、容错性、可恢复性、可靠性的依从性易用性:易理解、易学习、易操作、吸引性、可使用性的依从性效率:时间特性、资源特性、效率的依从性维护性:易分析性、稳定性、易变更性、易测试性、可维护性的依从性可移植性:适应性、易安装性、遵循性、易替换性、可移植性的依从性10. 单选题数据库故障恢复中,根据日志文件进行的撤销操作是( )。问题1选项A.REDOB.ROLLBACKC.UNDOD.COMMIT【答案】C【解析】REDO是重做操作;UNDO是撤销操作。11. 单选题以下关于哈希函数的说法中,不正确的是( )。问题1选项A.哈希表是根据键值直接访问的数据结构B.随机预言机是完美的哈希函数C.哈希函数具有单向性D.哈希函数把固定长度输入转换为变长输出【答案】D【解析】Hash,一般翻译为散列、杂凑,或音译为哈希,是把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。哈希表是根据键(Key)而直接访问在内存存储位置的数据结构。在密码学里面,随机预言机(英语:Random oracle)是一部预言机,对任何输入都回传一个真正均匀随机的输出,不过对相同的输入,该预言机每次都会用同一方法输出。换句话说,随机预言机是一个将所有可能输入与输出作随机映射的函数。12. 单选题以下关于触发器的说法中,错误的是( )。问题1选项A.触发器可以带参数B.触发器不能被应用程序显式调用C.触发器可以关联到基本表D.一个基本表上可以定义多个触发器【答案】A【解析】触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作(insert,delete,update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。触发器可以查询其他表,而且可以包含复杂的SQL语句。触发器也可用于强制引用完整性,以便在多个表中添加、更新或删除行时,保留在这些表之间所定义的关系。触发器是不能被应用程序显示调用,所以也是不能带参数的。所以,错误的选项是A。13. 单选题在一个关系表中,各表的行代表( )。问题1选项A.关系B.外码C.元组D.属性【答案】C【解析】关系数据库中的关系模型事实上可以看作是一个二维表,这个二维表中的列称为属性(或字段),行称为元组(或记录)。14. 单选题结构化查询语言(SQL)的出现,极大地促进了( )的应用。问题1选项A.层次数据库B.网络数据库C.关系数据库D.文件管理系统【答案】C【解析】SQL是一门ANSI的标准计算机语言,用来访问和操作数据库系统。SQL可与数据库程序协同工作,而关系型数据库管理系统使用的就是SQL语言进行数据的操作。15. 单选题关系模型中,一组具有相同数据类型的值的集合称为( )。问题1选项A.域B.变量C.分量D.元组【答案】A【解析】域:关系模型中,一组具有相同数据类型的值的集合称为域。元组:关系中的一行即为一个元组。分量:元组中的一个属性值,称为分量。例如,在学生基本信息登记表中元组的每一个属性值: “张三”、“女”、“2020/1/1”都是它的分量。16. 单选题根据计算机软件保护条例的规定,著作权法保护的计算机软件是指( )。问题1选项A.程序及其相关文档B.处理过程及开发平台C.开发软件所用的算法D.开发软件所用的操作方法【答案】A【解析】计算机软件著作权的客体是指著作权法保护的计算机软件著作权的范围(受保护的对象)。根据中华人民共和国著作权法第三条和计算机软件保护条例第二条的规定,著作权法保护的计算机软件是指计算机程序及其有关文档。根据计算机软件保护条例第三条第一款的规定,计算机程序是指为了得到某种结果而可以由计算机等具有信息处理能力的装置执行的代码化指令序列,或者可被自动转换成代码化指令序列的符号化语句序列。计算机程序包括源程序和目标程序,同一程序的源程序文本和目标程序文本视为同一软件作品。根据计算机软件保护条例第三条第二款的规定,计算机程序的文档是指用自然语言或者形式化语言所编写的文字资料和图表,以用来描述程序的内容、组成、设计、功能规格、开发情况、测试结果及使用方法等。文档一般以程序设计说明书、流程图、用户手册等表现。 因此,答案为A。 17. 单选题在一个关系型数据库中,参照完整性约束可以通过( )来实现。问题1选项A.主码B.候选码C.外码D.锁【答案】C【解析】参照完整性/引用完整性:规定,若F是基本关系R的外码,它与基本关系S的主码K,相对应(基本关系R和S不一定是不同的关系),则R中每个元组在F上的值必须为:或者取空值;或者等于S中某个元组的主码值。所以,在一个关系型数据库中,参照完整性约束可以通过外码来实现。18. 单选题( )软件成本估算模型是一种静态单变量模型,用于对整个软件系统进行估算。问题1选项A.PutnamB.基本COCOMOC.中级COCOMOD.详细COCOMO【答案】B【解析】基本COCOMO是一种静态的单值模型,它使用以每千源代码行数(KLoC)来度量的程序大小来计算软件开发的工作量(及成本)。COCOMO可以应用于三种不同的软件项目:有机项目相对较小、较简单的软件项目,由较小的有经验的团队来完成,需求较少并且没有过分严格的限定。中度分离项目指中等规模(大小及复杂度)的软件项目,由不同经验水平的人组成的团队来完成,需求中既有严格的部分也有不太严格的部分。嵌入式项目指软件项目必须依赖于一套紧凑的硬件、软件以及符合操作的限制。19. 单选题下列属于CPU中算术逻辑单元的部件是( )。问题1选项A.程序计数器B.加法器C.指令寄存器D.指令译码器【答案】B【解析】算术逻辑单元是运算器的重要组成部件,负责处理数据,实现对数据的算术运算和逻辑运算。所以本题正确的选项是BCPU中其他部件作用:程序计数器是用于存放下一条指令所在单元的地址的地方。在程序执行前,必须将程序的起始地址,即程序的一条指令所在的内存单元地址送入程序计数器,当执行指令时,CPU将自动修改程序计数器的内容,即每执行一条指令程序计数器增加一个量,使其指向下一个待指向的指令。程序的转移等操作也是通过该寄存器来实现的。累加器是专门存放算术或逻辑运算的一个操作数和运算结果的寄存器。ALU是CPU的执行单元,主要负责运算工作。指令寄存器一般用来保存当前正在执行的一条指令。数据寄存器主要是用来保存操作数和运算结果等信息的,其目的是为了节省读取操作数所需占用总线和访问存储器的时间。地址寄存器一般用来保存当前CPU所访问的内存单元的地址,以方便对内存的读写操作。作为程序员,应该要能控制其所编写程序的执行过程,这就需要利用程序计数器来实现,因此程序员能访问的是程序计数器。20. 单选题通过将一个关系拆分成两个更小的关系来使其满足范式时,必须( )来保持数据的完整性约束。问题1选项A.用相同的属性使两个子关系互相关联B.移除两个子关系中所有的函数依赖C.封锁机制D.事务机制【答案】A【解析】通过将一个关系拆分成两个更小的关系来使其满足范式时,必须用相同的属性使两个子关系互相关联来保持数据的完整性约束。
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!