数据库笔试题及答案_第1页
数据库笔试题及答案_第2页
数据库笔试题及答案_第3页
数据库笔试题及答案_第4页
数据库笔试题及答案_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

数据库笔试题及答案一、单项选择题(每题2分,共20分)1.以下关于关系模型基本性质的描述中,错误的是()。A.同一关系中不允许有完全相同的元组B.关系中属性的顺序可以任意交换C.同一属性的取值必须来自同一个域D.元组的顺序严格按插入顺序排列2.若关系R的主码为(A,B),关系S的主码为B,外码为A(参照R的A属性),则以下操作中允许的是()。A.向R中插入(NULL,1)B.向S中插入(2,NULL)C.从R中删除(2,3)时,若S中存在(2,3)的外码依赖则拒绝删除D.将R中(2,3)的A属性修改为NULL3.关于索引的描述,正确的是()。A.聚集索引会改变表中数据的物理存储顺序B.非聚集索引的叶子节点存储的是数据行的所有字段C.唯一索引可以保证索引列中存在重复值D.在频繁更新的列上建立索引会显著提升性能4.事务的ACID特性中,“一致性”是指()。A.事务执行前后,数据库从一个一致状态转换到另一个一致状态B.事务中的操作要么全部完成,要么全部不完成C.一个事务的执行不能被其他事务干扰D.事务一旦提交,其对数据库的修改是永久的5.关系模式R(A,B,C,D),函数依赖为A→B,B→C,C→D,则R的最高范式是()。A.1NFB.2NFC.3NFD.BCNF6.以下SQL语句中,用于修改表结构的是()。A.UPDATEB.ALTERTABLEC.CREATETABLED.INSERTINTO7.在MySQL中,若要查询“学生表”中年龄在18到22岁之间(包含边界)的学生,正确的WHERE子句是()。A.WHERE年龄BETWEEN18OR22B.WHERE年龄BETWEEN18AND22C.WHERE年龄IN(18,22)D.WHERE年龄>=18OR年龄<=228.关于视图的描述,错误的是()。A.视图是虚拟表,不存储实际数据B.可以通过视图对基表进行数据更新(某些情况下)C.视图可以简化复杂查询D.视图的索引会直接存储在数据库中9.在SQL中,使用JOIN操作时,若要返回左表所有记录,即使右表无匹配项,应使用()。A.INNERJOINB.RIGHTJOINC.LEFTJOIND.FULLOUTERJOIN10.以下关于数据库并发控制的描述,错误的是()。A.共享锁(S锁)允许其他事务加共享锁,但禁止排他锁(X锁)B.排他锁(X锁)禁止其他事务加任何类型的锁C.死锁是指两个或多个事务互相等待对方释放锁的现象D.串行化隔离级别不会出现脏读,但可能出现不可重复读二、填空题(每空2分,共20分)1.关系数据库中,关系的三种基本运算包括选择、投影和__________。2.SQL中,用于查询结果去重的关键字是__________。3.事务的隔离级别从低到高依次为:读未提交、读已提交、__________、串行化。4.若关系模式R属于2NF,则其所有非主属性必须完全依赖于__________。5.在索引类型中,B+树索引的叶子节点存储__________(数据行/索引键+指针)。6.数据库设计的六个阶段包括:需求分析、概念结构设计、__________、物理结构设计、数据库实施、数据库运行和维护。7.SQL中,使用__________语句可以为表添加外键约束。8.若要查询“订单表”中每个客户的总消费金额,需使用__________函数和GROUPBY子句。9.在数据库恢复技术中,__________日志用于记录事务对数据库的所有更新操作。10.关系模型的完整性约束包括实体完整性、参照完整性和__________。三、简答题(每题6分,共30分)1.简述数据库中“脏读”“不可重复读”“幻读”的区别,并说明分别可以通过哪种事务隔离级别避免。2.索引的作用是什么?简述聚集索引与非聚集索引的区别。3.什么是数据库的范式?简述1NF、2NF、3NF的定义,并举例说明。4.简述存储过程与函数的区别(至少列出3点)。5.说明数据库中“事务回滚”的概念,并举例说明其应用场景。四、设计题(20分)某图书管理系统需要管理以下信息:-图书:书号(唯一)、书名、出版社、出版日期、定价;-读者:读者ID(唯一)、姓名、性别、联系电话、注册时间;-借阅记录:每本书被读者借阅的记录,包含借阅时间、应还时间、实际归还时间(可能为NULL)。要求:(1)绘制该系统的E-R图(需标注实体、属性、联系及联系类型);(2)将E-R图转换为关系模式(需标注主码和外码);(3)为“借阅记录”表设计必要的约束(至少3个)。五、编程题(共30分)1.(5分)创建“学生表”(Student),包含以下字段:-学号(Sno):字符类型,长度10,主键;-姓名(Sname):字符类型,长度20,非空;-性别(Ssex):字符类型,长度2,只能是“男”或“女”;-年龄(Sage):整数类型,范围15-30;-所在系(Sdept):字符类型,长度30。2.(5分)向“学生表”中插入一条记录:学号“2023001”,姓名“张三”,性别“男”,年龄20,所在系“计算机系”。3.(6分)查询“计算机系”年龄大于等于20岁的学生,按年龄降序排序,若年龄相同则按姓名升序排序。4.(7分)统计各系学生人数,显示系名和人数(人数列名为“总人数”),仅显示人数超过20的系。5.(7分)查询所有借阅过3本及以上图书的读者ID和借阅次数(基于第四题的“借阅记录”表),要求使用子查询实现。答案及解析一、单项选择题1.D解析:关系模型中,元组的顺序不影响数据语义,因此可以任意交换,D错误。2.C解析:主码不能为NULL(A错误);外码A参照R的A属性,若R中A属性无NULL,则S的A不能为NULL(B错误);主码修改需保证外码依赖(D错误);C符合级联限制规则。3.A解析:聚集索引决定数据物理存储顺序(A正确);非聚集索引叶子节点存储索引键+行指针(B错误);唯一索引不允许重复(C错误);频繁更新列会增加索引维护开销(D错误)。4.A解析:一致性指事务执行前后数据库状态一致(A正确);B是原子性,C是隔离性,D是持久性。5.B解析:R的候选码是A(A→B→C→D),非主属性B、C、D部分依赖于候选码(A→B是完全依赖,但B→C是传递依赖),因此最高为2NF(消除部分依赖)。6.B解析:ALTERTABLE用于修改表结构(B正确);UPDATE是数据更新,CREATE是创建,INSERT是插入。7.B解析:BETWEEN...AND是闭区间(B正确);A语法错误,C是精确匹配,D逻辑错误(包含<18或>22)。8.D解析:视图本身不存储数据,因此无索引(D错误);其他选项正确。9.C解析:LEFTJOIN返回左表所有记录(C正确);INNERJOIN仅匹配项,RIGHTJOIN返回右表所有记录。10.D解析:串行化隔离级别可避免脏读、不可重复读、幻读(D错误)。二、填空题1.连接(或自然连接)2.DISTINCT3.可重复读4.候选码(或主码)5.索引键+指针(非聚集索引)或数据行(聚集索引)注:若题目未明确索引类型,通常默认非聚集索引,答案为“索引键+指针”。6.逻辑结构设计7.ALTERTABLE...ADDCONSTRAINT...FOREIGNKEY8.SUM9.重做(或REDO)10.用户定义完整性三、简答题1.区别:-脏读:事务A读取了事务B未提交的修改,若B回滚,A读取的数据为“脏数据”;-不可重复读:事务A两次读取同一数据,期间事务B修改并提交,导致A两次结果不一致;-幻读:事务A按条件查询数据,期间事务B插入/删除符合条件的记录,导致A两次查询结果行数不同。隔离级别避免:-读已提交(READCOMMITTED)可避免脏读;-可重复读(REPEATABLEREAD)可避免不可重复读;-串行化(SERIALIZABLE)可避免幻读。2.索引作用:加速数据查询,减少全表扫描开销。区别:-聚集索引:数据行的物理存储顺序与索引顺序一致,一个表只能有一个聚集索引;-非聚集索引:数据行的物理顺序与索引顺序无关,索引叶子节点存储索引键和行指针,一个表可有多条非聚集索引。3.范式:数据库设计的规范,用于消除数据冗余和操作异常。-1NF:属性不可再分(原子性);例:表中“联系方式”包含电话和邮箱(违反1NF),应拆分为“电话”和“邮箱”。-2NF:在1NF基础上,所有非主属性完全依赖于候选码(无部分依赖);例:表(学号,课程号,成绩,系名),候选码(学号,课程号),系名仅依赖学号(部分依赖),违反2NF,应拆分为(学号,系名)和(学号,课程号,成绩)。-3NF:在2NF基础上,所有非主属性不传递依赖于候选码;例:表(学号,系名,系主任),学号→系名→系主任(传递依赖),违反3NF,应拆分为(学号,系名)和(系名,系主任)。4.区别:-存储过程无返回值(或通过输出参数返回),函数必须返回单一值;-存储过程可执行数据修改、事务控制等复杂操作,函数通常用于计算;-存储过程调用使用CALL,函数可在SELECT中直接调用;-存储过程可以有多个输入/输出参数,函数只有输入参数。5.事务回滚:当事务执行过程中发生错误(如违反约束、系统故障)时,撤销事务已执行的所有操作,恢复数据库到事务开始前的状态。应用场景:例如,银行转账事务中,从A账户扣款后,向B账户存款时系统崩溃。此时需回滚扣款操作,确保A账户余额不变,避免数据不一致。四、设计题(1)E-R图:-实体:图书(书号,书名,出版社,出版日期,定价)、读者(读者ID,姓名,性别,联系电话,注册时间)、借阅记录(借阅时间,应还时间,实际归还时间)。-联系:读者与图书通过“借阅”关联,联系类型为多对多(一个读者可借多本书,一本书可被多个读者借)。(2)关系模式:-图书(书号,书名,出版社,出版日期,定价)主码:书号-读者(读者ID,姓名,性别,联系电话,注册时间)主码:读者ID-借阅记录(读者ID,书号,借阅时间,应还时间,实际归还时间)主码:(读者ID,书号,借阅时间);外码:读者ID(参照读者.读者ID),书号(参照图书.书号)(3)约束:-实际归还时间≥借阅时间(CHECK约束);-应还时间=借阅时间+30天(假设借阅周期30天,用DEFAULT或CHECK约束);-读者ID和书号不能为空(NOTNULL);-实际归还时间允许为NULL(表示未归还)。五、编程题1.创建表:```sqlCREATETABLEStudent(SnoCHAR(10)PRIMARYKEY,SnameCHAR(20)NOTNULL,SsexCHAR(2)CHECK(SsexIN('男','女')),SageINTCHECK(SageBETWEEN15AND30),SdeptCHAR(30));```2.插入记录:```sqlINSERTINTOStudent(Sno,Sname,Ssex,Sage,Sdept)VALUES('2023001','张三','男',20,'计算机系');```3.查询计算机系年龄≥20岁的学生:```sqlSELECTFROMStudentWHERESdept='计算机系'ANDSage>=20ORDERBYSageDESC,SnameASC;```4.统计各系人数(超过20人):```sqlSELECTSdeptAS系名,COUNT()AS总人数FROMStudentGROUPBYSdeptHAVINGCOUNT

温馨提示

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

最新文档

评论

0/150

提交评论