2026年数据库系统工程师模拟复习题及答案_第1页
2026年数据库系统工程师模拟复习题及答案_第2页
2026年数据库系统工程师模拟复习题及答案_第3页
2026年数据库系统工程师模拟复习题及答案_第4页
2026年数据库系统工程师模拟复习题及答案_第5页
已阅读5页,还剩14页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

2026年数据库系统工程师模拟复习题及答案上午客观题1.在数据库系统的三级模式两级映像体系结构中,下列关于模式映像的说法错误的是()A.外模式/模式映像保证了数据的逻辑独立性B.模式/内模式映像保证了数据的物理独立性C.一个数据库可以有多个外模式/模式映像D.一个数据库可以有多个模式/内模式映像答案:D解析:三级模式中,模式是数据库全局逻辑结构,全局唯一;内模式是数据库物理存储结构,全局唯一,因此模式/内模式映像只能有1个。外模式是面向不同用户的局部逻辑视图,可以有多个,每个外模式对应1个外模式/模式映像,因此C说法正确。外模式/模式映像保证模式修改时只需调整映像,外模式无需改动,实现逻辑独立性;模式/内模式映像保证内存储结构修改时只需调整映像,模式无需改动,实现物理独立性,AB说法正确。2.已知关系R(A,B,C)和S(B,C,D),下列关系代数表达式中与Π_A,D(σ_R.B=S.B∧R.C=S.C(R×S))等价的是()A.R⋈SB.Π_A,D(R⋈S)C.R⋈_DSD.Π_A(R)×Π_D(S)答案:B解析:表达式先对R和S做笛卡尔积,再筛选公共属性B、C相等的元组,对应自然连接R⋈S的运算规则,最后投影A和D属性,因此等价于Π_A,D(R⋈S)。A选项未做投影不符合要求;C选项是等值连接,连接条件错误;D选项是无连接条件的笛卡尔积,结果会出现无关组合,不符合要求。3.已知关系模式R(U,F),U={学号,姓名,系号,系名,系主任},F={学号→姓名,学号→系号,系号→系名,系号→系主任},则R最高达到()范式A.1NFB.2NFC.3NFD.BCNF答案:B解析:首先确定候选键为学号,主属性为学号,非主属性为姓名、系号、系名、系主任。所有属性都是原子属性,满足1NF;所有非主属性都完全依赖于候选键学号,不存在部分依赖,满足2NF;但系名、系主任通过系号传递依赖于学号(学号→系号,系号→系名),不满足3NF要求的“非主属性不传递依赖于候选键”,因此最高达到2NF。4.现有学生表student(s_id,s_name,s_age,s_dept),课程表course(c_id,c_name,credit),选课表sc(s_id,c_id,score),要查询“选修了课程号为‘C001’且成绩大于80分的学生姓名”,下列SQL语句错误的是()A.SELECTs_nameFROMstudentWHEREs_idIN(SELECTs_idFROMscWHEREc_id='C001'ANDscore>80);B.SELECTs_nameFROMstudentsJOINscONs.s_id=sc.s_idWHEREsc.c_id='C001'ANDsc.score>80;C.SELECTs_nameFROMstudent,scWHEREstudent.s_id=sc.s_idANDsc.c_id='C001'ANDsc.score>80;D.SELECTs_nameFROMstudentWHEREEXISTS(SELECTFROMscWHEREc_id='C001'ANDscore>80);D.SELECTs_nameFROMstudentWHEREEXISTS(SELECTFROMscWHEREc_id='C001'ANDscore>80);答案:D解析:EXISTS子查询需要和外层查询做关联才能匹配对应学生,D选项的子查询未关联外层student的s_id,只要sc表存在符合条件的记录,就会返回所有学生的姓名,不符合查询要求。A是IN子查询写法,B是显式内连接写法,C是隐式内连接写法,均能正确得到结果。5.下列关于事务隔离级别的描述中,可避免脏读、不可重复读,但不能避免幻读的是()A.读未提交(READUNCOMMITTED)B.读已提交(READCOMMITTED)C.可重复读(REPEATABLEREAD)D.串行化(SERIALIZABLE)答案:C解析:读未提交级别不做任何锁控制,无法避免脏读、不可重复读、幻读;读已提交级别只会读取已提交的修改,可避免脏读,但无法避免不可重复读和幻读;可重复读级别会对事务读取的行加锁,保证同一事务内多次读取同一行的结果一致,可避免脏读和不可重复读,但未对查询范围加锁,可能出现范围内新增数据的幻读问题;串行化级别将所有事务串行执行,可避免三类并发问题。6.若事务T1已经对数据A加上了排他锁(X锁),则其他事务对数据A()A.可以加共享锁,不能加排他锁B.不能加共享锁,可以加排他锁C.可以加共享锁也可以加排他锁D.不能加任何锁答案:D解析:排他锁(X锁)的规则是:一旦事务对数据加了X锁,其他事务不能对该数据加任何类型的锁,直到X锁被释放,避免多个事务同时修改同一数据造成一致性问题。共享锁(S锁)的规则是加锁后其他事务只能加S锁、不能加X锁,适用于读操作。7.下列关于数据库备份策略的说法错误的是()A.完全备份备份整个数据库的所有数据,恢复速度快但占用空间大B.增量备份只备份上次备份后变化的数据,备份速度快但恢复需要依赖所有历史备份链C.差量备份只备份上次完全备份后变化的数据,恢复时只需要最近一次完全备份和最近一次差量备份D.日志备份只备份事务日志,恢复时不需要依赖完全备份,直接单独恢复即可答案:D解析:日志备份仅记录事务对数据库的修改操作,本身不包含完整的数据库数据,恢复时必须先恢复对应的完全备份,再依次恢复后续的日志备份,才能将数据库恢复到指定时间点,无法单独使用日志备份完成恢复,D说法错误,ABC描述均符合备份策略的特点。8.分布式数据库系统中,将关系按照某一属性的取值范围拆分为多个子集,分别存储在不同的节点上,这种分片方式属于()A.水平分片B.垂直分片C.导出分片D.混合分片答案:A解析:水平分片是按行拆分,根据某属性的取值条件将关系的元组拆分为多个子集,每个子集是原关系的水平片段;垂直分片是按列拆分,将关系的属性拆分为多个子集,每个子集包含部分属性;导出分片是根据其他关系的分片条件来分片当前关系;混合分片是结合水平和垂直的拆分方式,因此本题选A。下午案例题案例1某高校需要开发一套实验室预约管理系统,需求如下:1.学校有多个学院,每个学院的信息包括学院编号、学院名称、联系电话,每个学院有多名教师,每名教师只属于一个学院,教师信息包括教师编号、姓名、职称、联系方式。2.学校有多个实验室,实验室信息包括实验室编号、实验室位置、容纳人数、所属学院,每个实验室只属于一个学院,每个学院可以有多个实验室。3.教师可以发起实验室预约,预约信息包括预约编号、预约日期、使用时间段、预约用途,每次预约只能由一名教师发起,一名教师可以发起多次预约,每次预约对应一个实验室,一个实验室在同一时间段可以被多个预约申请,但只有一个预约能审批通过。4.预约需要审批,审批信息包括审批编号、审批结果(通过/驳回)、审批时间、审批人,每个预约对应一次审批,审批人是实验室所属学院的行政人员,行政人员信息包括工号、姓名、所属学院,每名行政人员只属于一个学院,可以审批多个预约。问题1:根据上述需求,补充完整E-R图中的实体之间的联系类型(联系分别为:学院与教师的联系、学院与实验室的联系、教师与预约的联系、实验室与预约的联系、预约与审批的联系、行政人员与审批的联系)。答案:学院与教师:1对多(1:n),一个学院有多名教师,每名教师属于一个学院。学院与实验室:1对多(1:n),一个学院有多个实验室,每个实验室属于一个学院。教师与预约:1对多(1:n),一名教师可以发起多个预约,每个预约由一名教师发起。实验室与预约:1对多(1:n),一个实验室可以对应多个预约,每个预约对应一个实验室。预约与审批:1对1(1:1),每个预约对应一次审批,每次审批对应一个预约。行政人员与审批:1对多(1:n),一名行政人员可以审批多个预约,每个预约的审批由一名行政人员完成。解析:根据需求描述的实体对应关系判断联系类型,其中预约和审批是一一对应,因为每个预约仅走一次审批流程,不会重复审批。问题2:将E-R模型转换为关系模式,标注每个关系模式的主键和外键,如果有约束需要说明。答案:1.学院(学院编号,学院名称,联系电话)主键:学院编号2.教师(教师编号,姓名,职称,联系方式,所属学院编号)主键:教师编号;外键:所属学院编号,参照学院关系的学院编号3.实验室(实验室编号,实验室位置,容纳人数,所属学院编号)主键:实验室编号;外键:所属学院编号,参照学院关系的学院编号4.行政人员(工号,姓名,所属学院编号)主键:工号;外键:所属学院编号,参照学院关系的学院编号5.预约(预约编号,教师编号,实验室编号,预约日期,使用时间段,预约用途)主键:预约编号;外键:教师编号参照教师关系的教师编号,实验室编号参照实验室关系的实验室编号约束:同一实验室、同一预约日期、同一使用时间段的预约只能有一个审批通过,可通过唯一约束(实验室编号,预约日期,使用时间段,审批通过标记)实现。6.审批(审批编号,预约编号,审批人编号,审批结果,审批时间)主键:审批编号;外键:预约编号参照预约关系的预约编号,审批人编号参照行政人员关系的工号约束:预约编号唯一,保证每个预约只有一次审批记录。解析:转换规则中,1对1联系如果有独立属性则单独成表,外键关联两端实体;1对多联系的外键放在多端实体侧,保证关联一致性。问题3:若需要新增“学生参与预约”的需求,每名学生可以参与多个预约,每个预约可以有多名学生参与,学生信息包括学号、姓名、所属学院,需要补充哪些实体和联系?对应的关系模式是什么?答案:需要新增实体“学生”,新增预约和学生之间的多对多联系“参与预约”。对应的关系模式:1.学生(学号,姓名,所属学院编号)主键:学号;外键:所属学院编号,参照学院关系的学院编号2.预约参与(预约编号,学号)主键:(预约编号,学号);外键:预约编号参照预约关系的预约编号,学号参照学生关系的学号解析:多对多的联系无法直接通过外键关联,必须单独拆分为独立的关系模式,主键为两个关联实体的主键组合,保证唯一标识每条参与记录。案例2已知某电商平台的订单关系模式如下:订单(订单编号,用户编号,用户名,用户电话,商品编号,商品名称,商品单价,购买数量,订单时间,支付金额,收货地址,快递公司编号,快递公司名称,快递单号)存在的函数依赖有:订单编号→用户编号,订单编号→订单时间,订单编号→支付金额,订单编号→收货地址,订单编号→快递公司编号,订单编号→快递单号用户编号→用户名,用户编号→用户电话商品编号→商品名称,商品编号→商品单价快递公司编号→快递公司名称(订单编号,商品编号)→购买数量问题1:找出该关系模式的候选键,判断该关系模式最高属于第几范式,说明理由。答案:候选键是(订单编号,商品编号)。该关系模式最高属于1NF。理由:首先所有属性都是原子属性,满足1NF要求;但存在非主属性对候选键的部分依赖,比如用户编号、用户名、订单时间等非主属性仅依赖于候选键中的订单编号,商品名称、商品单价仅依赖于候选键中的商品编号,不满足2NF要求的“所有非主属性完全依赖于候选键”,因此最高属于1NF。问题2:将该关系模式分解为符合3NF的关系模式,标注每个关系的主键和外键。答案:分解后的3NF关系模式如下:1.用户(用户编号,用户名,用户电话)主键:用户编号2.商品(商品编号,商品名称,商品单价)主键:商品编号3.快递公司(快递公司编号,快递公司名称)主键:快递公司编号4.订单主表(订单编号,用户编号,订单时间,支付金额,收货地址,快递公司编号,快递单号)主键:订单编号;外键:用户编号参照用户表的用户编号,快递公司编号参照快递公司表的快递公司编号5.订单详情(订单编号,商品编号,购买数量)主键:(订单编号,商品编号);外键:订单编号参照订单主表的订单编号,商品编号参照商品表的商品编号解析:分解遵循3NF要求,消除非主属性对候选键的部分依赖和传递依赖,每个关系模式中所有非主属性既不部分依赖也不传递依赖于主键,同时保持了所有函数依赖和无损连接。问题3:根据分解后的关系模式,写出SQL语句完成下列查询:查询2025年10月的订单中,购买总金额超过1000元的用户编号、用户名,以及对应的总支付金额,结果按照总支付金额降序排序。答案:SELECTu.用户编号,u.用户名,SUM(o.支付金额)AS总支付金额FROM订单主表oJOIN用户uONo.用户编号=u.用户编号WHEREo.订单时间BETWEEN'2025-10-0100:00:00'AND'2025-10-3123:59:59'GROUPBYu.用户编号,u.用户名HAVINGSUM(o.支付金额)>1000ORDERBY总支付金额DESC;解析:首先关联订单主表和用户表获取用户基础信息,筛选2025年10月的订单后按用户分组,使用HAVING子句过滤总支付金额超过1000的分组,最后按总支付金额降序排序,符合SQL分组查询规则:SELECT子句中的非聚合列必须出现在GROUPBY子句中。案例3现有三个事务T1、T2、T3,对应的操作如下:T1:读A=10;A=A-5;写回A;读B=20;B=B+5;写回B;T2:读A=10;A=A-8;写回A;T3:读B=20;B=B2;写回B;T3:读B=20;B=B2;写回B;假设A、B的初始值分别为10和20,所有事务的调度是可串行化的,数据库系统采用WAL(预写日志)机制,检查点之前的日志都已经刷新到磁盘,故障发生时的日志序列如下(LSN为日志序号,<Tstart>表示事务开始,<T,X,v1,v2>表示事务T修改X,旧值v1,新值v2,<Tcommit>表示事务提交,<Tabort>表示事务回滚):LSN1:<T1start>LSN2:<T1,A,10,5>LSN3:<T2start>LSN4:<T2,A,10,2>LSN5:<T1,B,20,25>LSN6:<T1commit>LSN7:<T3start>LSN8:<T3,B,25,50>LSN9:<检查点标记{T2,T3}>LSN10:<T2commit>LSN11:<T3,B,50,100>此时系统发生故障,所有内存中的数据和日志都丢失,只有磁盘上的日志有效。问题1:若三个事务的调度为串行调度T1→T2→T3,给出A和B的最终值。答案:串行执行T1→T2→T3:T1执行后,A=10-5=5,B=20+5=25;T2执行后,读取T1修改后的A=5,修改为5-8=-3;T3执行后,读取T1修改后的B=25,修改为252=50;T3执行后,读取T1修改后的B=25,

温馨提示

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

评论

0/150

提交评论