国开电大2025年春季期末考试《数据库应用技术》试题及答案_第1页
国开电大2025年春季期末考试《数据库应用技术》试题及答案_第2页
国开电大2025年春季期末考试《数据库应用技术》试题及答案_第3页
国开电大2025年春季期末考试《数据库应用技术》试题及答案_第4页
国开电大2025年春季期末考试《数据库应用技术》试题及答案_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

国开电大2025年春季期末考试《数据库应用技术》试题及答案一、单项选择题(每题2分,共20分)1.在关系数据库中,用来唯一标识一条记录的属性或属性组合称为A.主键  B.外键  C.候选键  D.超键答案:A2.下列SQL语句中,能够删除“student”表中所有数据但保留表结构的是A.DROPTABLEstudent;B.DELETEFROMstudent;C.TRUNCATETABLEstudent;D.ALTERTABLEstudentDELETEALL;答案:C3.在MySQL中,事务的四大特性简称ACID,其中“D”指的是A.原子性  B.一致性  C.隔离性  D.持久性答案:D4.若关系模式R(A,B,C)满足函数依赖集F={A→B,B→C},则该模式最高属于A.1NF  B.2NF  C.3NF  D.BCNF答案:B5.在并发控制中,解决“丢失更新”问题的最常用技术是A.时间戳  B.乐观锁  C.封锁协议  D.多版本并发控制答案:C6.下列关于索引的描述,错误的是A.唯一索引允许列中出现NULLB.聚集索引的叶节点就是数据页C.复合索引的顺序对查询效率无影响D.覆盖索引可避免回表操作答案:C7.在分布式数据库中,保证全局事务原子性的协议是A.两阶段提交  B.三阶段提交  C.Paxos  D.Raft答案:A8.使用EXPLAIN分析SQL时,type列出现“ALL”表示A.全表扫描  B.范围扫描  C.索引扫描  D.唯一索引扫描答案:A9.在MongoDB中,用于实现多表关联操作的运算符是A.$lookup  B.$match  C.$group  D.$project答案:A10.当数据库出现“死锁”时,最合理的处理策略是A.无限等待  B.立即重启数据库  C.回滚代价最小的事务  D.强制用户重试答案:C二、多项选择题(每题3分,共15分,多选少选均不得分)11.下列哪些属于数据库系统的三级模式结构A.外模式  B.概念模式  C.内模式  D.存储模式答案:ABC12.关于视图的描述,正确的有A.视图可以基于多表创建B.视图可以更新,但受限制C.视图占用存储空间与基表相同D.视图可提高数据安全性答案:ABD13.在MySQL中,以下哪些存储引擎支持事务A.InnoDB  B.MyISAM  C.NDB  D.MEMORY答案:AC14.下列关于范式的说法,正确的有A.1NF要求属性原子性B.2NF消除部分函数依赖C.3NF消除传递函数依赖D.BCNF消除多值依赖答案:ABC15.以下哪些属于数据库完整性约束A.主键约束  B.检查约束  C.默认约束  D.触发器答案:ABCD三、判断题(每题1分,共10分,正确打“√”,错误打“×”)16.在关系代数中,选择操作是对列进行筛选。  答案:×17.数据库系统的核心软件是DBMS。  答案:√18.在SQL中,NULL与空字符串完全等价。  答案:×19.分区表可以提高大表的查询效率。  答案:√20.触发器可以替代所有外键约束。  答案:×21.分布式数据库一定保证强一致性。  答案:×22.索引越多,更新操作越快。  答案:×23.日志文件用于数据库恢复。  答案:√24.在Redis中,字符串最大容量为512MB。  答案:√25.OLAP系统通常采用星型或雪花模型。  答案:√四、填空题(每空2分,共20分)26.在SQL中,用于统计不重复记录数量的聚合函数是________。答案:COUNT(DISTINCT列名)27.若关系模式R(A,B,C,D)的函数依赖集为{A→B,C→D},则该模式的候选键为________。答案:AC28.在MySQL中,查看当前隔离级别的命令是SELECT@@________。答案:tx_isolation(8.0+版本为transaction_isolation)29.将E-R图转换为关系模型时,m:n联系需要单独生成________。答案:关系模式(或表)30.在MongoDB中,文档默认的主键字段名是________。答案:_id31.数据库运行过程中,系统突然断电,恢复时需要用到________文件。答案:重做日志(或redolog)32.在分布式数据库中,CAP理论中的“P”指________。答案:分区容错性33.在PostgreSQL中,用于实现行级安全的机制简称________。答案:RLS34.当索引键值重复率极高时,该索引的________度低,效果差。答案:选择35.在SQLServer中,全局临时表名以________开头。答案:五、简答题(每题8分,共24分)36.简述数据库事务的四大特性,并举例说明“一致性”的含义。答案:(1)原子性:事务要么全部执行,要么全部不执行。(2)一致性:事务执行前后,数据库必须处于一致状态。例如转账业务,A账户减少100元,B账户必须增加100元,总额不变。(3)隔离性:并发事务互不干扰。(4)持久性:一旦提交,结果永久保存。一致性示例:学生选课系统中,课程已选人数不能超过容量。事务提交前检查约束,若超限则回滚,保证数据一致。37.对比B+树与哈希索引的适用场景及优缺点。答案:B+树:适用:范围查询、排序、模糊查询。优点:有序、支持部分匹配、磁盘I/O少。缺点:维护成本高、占用空间大。哈希:适用:等值查询,如WHEREid=123。优点:查询复杂度O(1),内存占用小。缺点:不支持范围、排序、模糊,碰撞时性能下降。结论:OLTP系统主键查询可用哈希;OLAP、二级索引用B+树。38.描述“幻读”现象,并说明在MySQL中如何通过Next-KeyLocking解决。答案:幻读:同一事务内两次范围查询返回不同行数,因其他事务插入新行导致。Next-KeyLocking:InnoDB将记录锁与间隙锁结合,锁定索引记录及其前驱间隙。例如SELECTFROMtWHEREid>10FORUPDATE会锁定(10,max]区间,阻止其他事务插入id>10的新行,从而避免幻读。该机制在可重复读隔离级别默认启用。六、综合应用题(共31分)39.某高校教务系统需设计数据库,需求如下:(1)学院:编号、名称、成立年份;(2)教师:工号、姓名、职称、所属学院;(3)课程:课程号、课程名、学分、开课学院;(4)学生:学号、姓名、性别、出生日期、所在学院;(5)选课:学号、课程号、成绩、选课时间。规定:①一个学院有多名教师、多名学生;②一门课程只能由一个学院开设;③一名学生可选多门课,一门课可被多名学生选;④教师与课程无直接关联,仅通过学院间接归属。(1)画出E-R图,标注实体、属性、联系类型。(6分)答案:实体:学院(编号,名称,成立年份)、教师(工号,姓名,职称)、课程(课程号,课程名,学分)、学生(学号,姓名,性别,出生日期)、选课(成绩,选课时间)。联系:学院1—n教师;学院1—n学生;学院1—n课程;学生m—n课程(选课)。(2)将E-R图转换为关系模式,并标注主键、外键。(8分)答案:学院(编号PK,名称,成立年份)教师(工号PK,姓名,职称,学院编号FK)学生(学号PK,姓名,性别,出生日期,学院编号FK)课程(课程号PK,课程名,学分,学院编号FK)选课(学号FK,课程号FK,成绩,选课时间,PRIMARYKEY(学号,课程号))(3)用SQL创建上述表,要求:①学院编号、教师工号、学号、课程号均为定长字符型,长度分别为2、6、10、8;②成绩为0—100整数,默认NULL;③选课时间为DATETIME,默认当前时间;④外键级联删除。(9分)答案:```sqlCREATETABLEdept(dnoCHAR(2)PRIMARYKEY,dnameVARCHAR(30)NOTNULL,estYEAR);CREATETABLEteacher(tnoCHAR(6)PRIMARYKEY,tnameVARCHAR(20)NOTNULL,titleVARCHAR(20),dnoCHAR(2),FOREIGNKEY(dno)REFERENCESdept(dno)ONDELETECASCADE);CREATETABLEstudent(snoCHAR(10)PRIMARYKEY,snameVARCHAR(20)NOTNULL,genderENUM('男','女'),birthDATE,dnoCHAR(2),FOREIGNKEY(dno)REFERENCESdept(dno)ONDELETECASCADE);CREATETABLEcourse(cnoCHAR(8)PRIMARYKEY,cnameVARCHAR(40)NOTNULL,creditTINYINTCHECK(creditBETWEEN1AND10),dnoCHAR(2),FOREIGNKEY(dno)REFERENCESdept(dno)ONDELETECASCADE);CREATETABLEsc(snoCHAR(10),cnoCHAR(8),scoreTINYINTCHECK(scoreBETWEEN0AND100),sel_timeDATETIMEDEFAULTCURRENT_TIMESTAMP,PRIMARYKEY(sno,cno),FOREIGNKEY(sno)REFERENCESstudent(sno)ONDELETECASCADE,FOREIGNKEY(cno)REFERENCEScourse(cno)ONDELETECASCADE);```(4)编写SQL完成以下查询:(8分)a.查询“计算机学院”开设的、被超过100名学生选修的课程号及选课人数;b.列出未选任何课的学生学号、姓名、学院名称;c.将“计算机学院”所有学生的“数据库概论”成绩提5分,最高不超过100;d.创建视图v_teacher_course,展示每位教师的工号、姓名及其学院开设的所有课程名。答案:a.```sqlSELECTo,COUNT()AScntFROMcoursecJOINscONo=oWHEREc.dno=(SELECTdnoFROMdeptWHEREdname='计算机学院')GROUPBYoHAVINGcnt>100;```b.```sqlSELECTs.sno,s.sname,d.dnameFROMstudentsJOINdeptdONs.dno=d.dnoWHERENOTEXISTS(SELECT1FROMscWHEREsc.sno=s.sno);```c.```sqlUPDATEscJOINstudentsONsc.sno=s.snoJOINdeptdONs.dno=d.dnoJOINcoursecONo=oSETsc.score=LEAST(sc.score+5,100)WHEREd.dname='计算机学院'ANDame='数据库概论';```d.```sqlCREATEVIEWv_teacher_courseASSELECTt.tno,t.tname,ameFROMteachertJOINdeptdONt.dno=d.dnoJOINcoursecONd.dno=c.dno;```七、设计优化题(共20分)40.某电商平台订单表orders结构如下:order_idBIGINTPK,user_idBIGINT,sku_idBIGINT,priceDECIMAL(10,2),amountINT,statusTINYINT,create_timeDATETIME,update_timeDATETIME。数据量已达5亿行,日均新增500万,80%查询集中在近3个月,常见查询:Q1:根据user_id查最近订单;Q2:根据sku_id查近7日销量;Q3:按天统计订单量与GMV。(1)给出分区方案,说明分区键、分区类型及理由。(6分)答案:采用RANGE分区,分区键create_time,按月分区;历史冷数据可压缩归档。理由:时间维度天然有序,便于批量删除与归档;近3个月热数据集中,减少扫描范围;支持快速按天聚合。(2)设计二级索引,使Q1、Q2、Q3均走索引,写出创建语句。(6分)答案:```sqlALTERTABLEordersADDINDEXidx_user_time(user_id,create_timeDESC),ADDINDEXidx_sku_time(sku_id,create_time),ADDINDEXidx_day(create_time);```(3)指出索引对写入性能的影响,并给出缓解措施。(4分)答案:影响:每次INSERT需维护3棵B+树,随机I/O增加,写入吞吐下降。缓解:①批量insert,减少fsync次数;②使用自增列作聚簇索引,避免随机主键;③调整innodb_change_buffer_max_size,合并二级索引更新;④业务低峰期导数。(4)若系统需支持按user_id+sku_id的联合维度实时去重统计,如何改造?(4分)答案:创建聚合表user_sku_stat(user_id,sku_id,first_order_id,order_cnt,PRIMARYKEY(user_id,sku_id)),使用Canal监听binlog,异步更新;或采用RedisHyperLogLog近似去重,满足实时大屏需求,误差<1%。八、编程实现题(共10分)41.使用Python+PyMySQL实现连接池,完成以下功能:(1)初始化大小10,最大50;(2)提供get_connection()与release_connection(conn)接口;(3)编写函数get_top_user(n),返回近30天订单量最多的前n位用户ID及订单量。答案:```pythonimportpymysqlfromdbutils.pooled_dbimportPooledDBimportdatetimepool=PooledDB(creator=pymysql,maxconnections=50,mincached=10,host='',user='root',password='123456',database='shop',charset='utf8mb4')defget_connection():returnpool.connection()defrelease_connection(conn):conn.close()defget_top_user(n):conn=get_connection()try:withconn.cursor()ascur:sql="""SELECTuser_id,COUNT()AScntFROMordersWHEREcreate_time>=D

温馨提示

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

评论

0/150

提交评论