1、2023年9月计算机四级数据库工程师笔试试题:文字版一、选择题(1)视图是数据库中的重要对象,下列有关视图的说法错误的是A)一般情况下,数据库只存储视图的定义,其数据仍存放在相关的基本表中B)可以将复杂的查询语句封装在视图中以简化相关查询语句的编写C)通过视图可以屏蔽不希望用户看到的敏感数据,提高数据库数据的安全性D)可以在视图的基础上建立新的视图,但这样定义的视图会导致数据库性能下降,一般不推荐使用(2)在概念数据模型中,联系用于描述现实世界中事物之间的关联关系。一阿d关于联系的说法错误的是A)联系可用于描述一个实体集内记录之间的关联关系B)联系可用于描述两个实体集属性之间的关联关系C)ER
2、模型通过1:1、1:n和m:n三种联系描述现实世界中各类事物之间的关联关系D)最终的IDEFIX模型中只能出现I:1和1:n两种类型的联系(3)在关系数据库中,NULL是一个特殊值,在很多数据操作中都需要对NULL进行特殊解决。关于NULL,下列说法对的的是A)判断元组的某一列是否为NULL一般使用“=NULL”B)NULL在数据库中表达尚不拟定的值C)在SQL Server 2023中执行“SELECT NULL+5”将会出现异常D)NULL只合用于字符和数值类型(4)某教务管理系统包含选课模块、成绩录入模块和学籍管理模块。选课模块面向学校几万名学生,成绩录入模块面向学校上千名任课教师,学籍
3、管理模块面向少量有一定权限的管理人员。该系统是上世纪用C/S结构和相关技术开发的,为了方便用户使用,需要对系统进行升级和改造。设有下列技术改造方案:I.选课模块和成绩录入模块采用B/S结构进行改造,学籍管理模块仍采用C/S结构II.选课模块采用B/S结构进行改造,成绩录入模块和学籍管理模块仍采用C/S结构III.选课模块、成绩录入模块和学籍管理模块均采用B/S结构进行改造.成绩录入模块采用B/S结构进行改造,选课模块和学籍管理模块仍采用C/S结构上述方案中,较为合理的是A)仅I和II B)仅I、II和III C)仅I和III D)仅II、III和IV(5)数据库在外存中是以文献形式组织的,组织
4、文献记录方法的不同就形成了不同的文献结构。下列关于顺序文献结构及其存取效率的说法错误的是A)顺序文献因其记录按照查找码值升序或降序排列,当按照查找码的值顺序读取记录时其效率很高B)当按照一定的条件对顺序文献进行查询时,假如查询条件定义在查找码上,可以使用二分查找技术快速找到满足条件的记录C)由于需要保持文献中记录的顺序,因此顺序文献的插入和删除操作比较复杂,花费时间也较多D)对顺序文献进行条件查询时,假如查询条件没有定义在查找码上,其查找效率一般也会比无序文献高(6)死锁是数据库系统中也许出现的一种状态。下列有关死锁的说法错误的是A)当事务由于无法获得对需要访问的数据项的控制权而处在等待状态时
5、,称数据库中产生了死锁B)死锁是由于系统中各事务间存在冲突操作且冲突操作的并发执行顺序不妥而产生的C)死锁防止可以使用一次加锁和顺序加锁两种方法,其中一次加锁法也许会减少系统的并发限度D)解除死锁通常采用的方法是选择一个或儿个导致死锁的事务,撤消这些事务并释放其持有的锁(7)某系统中事务T1从账户A转出资金到账户B中,在此事务执行过程中,另一事务T2要进行所有账户余额记录操作。在T1和T2事务成功提交后,数据库服务器忽然掉电重启。为了保证T2事务记录结果及重启后A, B两账户余额对的,需运用到的事务性质分别是A)一致性和隔离性 B)隔离性和持久性C)原子性和一致性 D)原子性和持久性(8)设有
6、关系模式SC(Sno, Sname, Sex, Birthday, Cno, Cname, Grade, Tno, Tname)满足函数 依赖集:SnoSname, SnoSex, SnoBirthday, CnoCname, (Sno, Cno)Grade, TnoTname.SC的主码和属性集(Sno, Tno)的闭包分别是A)(Sno,Tno)和Cno,Cname,Grade,Tno,TnameB)(Sno, Cno, Tno)和Sno, Sname, Sex, Birthday, CnoC)(Sno, Cno)和Sno, Sname, Sex, Birthday, Cno, Cname
7、, GradeD)(Sno, Cno, Tno)和Sno, Sname, Sex, Birthday, Tno, Tname(9)数据库应用系统是面向数据管理和数据解决的软件系统。下列有关数据库应用系统开发及其生命周期说法中,错误的是A)数据库应用系统安全性需求分析中,需考虑系统应达成的安全控制级别。按照可信计算机系统评测标准,安全性不高的系统其安全控制级别一般应定为C级B)数据库应用系统性能分析一般使用每TPS代价值来衡量系统性价比C)在数据库应用系统生命周期模型中,规划与分析阶段应生成项目计划书、可行性分析报告和需求说明文档D)数据库应用系统可行性分析需要从技术、经济、操作等方面评估和判断
8、该项目是否可行,是否可以达成预期目的(10)在数据库应用系统实行、运营和维护过程中,设有下列活动:I.在系统运营过程中,对数据库的空间增长情况进行监控II.在系统运营过程中,对数据库系统各时段CPU和内存使用情况进行监控III.在数据库系统实行时,运营DDL代码建立关系表IV.建立关系表以后编写系统应用程序V.定期进行数据备份以上活动中,二般情况下属于DBA任务的是A)仅I、II和V B)仅I和II C)仅I、II和III D)仅III, IV和V(11)在SQL Server 2023中,Userl是销售数据库中的用户,并只被授予了销售明细表数据的删除权限,则Userl用户在该数据库中可以执
9、行的操作是A)删除销售明细表中的所有数据 B)删除销售明细表中的指定数据C)查询销售明细表中的所有数据 D)以上操作都可以(12)在SQL Server 2023中,要对数据库GoodsDB进行一次差异备份,将其备份到设备Backup 1上(该设备已建立好),并规定该次备份操作清除Backupl中己有的备份内容。下列能实现该备份规定的语句是A)BACKUP DATABASE GoodsDB TO Backupl DIFFERENTIAL,WITH NOINITB)BACKUP DATABASE GoodsDB TO Backupl WITH DIFFERENTIAL,NOINITC)BACKU
10、P DATABASE GoodsDB TO Backupl DIFFERENTIAL,WITHINITD)BACKUP DATABA息E GoodsDB TO Backupl WITH DIFFERENTIAL,INIT(13) ADO对象模型用于简化通过ODBC, OLE DB等接口访问数据库的编程工作。下列关于ADO的说法错误的是A)用ADO对象访问数据库时,仍需依赖OLE DB, ODBC等数据库访问接口B)开发者只需通过使用ADO对象模型中的几个简朴对象的方法和属性即可实现对数据库的访问,因此,使用ADO对象模型可以提高数据访问效率C)ADO是在OLE DB, ODBC等接口基础上设立
11、的高一层接口D)ADO对象模型提供的编程接口与数据提供者无关,提高了数据访问的透明性(14)在SQL Server 2023中,关于dbcreator角色,下列说法对的的是A)该角色是SQL Server系统提供的服务器级角色B)该角色是SQL Server系统提供的数据库级角色C)该角色是系统管理员定义的服务器级角色D)该角色是系统管理员定义的数据库级角色(15)在分布式数据库中,查询解决和优化比集中式数据库要复杂得多,其中的查询优化需要考虑的重要因素涉及I/O代价、CPU代价和通信代价。一般而言,分布式数据库查询优化的首要目的是A)使查询执行时I/O代价最省 B)使查询执行时CPU代价最省
12、C)使查询执行时通信代价最省 D)使查询执行时I/O代价和CPU代价之和最省(16)在SQL Server 2023中,每个数据库都至少包含一个数据文献和一个日记文献,创数据库的重要工作是定义构成数据库的数据文献和日记文献的属性。给定下列属性:I.初始大小II.物理文献名III.最大大小IV.收缩方式V.增长方式以上属于数据库文献属性的是A)仅I、11和III B)仅II、N和V C)仅I、11、III和V D)所有都是(17)在VB 6.0中使用Adodc数据控件可以很方便地实现对数据库数据的插入、删除和修改操作。现假设用Adodc 1数据控件删除其结果集当前行相应的数据库数据,下列实现方案
13、中对的的是A)执行Adodc 1.Delete方法B)执行Adodc l .ReCOrdset.Delete方法C)先执行Adodcl.Delete方法,然后再执行Adodcl.Update方法D)先执行Adodc l .Recordset.Delete方法,然后再执行Adodc 1.Recordset.Update方法(18)设有某转储策略,用该策略对数据库中的某一数据文献f进行转储时,会将其跟上一次的转储文献采用一定机制进行比较,若发现f被修改或f为新文献时才转储该文献,则这种转储策略是A)完全转储 B)增量转储 C)差量转储 D)增量加差量转储(19)设某系统中有商品销售表(商品号,商品
14、类别,数量,单价,销售日期,销售时间),该表数据量大,在I作时间会被频繁插入销售数据。用户需要经常查询天天各类别商品的销售总量。为了提高查询效率,下列措施中最为有效且合理的是A)在商品销售表上针对商品类别和销售日期属性建立索引B)建立商品分类别日销售汇总表(商品类别,销售总量,日期),每产生一条新销售记录时实时更新该表,用户直接使用该表进行查询即可C)在商品销售表的商品号和销售日期属性上建立索引D)建立商品日销售汇总表(商品号,商品类别,销售总量,日期),每产生一条新销售记录时实时更新该表,用户直接使用该表进行查询即可(20)统一建模语言(UML)是一种常用于数据库应用系统设计和开发的可视化建
15、模语言。关于UML,下列说法错误的是A)UML中的视图是由一个或多个图组成的,一个图是系统模型中的某个侧面的展示B)用例图、顺序图和状态图都是UML的行为视图,用于描述系统的功能和活动C)类图和对象图都是UML的结构视图,用于描述系统在某个时间的静态结构D)在用例图中,与系统交互的人和其它实体都可以成为系统的角色(21)在SQL Server 2023中,假如己分派给某个数据库的空间大小远远大于存放该数据库数据需要的实际大小,则应当对该数据库进行收缩,以释放多余的空间。关于收缩数据库,下列说法错误的是A)收缩数据库中的某个文献时,收缩后的文献大小可以小于定义文献时的初始大小B)只能收缩数据库所
16、包含的数据文献,不能收缩其日记文献C)收缩某个具体文献时,只要收缩后的文献空间大于该文献存放数据所需的实际空间,收缩操作即可进行D)按比例收缩数据库时,收缩后的数据库大小不能小于定义数据库时的初始大小(22)数据库概念设计的任务之一是标记和定义实体集。关于如何标记和定义实体集有下列说法:I.被标记的实体集应能被一个属性集描述II.只有一个同类实例的对象集一般情况下也有必要标记成一个实体集III.实体集中的每个实例应可以被唯一标记和区分N.定义实体集时通常用一个故意义的名词命名V.实体集中的每个属性应当用一个故意义的动词命名以上说法对的的是A)仅I、III和N B)仅II、IV和V C)仅I、I
17、V和V D)仅II、III和IV(23)有关系模式:系(系号,系名,系办公电话),教师(教师号,教师名,职称,聘任日期,工资,所在系号)。现要定义下列约束:I.系号是系关系的主码,教师号是教师关系的主码II.职称列的取值只能为“专家、”副专家“、”讲师“、”助教“和”其它“III.专家的默认工资为10000元,副专家的默认五资为8000元,讲师的默认工资为5000元IV.每个教师的所在系号不能为空,且其值必须在系关系中存在若在数据库中实现以上约束,需要使用触发器才干实现的是A)仅I和II B)仅III和N C)仅III D)仅I和N(24)设某大型商场的数据仓库需要采用一定的数据抽取策略从商场
18、业务数据库系统中采集数据。设数据仓库环境中有客户名单、商品销售细节和商品每日销售汇总数据,并有应用系统需要分析每周客户增长趋势和每日商品销售趋势。下列数据抽取或更新策略一般情况下最为合理的是A)天天晚上针对业务系统中的客户名单和商品销售细节做一次快照,然后根据商品销售细节计算销售汇总数据B)天天做一次客户名单快照,根据客户名单的变化修改数据仓库中的最终客户名单。销售细节天天晚上采用增量方式进行抽取,然后根据新增的销售数据更新商品每日销售汇总数据C)每周做一次客户名单快照,天天做一次销售细节快照,然后根据商品销售细节计算销售汇总数据D)每周在发现客户名单中的信息有变化时,对客户名单做一次快照。对
19、销售细节数据采用增量方式,天天抽取一次新的销售数据,然后根据新增的销售数据更新商品每日销售汇总数据(25)数据库技术为大量数据的组织和存储,以及数据的操纵、管理与维护提供了有力的方法和工具。有下列说法:I.与用户自定义文献存储数据的方式相比,数据库不仅能存储数据,还能方便地表达数据之间的关系II.数据库管理系统一般情况下只提供通用的数据解决功能,不提供面向具体应用领域的业务解决功能III.数据页(块)是数据库中存储数据的基本单位,为了提高空间运用率,SQL Server2023等数据库管理系统允许一行数据跨页存储IV.运用数据库技术,可以提高数据的独立性,使数据不再与应用程序紧密地捆绑在一起,
20、实现数据在公司、组织或更大范围内的共享V.数据字典是数据库管理系统的重要组成部分,大部分数据库管理系统的数据字典是由一组系统表和系统视图组成的,这些对象一般由数据库管理系统和数据库管理员共同维护以上说法错误的是A)仅I和III B)仅II和IV C)仅III和V D)仅IV和V(26)设有关系模式Student(Sno, Sname, Sex, Birthday),Course(Cno, Cname, Credit),SC(Sno,Cno, Grade)。若在SQL Server 2023中建有与以上模式相应的关系表,并有如下操作:I.定义Sno是Student关系表主码,定义Cno是Cour
21、se关系表的主码,定义Sno,Cno是SC关系表的主码II.定义Student关系表Sex列的取值只能为”男,或“女”,定义Course关系表Credit列的取值范围是1, 4III.在Student关系表的Sname列上建立一个非聚集索引,在Course关系表的Cname列上建立一个非聚集索引-IV.定义SC关系表的Sno列的取值不能为空,并且其镶一个值必须在Student关系表的Sno列的值集中以上操作对内模式结构有影响的是A)仅I和III B)仅II和III C)仅I和IV D )仅I和II(27)某大型超市的数据库应用系统中,设有下列数据:I.商品清单II. DBMS中的数据字典III
22、.商品销售细节数据IV.数据库结构说明文档V.前端应用程序报表中数据项的定义及说明文档VI.商品分类销售汇总数据以上数据中,一般属于元数据的是A)仅I、III和VI B)仅II、V和VI C)仅I、II和N D)仅II、N和V(28)设有某通信公句面向手机用户的网上通信记录查询数据库系统,该系统为手机用户提供最近一年内用户的短信和通话记录查询功能。在系统上线运营前的实行过程中,设有下列测试活动:I.在指定期间段内,模拟生成N笔特定模式的查询事务,测试服务器能否在这个时间段内完毕这些查询II.用一个手机用户登录,测试系统能否在该用户5分钟内没有任何操作时自动断开该用户的连接III.测试系统在用户
23、通过网页登录时能否生成验证码图片IV.用一个手机用户登录,测试在用户成功登录后系统能否对的地给用户发送一条提醒短信V.测试单个用户查询不同时间跨度的数据所需的平均响应时间以上测试活动中,可以归为性能测试的是A)仅I和V B)仅I、II和IV C)仅II、III和IV D)仅I、II和V(29)在SQL Server 2023中,有学生表(学号,姓名,年龄,所在系),学号是主码。在这个表上建有视图V1,V1视图的定义语句为:CREATE VIEW V1 ASSELECT姓名,年龄,所在系FROM学生表WHERE年龄=(SELECT AVG(年龄)FROM学生表)有下列操作语句:I.UPDATE
24、V1 SET年龄=年龄+1II.SELECT*FROM V1 WHERE年龄20III.DELETE FROM V1 WHERE年龄20IV.INSERT INTO V1 VALUES(,张三,20,计算机系)以上语句能对的执行的是A)仅I和II B)仅II C)仅II和IV D)仅I、II和III(30)为了防止某个数据库系统发生故障,设有下列措施:I.配备UPS保证服务器供电稳定II.采用双硬盘镜像,以防止单个硬盘出现介质损坏而导致数据丢失III.定期给操作系统打补丁,以免操作系统被袭击后重启IV.改善密码管理机制,提高各类密码的安全性,以免发生数据失窃V.加强事务流程测试和验证,以免发生
25、并发事务死锁以上措施中,用于防止数据库系统出现系统故障(软故障)的是A)仅I、II和III B)仅III、IV和V C)仅I和III D)仅IV和V二、应用题(每空2分,共30分)(1)【1】文献支持多种记录类型的存储,这种文献将来自多个关系表不同类型的记录存储在一起,可减少多表查询时磁盘的访问量,提高多表查询的效率。设有表T(c1,c2),c1的数据类型为char(2),规定其第I位的取值范围为1,9,第2位的取值范围为0, 9.实现此规定的约束表达式为CHECK(c1 LIKE“【2】”)。(3)设有某种文献,当向其中插入一条新记录时,一方面读文献头,找到最末磁盘块的地址后将最末磁盘块读入
26、内存缓冲区,在缓冲区内将新插入记录写入该数据块的末尾,然后将缓冲区中修改过的数据块作为最末磁盘块写回磁盘文献。以这种方式组织的文献被称为【3】。(4)在保证数据一致性的加锁协议中,【4】级加锁协议规定事务在读数据项之前必须先对该数据项加共享锁,直到事务结束才释放该锁。(5)运用日记技术进行数据库恢复时,为了使恢复子系统避免对整个日记文献进行检查,需要在日记文献中增长【5】记录。(6)数据库逻辑设计的目的是把概念设计阶段得到的【6】模型转换成所选定的数据库管理系统支持的数据模型。在各种数据环境中,粒度用于描述数据的综合限度。设某系统中有商品销售表(商品号,销售量,单价,日期,时间)和商品周销售表
27、(商品号,周销售量,周),则商品销售表的粒度级要【7】于商品周销售表的粒度级。若两个表的时间跨度相同,则商品销售表中存放的数据量要【8】于商品周销售表的数据量。(8)设有商品表(商品号,商品名,单价)和销售表(商品号,销售时间,销售数量)。现要查询单价高于100元的所有商品的销售总次数和总数量,涉及没有被卖出过的商品(没有被卖出过的商品的销售总次数和总数量置为0)。请补全如下语句:SELECT商品表。商品号,销售总次数=【9】,销售总数量=SUM(销售数量)FROM商品表【10】销售表0N商品表。商品号=销售表。商品号WHERE单价100GROUP BY商品表。商品号(9)在SQL Serve
28、r 2023中,设u1是某数据库中的用户,若要使u1在该数据库中只具有查询所有用户表的权限。请补全如下语句:EXEC sp_addrolemember“【11】”,“【12】”(10)SQL Server 2023内置的系统管理员账户是【13】(11)设在SQL Server 2023平台一民对数据库SalesDB进行了如下图所示的各份操作。己知这三次备份操作均备份在设备BK上,且该设备只包含这三个备份操作的结果。在数据库出现故障后,为尽也许减少数据丢失,需要恢复所有的备份。请补全如下用于恢复日记备份1的SQL语句:RESTORE LOG SalesDB FROM BKWITH【14】【15】
29、三、设计与应用题(共30分)(1)已知某教务管理系统有下列关系模式(带下划线的属性是主码):系(系号,系名)学生(系号,姓名,性别,入学日期,正常毕业日期,所在系号)课程(课程号,课程名,学分,开课系号,教师号)选课(学号,课程号,成绩)教师(教师号,姓名,职称,所在系号)请根据给出的关系模式画出该系统的ER图,图中忽略实体集的属性,但假如实体集之间的联系有属性则需要给出联系的属性。(6分)随着教学改革的需要,该系统需要满足下列需求:I.需为课程增长先修课信息(一门课程可有多门先修课程);II.一门课程可由多名教师讲授,一名教师可以讲授多门课程。请根据以上需求修改关系模式,仅列出有改动的关系模
30、式,并使每个关系模式满足3NF。(4分)(2)在SQLServer2023的某数据库中有如下两张关系表:学生表(学号,姓名,性别,系号),学号为主码系表(系号,系名,系简称),系号为主码在数据库中执行如下T-SQL代码:DECLARE DePtID varchar(10)DECLARE cnt intset cnt=ODECLARE cursor1 cursor FOR SELEET系号FROM系表WHERE系名LIKE%电%OPEN cursorlFETCH NEXT FROM cursor1 INTO DePtIDWHILE FETCH_STATUS=OBEGINDECLARE temp_
31、cnt intsELECT temp_cnt=COUNT(*)FROM学生表WHERE系号=DeptIDset Cnt=cnt+temp_cntFETCH NEXT FROM cursor1 INTO ODePtIDENDCLOSE cursor1DEALLOCATE cursor1SELECT cnt执行过程中发现速度比较慢,为了解决性能问题,需在功能不变的情况下,将此T-SQL代码改为一条SQL语句,请写出此SQL语句(语句中不能具有子查询)并说明为什么此种修改可以提高性能。(5分)设在学生表的(姓名,系号)列上建有一个复合索引,该索引是否有助于提高下列两个语句的查询效率?并说明因素。(5
32、分)SELECT*FROM学生表 WHERE系号=1;SELEET*FRoM学生表WHERE姓名=张三;(3)在SQL server 2023中,设有图书表(书号,书名,类别,单价)和图书印刷表(书号,印刷日期,印刷数量,印次),每个书号代表一种图书。书号、书名和类别的数据类型均为varehar(20),单价、印刷数量和印次的数据类型均为int,印刷日期的数据类型大smalldatetime.现需查询指定类别的图书在指定年份后(含指定年份)累计印刷总数量。请写出实现该功能的标量函数。(10分)参考答案:1-5DABAD6-10AXDCA11-15DDBAC16-20CBBBB21-25BACD
33、C26-30ADAXC(X为未知)【01】聚集【02】1-90-9【03】堆文献【04】三【05】概念【06】检查点【07】低【08】大【09】COUNT(销售表.商品号)【10】LEFT OUTER JOIN【11】db_datareader【12】u1【13】sa【14】FILE=2【15】NORECOVERY1 修改“课程”关系模式为:课程(课程号,课程名,学分,开课系号,教师号,先修课号),主码为“课程号。新增“授课”关系模式:授课(教师号,课程号),主码为“教师号”、“课程号”。2 SELECT COUNT(*) FROM 学生表WHERE系名LIKE %电% 第一句不能,第二句能。
34、系名的反复率太高,姓名的反复率相称低。3CREATE FUNCTION fun-定义函数名为fun(class VARCHAR(20),orderyear CHAR(4)-声明参数(注意与变量名之间不能有空格!)RETURNS INT-声明返回值类型ASBEGIN-定义一个SMALLDATATIME类型的中间变量,用于存放转换后的年份DECLARE tem SMALLDATATIME-定义一个INT类型的变量,用于存放印刷总书目DECLARE cnt INT-把传进来的CHAR(4)类型的年份转换成SMALLDATATIME类型,并存入中间变量SET tem=CONVERT(SMALLDATETIME,orderyear)-SQLSELECT cnt=SUM(印刷数目)FROM 图书表JOIN 图书印刷表ON 图书表.书号=图书印刷表.书号WHERE 类别=class AND 日期=temRETURN cnt-返回把印刷总数量END