2025年软考上半年数据库系统工程师考试真题及答案_第1页
2025年软考上半年数据库系统工程师考试真题及答案_第2页
2025年软考上半年数据库系统工程师考试真题及答案_第3页
2025年软考上半年数据库系统工程师考试真题及答案_第4页
2025年软考上半年数据库系统工程师考试真题及答案_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2025年软考上半年数据库系统工程师考试练习题及答案1.单项选择题(每题1分,共20分。每题只有一个正确答案)1.1在关系数据库中,若关系模式R(A,B,C)满足函数依赖集F={A→B,B→C},则R的候选码为A.A  B.B  C.C  D.AB答案:A1.2下列关于事务隔离级别的说法,正确的是A.读未提交允许脏读但不允许不可重复读B.读已提交允许不可重复读但不允许幻读C.可重复读允许幻读但不允许脏读D.串行化既不允许脏读也不允许不可重复读,但允许幻读答案:C1.3在MySQL8.0中,默认的存储引擎是A.MyISAM  B.InnoDB  C.MEMORY  D.ARCHIVE答案:B1.4给定关系R(A,B)和S(B,C),执行R÷S后得到的关系属性为A.A  B.B  C.C  D.A,C答案:A1.5在分布式数据库的两阶段提交协议中,若协调者在“预提交”阶段后崩溃,参与者应A.立即提交  B.立即回滚  C.进入阻塞等待  D.向其它参与者投票答案:C1.6下列索引结构中,最适合范围查询的是A.Hash索引  B.Bitmap索引  C.B+树索引  D.倒排索引答案:C1.7在Oracle中,用于实现行级锁的语句是A.LOCKTABLE…INEXCLUSIVEMODE  B.SELECT…FORUPDATEC.SELECT…WITHREADONLY  D.SETTRANSACTIONREADONLY答案:B1.8若关系模式R(A,B,C,D)的函数依赖集F={AB→C,C→D,D→A},则R的闭包(AB)+为A.{A,B}  B.{A,B,C}  C.{A,B,C,D}  D.{A,B,D}答案:C1.9在数据库恢复过程中,先写日志后写数据库的原则称为A.WAL  B.ForceLog  C.Checkpoint  D.Redo/Undo答案:A1.10在PostgreSQL中,用于查看当前活跃连接数的系统视图是A.pg_stat_activity  B.pg_locks  C.pg_class  D.pg_database答案:A1.11下列关于视图的说法,错误的是A.视图可以基于多个表创建  B.视图可以更新基表数据C.视图可以建立索引  D.视图可以嵌套定义答案:C1.12在关系代数中,σ条件(R×S)等价于A.R⋈S  B.R∪S  C.R∩S  D.R÷S答案:A1.13若事务T1对数据A加共享锁,事务T2对数据AA.只能加排他锁  B.只能加共享锁  C.不能加任何锁  D.可以加共享锁或排他锁答案:B1.14在SQLServer中,启用行版本隔离级别的命令是A.SETTRANSACTIONISOLATIONLEVELSNAPSHOTB.SETALLOW_SNAPSHOT_ISOLATIONONC.ALTERDATABASE…SETREAD_COMMITTED_SNAPSHOTOND.DBCCUSEROPTIONS答案:C1.15下列关于数据仓库ETL的说法,正确的是A.ETL只发生在数据仓库初建阶段  B.抽取过程必须阻塞源系统C.转换过程必须落地中间文件  D.加载过程可采用批量或流式答案:D1.16在MongoDB中,实现多键索引的字段类型必须是A.字符串  B.整型  C.数组  D.日期答案:C1.17若关系R有10个元组,关系S有20个元组,则R×S的元组数为A.10  B.20  C.30  D.200答案:D1.18在数据库安全模型中,MAC表示A.自主访问控制  B.强制访问控制  C.基于角色访问控制  D.基于属性访问控制答案:B1.19下列关于Redis持久化的说法,正确的是A.RDB方式默认每秒同步一次  B.AOF方式以二进制格式保存C.可同时启用RDB与AOF  D.AOF重写会阻塞所有读写答案:C1.20在分布式数据库CAP理论中,分区容错性缩写为A.C  B.A  C.P  D.T答案:C2.多项选择题(每题2分,共10分。每题至少有两个正确答案,多选、少选、错选均不得分)2.1下列哪些操作会触发MySQLInnoDB的意向锁A.SELECT…LOCKINSHAREMODE  B.SELECT…FORUPDATEC.UPDATE…WHERE  D.INSERT…VALUES答案:ABC2.2关于第三范式(3NF)的判定,下列说法正确的是A.不存在非主属性对候选码的部分依赖  B.不存在非主属性对候选码的传递依赖C.允许主属性对候选码的部分依赖  D.允许主属性对候选码的传递依赖答案:BCD2.3在Oracle中,下列哪些后台进程与实例恢复有关A.DBWn  B.LGWR  C.SMON  D.PMON答案:BC2.4下列哪些SQL语句会隐式提交当前事务A.CREATETABLE  B.GRANT  C.TRUNCATETABLE  D.SELECTFORUPDATE答案:ABC2.5在PostgreSQL中,下列哪些技术可实现水平分片A.pg_shard  B.citus  C.plproxy  D.postgres_fdw答案:ABC3.填空题(每空2分,共20分)3.1在关系模式R(U,F)中,若X→Y且Y→Z,则根据Armstrong公理可推出________,该规则称为________律。答案:X→Z,传递3.2在MySQL中,查看InnoDB引擎状态的命令是SHOW________。答案:ENGINEINNODBSTATUS3.3若事务的隔离级别为________,则可能出现丢失更新。答案:读未提交3.4在分布式数据库中,采用________时钟算法可解决分布式事务的全局时序问题。答案:向量3.5在SQLServer中,系统数据库________用于存储临时对象。答案:tempdb3.6在MongoDB中,________命令用于查看查询执行计划。答案:explain()3.7在数据仓库中,________模型由维度表和事实表组成。答案:星型3.8在Oracle中,________文件记录所有对数据库的更改,用于恢复。答案:重做日志3.9在Redis中,________数据结构可用于实现消息队列的阻塞弹出。答案:list3.10在PostgreSQL中,________锁模式与MySQL的元数据锁功能类似。答案:AccessShare4.判断题(每题1分,共10分。正确打“√”,错误打“×”)4.1在关系数据库中,外键列必须创建索引。答案:×4.2在MySQL中,InnoDB的聚簇索引叶子节点存储整行数据。答案:√4.3在Oracle中,表空间可以跨多个数据库实例共享。答案:×4.4在分布式系统中,BASE理论强调最终一致性。答案:√4.5在SQL标准中,FULLOUTERJOIN可以用LEFT和RIGHTJOIN联合模拟。答案:√4.6在MongoDB中,分片键一旦指定便不可修改。答案:√4.7在PostgreSQL中,VACUUM操作会阻塞SELECT语句。答案:×4.8在Redis中,String类型最大可存储512MB数据。答案:√4.9在数据仓库中,雪花模型比星型模型查询性能更高。答案:×4.10在MySQL中,GROUPBY子句中的列必须出现在SELECT列表中。答案:×5.简答题(共5题,每题6分,共30分)5.1封闭型简述数据库事务的ACID特性,并说明隔离级别如何影响一致性。答案:原子性要求事务全做或全不做;一致性要求事务执行前后数据库处于一致状态;隔离性要求并发事务互不干扰;持久性要求提交后结果永久保存。隔离级别越低,一致性越弱,如读未提交允许脏读,可能破坏一致性;串行化通过锁协议保证最强一致性。5.2开放型某电商系统订单表每天新增千万级数据,请给出分区策略并说明优缺点。答案:可按订单创建时间做范围分区,每月一个分区;优点:便于批量删除历史分区,查询可分区裁剪;缺点:热点集中在最新分区,可再按用户ID做哈希子分区,打散热点,但增加跨分区查询复杂度。5.3封闭型说明B+树与B树的三点区别,并指出为何B+树更适合数据库索引。答案:1.B+树非叶子节点不存数据,扇出更高;2.B+树叶子节点链表连接,范围扫描高效;3.B+树所有数据在叶子,查询路径等长。数据库需要大量范围扫描和顺序访问,B+树叶子链表减少磁盘I/O。5.4开放型某系统出现“ORA01555:snapshottooold”,请给出排查步骤与解决措施。答案:1.查看UNDO表空间使用率;2.检查UNDO_RETENTION参数是否过低;3.确认长查询SQL执行计划;4.增大UNDO表空间或调整RETENTIONGUARANTEE;5.优化长查询减少运行时间;6.避免高峰批量删除历史UNDO。5.5封闭型写出将关系模式R(A,B,C,D,E)分解为BCNF的算法步骤,并给出无损连接与依赖保持的判定方法。答案:1.找出候选码;2.对非平凡函数依赖X→Y,若X非超码,则分解为R1(XY)与R2(R−Y);3.递归检查子模式;4.无损连接:若分解后自然连接等于原关系,则满足;5.依赖保持:若分解后FD集在子模式投影后逻辑蕴含原FD集,则保持。6.应用题(共4题,共70分)6.1计算类(15分)已知关系R(A,B)有1000页,每页可存50行;S(B,C)有2000页,每页可存40行;内存缓冲帧为12页。采用块嵌套循环连接,求最小I/O次数并给出计算过程。答案:R为外表,块大小=10页,需⌈1000/10⌉=100次扫描R块;每块R需扫描S一次,2000页,共100×2000=200000次I/O;总I/O=1000+200000=201000次。6.2分析类(20分)某系统使用MySQL8.0,主从复制架构,业务高峰出现从库延迟10秒。请分析可能原因并给出至少四种优化方案。答案:原因:1.单线程SQL线程瓶颈;2.大事务更新;3.从库硬件差;4.无索引导致回放慢。优化:1.开启slave_parallel_type=LOGICAL_CLOCK,调大parallel_workers;2.拆分大事务为批量小事务;3.升级从库SSD与CPU;4.回放表加索引,避免全表扫描;5.使用binlog_row_image=MINIMAL减少日志量;6.引入半同步复制,降低延迟感知。6.3综合设计类(20分)设计一个高并发短链接系统,要求:1.支持每秒10万并发写入;2.支持毫秒级长链接跳转;3.数据需保存5年。请给出:a)表结构;b)分库分表策略;c)缓存方案;d)过期数据清理策略。答案:a)表:short_url(char(7)PK),long_url(varchar(2000)),create_time,expire_time,checksum);b)按short_url首字母分16库,每库64表,共1024表,预估5年数据量900亿行,每表约9000万行;c)Redis缓存热数据,采用String结构,key=短链,value=长链,设置TTL=7天,使用RedisCluster分片;d)每日凌晨批量扫描expire_time<now()的分区,按分区删除,使用逻辑过期+异步清理,避免大删除锁表。6.4编程与调优类(15分)给出以下慢SQL:SELECTo.order_id,FROMordersoJOINuseruONo.user_id=u.user_idWHEREo.create_timeBETWEEN'20250101'AND'20250131'ORDERBYo.order_idDESCLIMIT100000,20;执行时间3.8秒,Explain显示全表扫描orders。请重写SQL并给出索引优化方案,目标将耗时降至100毫秒以内。答案:1.创建联合索引idx_ct_oid(create_time,order_idDESC);2.改写SQL利用覆盖索引与子查询:SELECTo.order_id,FROM(SELECTorder_id,user_id   FROMorders   WHEREcreate_timeBETWEEN'20250101'AND'20250131'   ORDERBYorder_idDESC   LIMIT100000,20)AStJOINuseruONt.user_id=u.user_id;3.对user.user_id建立主键;4.开启MySQL8.0的索引下推与MRR;5.实测耗时降至85毫秒。7.综合案例分析(共1题,20分)背景:某金融核心账户表account(acc_no,balance,last_txn_id,version),采用乐观锁version字段,高并发扣款场景出现大量更新失败与重试,导致TPS下降70%。问题:1.解释高并发下乐观锁失效原因;2.给出至少两种改进方案并对比优缺点;3.说明如何保证余额不透支;4.给出监控指标与告警阈值。答案:1.原因:大量并发线程读取同一version,提交时version已变,导致更新失败,重试风暴。2.方案A:悲观锁SELECT…FORUPDATE,优点:简单,强一致;缺点:并发下降,死锁风险。方案B:拆分子账户+队列缓冲,将热点账户拆为100个子账户,扣款请求先入Kafka,按acc_no%100分区,单线程消费,顺序更新子账户,汇总余额;优点:并发高,无锁;缺点:实现复杂,余额实时性降低100毫秒。3.在UPDATE语句加WHEREbalance>=amount

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论