版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
(2025年)数据库原理课后题附答案一、选择题(每题2分,共20分)1.以下关于数据库三级模式结构的描述中,错误的是()。A.外模式是用户与数据库系统的接口B.模式描述数据库中全体数据的逻辑结构和特征C.内模式是数据物理结构和存储方式的描述D.外模式/模式映射保证了数据与程序的物理独立性答案:D解析:外模式/模式映射保证的是数据的逻辑独立性,内模式/模式映射保证物理独立性。2.关系模型中,候选码的属性可以是()。A.0个B.1个或多个C.只能1个D.至少2个答案:B解析:候选码是能唯一标识元组的最小属性集,可能由单个或多个属性组成(如复合码)。3.下列SQL语句中,用于修改表结构的是()。A.UPDATEB.ALTERC.INSERTD.DELETE答案:B解析:ALTERTABLE用于修改表结构(如添加列、修改列类型);UPDATE用于更新数据,INSERT用于插入数据,DELETE用于删除数据。4.事务的原子性是指()。A.事务中所有操作要么全部完成,要么全部不完成B.事务一旦提交,其对数据库的修改是永久的C.一个事务的执行不能被其他事务干扰D.事务必须使数据库从一个一致性状态变到另一个一致性状态答案:A解析:原子性(Atomicity)要求事务是不可分割的工作单元,要么全做,要么全不做。5.关系代数中,σ(选择)操作的条件是()。A.元组属性间的逻辑表达式B.关系的属性名C.关系的元组数量D.关系的模式结构答案:A解析:选择操作σF(R)从关系R中选择满足条件F(由属性比较或逻辑连接组成)的元组。6.若关系模式R∈3NF,则R一定()。A.不存在非主属性对码的部分函数依赖B.不存在主属性对码的部分函数依赖C.不存在非主属性对码的传递函数依赖D.不存在主属性对码的传递函数依赖答案:C解析:3NF要求消除非主属性对码的部分和传递函数依赖(2NF已消除部分依赖,3NF进一步消除传递依赖)。7.数据库索引的主要目的是()。A.减少数据冗余B.提高查询效率C.保证数据完整性D.实现数据共享答案:B解析:索引通过建立属性值到记录的映射,加速数据检索(如B+树索引支持快速查找和范围查询)。8.并发事务导致的“丢失修改”问题是指()。A.事务T1读取数据后,事务T2修改了该数据,T1再次读取时得到不同值B.事务T1修改数据后,事务T2也修改了该数据,T1的修改被覆盖C.事务T1读取了被T2修改但未提交的数据,T2回滚后T1的数据无效D.事务T1按一定顺序访问数据,事务T2以相反顺序访问,导致死锁答案:B解析:丢失修改(LostUpdate)是两个事务同时修改同一数据,后提交的事务覆盖了先提交事务的修改。9.以下关于B+树索引的描述中,正确的是()。A.所有叶子节点不在同一层B.非叶子节点存储数据记录的指针C.适合范围查询(如查询年龄在20-30岁的用户)D.插入和删除操作不会破坏树的平衡答案:C解析:B+树的叶子节点存储数据指针且按顺序链接,支持高效的范围查询;所有叶子节点在同一层,非叶子节点仅存储索引键,插入删除需调整树结构以保持平衡。10.数据仓库与数据库的主要区别是()。A.数据仓库支持OLTP,数据库支持OLAPB.数据仓库存储当前数据,数据库存储历史数据C.数据仓库面向分析,数据库面向事务D.数据仓库使用关系模型,数据库使用多维模型答案:C解析:数据库主要支持联机事务处理(OLTP),面向日常业务;数据仓库支持联机分析处理(OLAP),面向决策分析,存储历史和集成数据。二、填空题(每空2分,共20分)1.数据库系统的核心是__________。答案:数据库管理系统(DBMS)2.关系模型的完整性约束包括实体完整性、参照完整性和__________。答案:用户定义的完整性3.SQL中,用于查询数据的关键字是__________。答案:SELECT4.事务的ACID特性中,“I”代表__________。答案:隔离性(Isolation)5.关系代数中,π(投影)操作的作用是__________。答案:从关系中选择若干属性列组成新关系6.若关系模式R的所有属性都是主属性,则R至少属于__________范式。答案:2NF(因无任何非主属性,不存在部分依赖)7.数据库恢复的基础是__________,它用来记录事务对数据库的更新操作。答案:日志文件(或日志)8.并发控制的主要技术是__________,包括共享锁(S锁)和排他锁(X锁)。答案:封锁(或锁机制)9.数据字典中存储的是数据库的__________,如数据项、数据结构的定义。答案:元数据(或描述数据的数据)10.在分布式数据库中,数据分片的方式包括水平分片、垂直分片、混合分片和__________。答案:导出分片三、简答题(每题8分,共40分)1.简述外键(ForeignKey)的作用及实现方式。答案:外键用于建立两个表之间的关联,确保参照完整性。作用:保证一个表(从表)的外键取值必须与另一个表(主表)的主键值匹配(或为NULL)。实现方式:在从表中定义外键列,其数据类型与主表主键一致,并通过DBMS的约束检查机制,当插入/更新从表数据时,验证外键值是否存在于主表主键中;删除主表数据时,根据级联规则(如RESTRICT、CASCADE)决定是否允许删除或同步更新从表。2.说明B树与B+树的主要区别,为什么数据库索引更倾向于使用B+树?答案:主要区别:①B树的非叶子节点和叶子节点都存储数据记录指针;B+树仅叶子节点存储指针,非叶子节点仅存储索引键。②B树的叶子节点无顺序链接;B+树的叶子节点通过指针顺序链接。③B树的查询可能在非叶子节点终止;B+树的查询必须遍历到叶子节点。选择B+树的原因:①叶子节点顺序链接,支持高效的范围查询(如按索引键排序的区间查找);②所有查询路径长度相同(从根到叶子),查询效率稳定;③非叶子节点不存储数据指针,可容纳更多索引键,减少树的高度,降低I/O次数。3.简述事务的隔离级别及其对并发问题的影响(至少列出3种)。答案:SQL标准定义了4种隔离级别(从低到高):①读未提交(ReadUncommitted):允许事务读取其他事务未提交的修改,可能导致脏读、不可重复读、幻读。②读已提交(ReadCommitted):只读取已提交的数据,避免脏读,但仍可能出现不可重复读(同一事务两次读取同一数据得到不同结果)。③可重复读(RepeatableRead):保证事务多次读取同一数据的结果一致,避免不可重复读,但可能出现幻读(读取到其他事务插入的新数据)。④可串行化(Serializable):最高隔离级别,所有事务串行执行,避免脏读、不可重复读、幻读,但并发性能最低。4.什么是数据冗余?它可能导致哪些问题?如何通过规范化解决?答案:数据冗余指同一数据在数据库中多次重复存储。可能导致的问题:①插入异常(无法插入某些信息,如未完全填充冗余字段);②删除异常(删除数据时丢失其他有用信息);③更新异常(修改冗余数据时需同步更新所有副本,否则导致数据不一致)。规范化通过分解关系模式,逐步消除数据依赖中的不合理部分(如部分依赖、传递依赖),将关系模式分解为更高范式(如2NF、3NF、BCNF),减少冗余,提高数据一致性。5.简述数据库备份与日志恢复的协同工作机制。答案:备份(如全量备份、增量备份)用于在数据库崩溃时恢复到备份时刻的状态;日志(如redo日志、undo日志)记录事务的所有更新操作,用于恢复备份后到故障前的事务操作。协同机制:①定期执行全量备份并记录备份时间点;②日常运行中记录所有事务的日志;③数据库故障时,首先通过全量备份恢复到最近备份的状态;④然后利用日志文件重做(redo)已提交但未写入数据库的事务,撤销(undo)未提交的事务,最终将数据库恢复到故障前的一致状态。四、应用题(每题10分,共30分)1.已知学生表Student(Sno,Sname,Ssex,Sage,Sdept),课程表Course(Cno,Cname,Ccredit),选课表SC(Sno,Cno,Grade)。用SQL语句完成以下查询:(1)查询计算机系(Sdept='计算机')中年龄(Sage)大于20岁的女生(Ssex='女')的学号和姓名;(2)查询选修了课程号为'C01'的学生的平均成绩(保留2位小数);(3)查询所有未选修任何课程的学生的姓名(用子查询实现)。答案:(1)SELECTSno,SnameFROMStudentWHERESdept='计算机'ANDSage>20ANDSsex='女';(2)SELECTROUND(AVG(Grade),2)AS平均成绩FROMSCWHERECno='C01';(3)SELECTSnameFROMStudentWHERESnoNOTIN(SELECTDISTINCTSnoFROMSC);2.关系R(A,B,C,D),函数依赖集F={A→B,B→C,C→D}。(1)求R的候选码;(2)判断R属于第几范式,说明理由;(3)将R分解为3NF,保持函数依赖。答案:(1)候选码:A(A能决定B,B决定C,C决定D,因此A能决定所有属性,且无更小的属性集)。(2)R属于1NF。因为存在非主属性(B、C、D)对候选码A的传递函数依赖(A→B→C→D),不满足2NF(2NF要求消除非主属性对码的部分依赖),但R的码是单属性,不存在部分依赖,因此R属于2NF?需重新分析:函数依赖A→B,B→C,C→D。主属性是A,非主属性是B、C、D。A→B是完全依赖(码是单属性,无部分依赖),所以R∈2NF;但存在传递依赖A→B→C→D(A→C通过B传递,A→D通过B→C传递),因此R不属于3NF,故R∈2NF。(3)分解为3NF:根据传递依赖,分解为R1(A,B)(A→B),R2(B,C)(B→C),R3(C,D)(C→D)。三个关系模式均满足3NF(每个非主属性都完全依赖于码,且不存在传递依赖)。3.某超市数据库中有订单表Order(Ono,Cno,Odate,Total),其中Ono为订单号(主键),Cno为客户号(外键,参照客户表Customer的Cno),Odate为订单日期,Total为订单总金额。现有事务T1和T2同时执行:T1:UPDATEOrderSETTotal=Total1.05WHERECno='C001'ANDOdate>'2024-01-01';T2:DELETEFROMOrderWHERECno='C001'ANDTotal<100;(1)若两个事务不加锁并发执行,可能导致什么问题?(2)说明如何通过封锁机制避免该问题(要求给出具体的锁类型和加锁顺序)。答案:(1)可能导致丢失修改或不一致的分析结果。例如,T1读取某条订单的Total值并计算1.05倍,此时T2删除该订单(若Total<100),则T1的更新可能作用于已删除的记录,或T2删除了T1已更新但未提交的记录,导致数据不一致。(2)使用两段锁协议(2PL):①T1在执行UPDATE前,对涉及的元组(Cno='C001'且Odate>'2024-01-01')加排他锁(X锁);②T2在执行DELETE前,对涉及的元组(Cno='C001'且Total<100)加排他锁(X锁);③若两个事务的操作有重叠元组(如某订单同时满足Odate>'2024-01-01'且Total<100),则后请求锁的事务需等待前一个事务释放锁后再执行,避免并发修改冲突。通过保证所有锁在事务提交或回滚前不释放(两段锁的“增长阶段”和“收缩阶段”分离),可确保事务的可串行化执行,避免丢失修改等问题。五、综合题(每题15分,共30分)1.某高校图书馆管理系统需要设计数据库,涉及的实体有:读者(读者号,姓名,性别,院系,证件类型,证件号)图书(书号,书名,作者,出版社,出版日期,单价)借阅记录(借阅单号,读者号,书号,借阅日期,应还日期,实际归还日期)(1)画出E-R图(需标注实体属性、联系及联系类型);(2)将E-R图转换为关系模式,注明主键和外键;(3)分析借阅记录表的函数依赖,判断其是否属于3NF,若不属于则分解为3NF。答案:(1)E-R图设计:实体“读者”属性:读者号(主键)、姓名、性别、院系、证件类型、证件号;实体“图书”属性:书号(主键)、书名、作者、出版社、出版日期、单价;实体“借阅记录”属性:借阅单号(主键)、读者号、书号、借阅日期、应还日期、实际归还日期;联系“借阅”:读者与图书之间的多对多联系(一个读者可借多本图书,一本图书可被多个读者借阅),通过“借阅记录”实体实现(联系转换为实体,包含两实体的主键作为外键)。(2)关系模式转换:读者(读者号,姓名,性别,院系,证件类型,证件号);主键:读者号;图书(书号,书名,作者,出版社,出版日期,单价);主键:书号;借阅记录(借阅单号,读者号,书号,借阅日期,应还日期,实际归还日期);主键:借阅单号;外键:读者号(参照读者.读者号),书号(参照图书.书号)。(3)借阅记录表的函数依赖分析:主键是借阅单号(假设每个借阅单唯一标识一次借阅行为),因此存在函数依赖:借阅单号→(读者号,书号,借阅日期,应还日期,实际归还日期);此外,可能存在读者号→(姓名,性别,院系)等依赖,但这些依赖涉及其他表的属性,不属于借阅记录表的函数依赖;在借阅记录表内部,非主属性(读者号、书号、借阅日期等)完全依赖于主键(借阅单号),不存在部分依赖(因主键是单属性),因此属于2NF;检查是否存在传递依赖:假设不存在非主属性对主键的传递依赖(如借阅单号直接决定所有非主属性),因此借阅记录表属于3NF。2.某银行数据库中有账户表Account(AccNo,Balance),其中AccNo为账号(主键),Balance为余额。现有两个事务:T1:从账号A转100元到账号B(即A.Balance=A.Balance-100,B.Balance=B.Balance+100);T2:从账号B转200元到账号C(即B.Balance=B.Balance-200,C.Balance=C.Balance+200)。(1)若两个事务并发执行,可能产生哪些并发问题?举例说明;(2)设计一种基于时间戳的并发控制策略,避免上述问题(要求说明时间戳分配规则和冲突处理方式)。答案:(1)可能产生的并发问题:①丢失修改:若T1和T2同时读取B的余额(如初始为500),T1将B增加100(变为600),T2将B减少200(变为300),若T2后提交,则T1的修改被覆盖,最终B的余额为300(正确应为500+100-200=400)。②不可重复读:T1读取A的余额后,T2修改了A的余额(若涉及A),T1再次读取时得到不同值,导致转账金额计算错误。③幻读:若存在其他事务插入新的账户记录,可能影响当前事务的统计结果(本题中不明显,但通用场景可能发生)。(2)时间戳并发控制策略:①时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 液化气站采购液化气制度
- 湖南绿色采购制度
- 滨江集团采购管理制度
- 煤矿配件采购制度
- 牧场采购管理制度
- 物业采购易耗品管理制度
- 物品采购验收领取制度
- 物耗采购制度
- 物资采购审批管理制度
- 物资采购纪检监督制度
- 染料化学课件
- 报价单模板完
- 种植ABC - 轻松掌握士卓曼种植工具盒
- 虚拟电厂柔性控制系统设计说明书
- 工程建设质量信得过班组创建材料
- 人音版《采花》教学设计
- 西宁市湟水河城区段水生态综合治理工程建设项目环评报告
- 库房的管理制度
- GB/T 8642-2002热喷涂抗拉结合强度的测定
- GB/T 19289-2019电工钢带(片)的电阻率、密度和叠装系数的测量方法
- GB/T 16588-2009带传动工业用多楔带与带轮PH、PJ、PK、PL和PM型:尺寸
评论
0/150
提交评论