(2025年)数据库期末考试试题和答案_第1页
(2025年)数据库期末考试试题和答案_第2页
(2025年)数据库期末考试试题和答案_第3页
(2025年)数据库期末考试试题和答案_第4页
(2025年)数据库期末考试试题和答案_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

(2025年)数据库期末考试试题和答案一、单项选择题(每题2分,共30分)1.以下关于关系模型的描述中,错误的是()。A.关系中任意两个元组不能完全相同B.关系的列顺序可以任意交换C.同一列中的数据必须来自同一域D.关系的主码可以由多个属性组成,但不可为空2.在MySQL8.0中,若要存储患者的健康档案(包含结构化指标和非结构化的诊疗记录),最适合的字段类型是()。A.VARCHAR(255)B.JSONC.TEXTD.BLOB3.某关系模式R(A,B,C,D),函数依赖集F={A→B,B→C,C→D},则R的主码是()。A.AB.BC.CD.D4.以下关于索引的说法中,正确的是()。A.聚集索引会改变表中数据的物理存储顺序B.非聚集索引的叶节点直接存储数据记录C.唯一索引可以有多个NULL值D.在频繁更新的列上建立索引会显著提升性能5.事务T1读取数据X后,事务T2读取并修改了X,随后T1基于之前的X值进行更新。这种情况违反了事务的()。A.原子性(Atomicity)B.一致性(Consistency)C.隔离性(Isolation)D.持久性(Durability)6.在ER图中,若实体A与实体B存在“负责”联系(1:M),且A的部分实例必须参与该联系,则联系的约束类型为()。A.A的参与度为“部分”,B的参与度为“全部”B.A的参与度为“全部”,B的参与度为“部分”C.A的参与度为“部分”,B的参与度为“部分”D.A的参与度为“全部”,B的参与度为“全部”7.下列SQL语句中,能够正确实现“查询2024年就诊且费用超过500元的患者姓名”的是()。A.SELECT患者姓名FROM就诊记录WHERE就诊时间BETWEEN'2024-01-01'AND'2024-12-31'AND费用>500B.SELECT患者姓名FROM就诊记录WHERE就诊时间IN('2024-01-01','2024-12-31')AND费用>500C.SELECT患者姓名FROM就诊记录WHEREYEAR(就诊时间)=2024OR费用>500D.SELECT患者姓名FROM就诊记录WHERE就诊时间LIKE'2024%'AND费用>=5008.分布式数据库中,为解决数据分片后的查询优化问题,通常采用的策略是()。A.全局事务直接访问所有分片B.基于数据局部性的就近查询C.强制所有查询通过中心节点路由D.忽略分片信息,直接全表扫描9.某表结构为(订单ID,客户ID,商品ID,数量,下单时间),若需快速查询“某客户最近30天内购买过的商品种类数”,最优的索引设计是()。A.客户IDB.客户ID,下单时间C.客户ID,商品ID,下单时间D.下单时间,客户ID10.以下关于视图的描述中,错误的是()。A.视图可以简化复杂查询B.视图可以限制数据访问权限C.视图的更新操作一定可以映射到基表D.视图是虚表,不存储实际数据11.在关系代数中,表达式πA,B(σC>10(R⋈S))等价于()。A.πA,B(R⋈σC>10(S))B.σC>10(πA,B(R⋈S))C.πA,B(σC>10(R)⋈S)D.以上都不正确12.若数据库系统支持可重复读(RepeatableRead)隔离级别,则不会出现的问题是()。A.脏读(DirtyRead)B.不可重复读(Non-repeatableRead)C.幻读(PhantomRead)D.丢失更新(LostUpdate)13.以下关于BCNF的描述中,正确的是()。A.满足BCNF的关系一定满足3NFB.3NF的关系一定满足BCNFC.BCNF消除了所有属性对主码的部分依赖D.BCNF允许主属性对非主码的传递依赖14.在MongoDB中,若要查询“年龄在25到40岁之间且职业为教师的用户”,正确的查询语句是()。A.db.users.find({age:{$gte:25,$lte:40},occupation:"教师"})B.db.users.find({age:{$gt:25,$lt:40},occupation:"教师"})C.db.users.find({age:[25,40],occupation:"教师"})D.db.users.find({age:{$in:[25,40]},occupation:"教师"})15.数据库恢复技术中,日志文件的作用是()。A.记录用户操作行为B.支持数据的完整性约束C.提供数据备份的增量副本D.用于故障时的数据恢复二、填空题(每空1分,共10分)1.关系模型的三要素包括数据结构、数据操作和__________。2.事务的ACID特性中,“I”代表__________。3.在ER图中,菱形框表示__________。4.若关系模式R∈2NF,则R不存在__________依赖。5.索引按存储结构可分为B+树索引、哈希索引和__________。6.SQL中,用于限制分组结果的子句是__________。7.分布式数据库的“分片透明性”指用户无需知道数据的__________。8.在MySQL中,INNODB引擎支持的行级锁类型包括共享锁和__________。9.非关系型数据库(NoSQL)的典型类型包括键值存储、文档存储、列族存储和__________。10.数据库设计的阶段包括需求分析、概念设计、逻辑设计、__________和运行维护。三、简答题(每题6分,共30分)1.简述覆盖索引(CoveringIndex)与覆盖查询(CoveredQuery)的区别。2.分析非关系型数据库在哪些场景下比关系型数据库更适用。3.说明事务中“提交(Commit)”与“回滚(Rollback)”的作用,并举例说明何时需要回滚。4.简述ER图转换为关系模式的主要规则(至少列出3条)。5.解释“游标(Cursor)”在存储过程中的作用,并说明其使用场景。四、设计题(共20分)某社区医疗管理系统需要管理以下信息:-患者:患者ID(主键)、姓名、性别、出生日期、联系方式;-家庭医生:医生ID(主键)、姓名、职称、所属科室;-就诊记录:记录ID(主键)、患者ID、医生ID、就诊时间、诊断结果、医疗费用;-健康档案:档案ID(主键)、患者ID、身高、体重、血压、最近一次体检日期(注:每位患者仅有1份健康档案)。要求:(1)绘制该系统的ER图(需标注实体、属性、联系及联系类型,联系类型用1:1、1:M、M:N表示)。(8分)(2)将ER图转换为关系模式,要求标注主码和外码。(12分)五、编程题(共10分)基于上述社区医疗管理系统的关系模式,写出满足以下要求的SQL语句:(1)创建“就诊记录”表,要求“医疗费用”非负,“就诊时间”默认值为当前系统时间。(2分)(2)查询2024年第一季度(1-3月)就诊次数超过2次的患者ID及其就诊次数。(2分)(3)将“健康档案”表中所有60岁以上患者的“最近一次体检日期”更新为2024-12-31(注:出生日期格式为YYYY-MM-DD)。(2分)(4)统计不同性别的患者中,医疗费用总和最高的前3名医生(需显示医生ID、姓名、性别、总费用)。(2分)(5)创建存储过程“sp_CalculateAvgCost”,输入参数为医生ID,输出该医生所有患者的平均医疗费用(要求处理可能的空值)。(2分)答案一、单项选择题1-5:BBAAC6-10:AABCC11-15:DBAAD二、填空题1.数据完整性约束2.隔离性(Isolation)3.联系4.非主属性对主码的部分5.全文索引6.HAVING7.物理存储位置(或分片位置)8.排他锁(或写锁)9.图存储(或图形数据库)10.物理设计三、简答题1.覆盖索引是指索引包含查询所需的所有列,无需回表读取数据;覆盖查询是指利用覆盖索引完成的查询操作。区别在于:覆盖索引是索引的属性集合,覆盖查询是查询的实现方式,覆盖查询必须基于覆盖索引。2.非关系型数据库更适用于:①高并发读写场景(如秒杀系统),NoSQL的分布式架构支持水平扩展;②非结构化或半结构化数据(如日志、JSON文档),无需严格的模式约束;③高可用性要求(如实时推荐系统),NoSQL通常支持最终一致性;④大规模数据存储(如物联网传感器数据),列族存储可高效处理海量数据。3.提交(Commit)用于确认事务的所有操作,将事务对数据库的修改永久保存;回滚(Rollback)用于撤销事务的所有操作,恢复到事务开始前的状态。例如,当转账操作中扣除转出账户金额后,转入账户因异常无法更新时,需回滚以保证数据一致性。4.ER图转换规则:①实体转换为关系模式,实体的属性为关系的属性,主码为实体的主码;②1:1联系可合并到任一实体的关系中,添加另一实体的主码作为外码;③1:M联系合并到M端实体的关系中,添加1端实体的主码作为外码;④M:N联系转换为独立关系模式,主码为两端实体主码的组合,外码分别指向两端实体。5.游标是一种用于遍历结果集的数据库对象,在存储过程中可逐条处理查询结果。使用场景包括:需要逐行处理数据(如根据条件更新多条记录)、复杂业务逻辑需要逐条判断(如客户分级计算)、处理无法用集合操作完成的任务(如动态提供报表行)。四、设计题(1)ER图要点:-实体:患者(患者ID,姓名,性别,出生日期,联系方式);家庭医生(医生ID,姓名,职称,所属科室);就诊记录(记录ID,就诊时间,诊断结果,医疗费用);健康档案(档案ID,身高,体重,血压,最近一次体检日期)。-联系:患者与健康档案为1:1(患者ID→档案ID);患者与就诊记录为1:M(患者ID→记录ID);家庭医生与就诊记录为1:M(医生ID→记录ID);患者与家庭医生无直接联系(通过就诊记录关联)。(2)关系模式:-患者(患者ID,姓名,性别,出生日期,联系方式)主码:患者ID-家庭医生(医生ID,姓名,职称,所属科室)主码:医生ID-就诊记录(记录ID,患者ID,医生ID,就诊时间,诊断结果,医疗费用)主码:记录ID外码:患者ID(→患者.患者ID),医生ID(→家庭医生.医生ID)-健康档案(档案ID,患者ID,身高,体重,血压,最近一次体检日期)主码:档案ID外码:患者ID(→患者.患者ID)注:可增加唯一约束(患者ID)确保1:1。五、编程题(1)CREATETABLE就诊记录(记录IDINTPRIMARYKEY,患者IDINTNOTNULL,医生IDINTNOTNULL,就诊时间DATETIMEDEFAULTCURRENT_TIMESTAMP,诊断结果VARCHAR(255),医疗费用DECIMAL(10,2)CHECK(医疗费用>=0),FOREIGNKEY(患者ID)REFERENCES患者(患者ID),FOREIGNKEY(医生ID)REFERENCES家庭医生(医生ID));(2)SELECT患者ID,COUNT()AS就诊次数FROM就诊记录WHEREYEAR(就诊时间)=2024ANDMONTH(就诊时间)BETWEEN1AND3GROUPBY患者IDHAVINGCOUNT()>2;(3)UPDATE健康档案hJOIN患者pONh.患者ID=p.患者IDSETh.最近一次体检日期='2024-12-31'WHEREYEAR(CURDATE())-YEAR(p.出生日期)>60;(4)SELECTd.医生ID,d.姓名,p.性别,SUM(j.医疗费用)AS总费用FROM就诊记录jJOIN家庭医生dONj.医生ID=d.医生IDJOIN患者pO

温馨提示

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

评论

0/150

提交评论