简介这份完整Word版数据库系统概论期末考试试题面向高校计算机专业学生及备考数据库原理类课程的读者用于期末复习自测与知识点查漏补缺。压缩包内共1个doc文档约170KB内容按章节组织覆盖数据库系统基础知识、关系数据库、数据库设计、数据库管理系统、SQL语言、数据安全、事务处理、并发控制与数据库恢复等模块。试题题型包含选择题、填空题、判断题、简答题与应用题涉及物理数据独立性、候选码、投影与选择运算、视图安全性、封锁机制、事务原子性及无损连接分解等典型考点并附有部分参考答案与解析思路便于对照理解概念、梳理答题逻辑。已有3502人学习下载适合作为考前模拟练习与重点回顾的参考材料。1. 数据库系统概论一张从三级模式到事务并发的复习地图翻开任何一份《数据库系统概论》的期末卷子你会发现它考的东西高度集中选择题抠概念边界填空题抠术语定义判断题抠反例大题则几乎固定落在关系代数、SQL、范式分解、ER 转换和并发这几块。很多人复习时按教材章节从头翻翻到事务隔离级别已经忘了前面的三级模式效率极低。真正省力的做法是先建立一张地图数据库这门课其实只有三条主线——数据怎么描述数据模型、三级模式两级映像、关系模型、数据怎么操作关系代数、SQL、视图、数据怎么管好完整性、安全性、事务、并发控制、恢复。前两条线是静态的后一条线是动态的而范式与 ER 转换则是把静态结构做规范化的桥梁。这份试题资料把 2003 到 2005 学年多套期末卷整合在一起覆盖的正是这三条主线的全部考点。适合已经学过一遍、需要系统串起来查漏补缺的人也适合刚开始复习、想先看清全局再下手的同学。2. 数据描述线三级模式、两级映像与数据独立性2.1 三级模式结构是整门课的地基数据库系统的体系结构用三级模式来刻画外模式用户视图、模式全局逻辑结构、内模式物理存储结构。三者之间靠两级映像连接——外模式/模式映像保证逻辑数据独立性模式/内模式映像保证物理数据独立性。这两个独立性是选择题的高频陷阱因为选项会把应用程序与 DBMS 独立数据库与 DBMS 独立这类明显错误的说法混进来。物理数据独立性的准确表述是应用程序与存储在磁盘上的数据库物理模式相互独立即内模式改变时模式和应用程序不必改。逻辑数据独立性则是模式改变时外模式和应用程序不必改。梳理下来会发现数据独立性之所以能成立本质是映像这一层抽象在兜底。考试里凡是问某层改变谁不用改答案永远指向映像上层的对象。把这条规律记住比死背定义可靠得多。2.2 数据模型与关系模型的关键术语数据模型分三层概念模型ER 模型、逻辑模型关系、层次、网状、物理模型。关系模型建立在集合论和谓词演算基础上用二维表表示这是它区别于其他模型的根本。关系模型里几个术语必须分清术语含义易混点候选码能唯一标识元组的最小属性组可由一个或多个属性组成不是至多一个主码从候选码中选定的一个一个关系只有一个主码外码本关系中非码属性但是另一关系的码取值或为空或在参照关系中存在主属性包含在任一候选码中的属性不是主码中的属性候选码那道选择题几乎年年出现正确项是可由一个或多个其值能唯一标识该关系模式中任何元组的属性组成。干扰项至多由一个属性组成错在忽略了组合码可由多个任意属性组成错在任意二字——候选码的属性必须能唯一标识不能随便凑。2.3 关系代数三类运算的分工关系代数分传统集合运算并、交、差、笛卡尔积和专门关系运算选择、投影、连接、除。专门运算里最容易被考的是三者的区分从表中取出满足条件的属性叫投影π取出满足条件的元组叫选择σ按共同属性值拼接叫连接。注意投影是纵向切列、选择是横向切行这个方向感错了后面写关系代数表达式会全盘皆输。传统集合运算施加于两个关系时有前提属性个数必须相等对应属性值必须取自同一个域。这条在填空题里以①属性个数必须相等、②相对应的属性值必须取自同一个域的形式出现属于送分但也容易漏的点。提示等值连接与自然连接的区别是简答题常客。自然连接一定是等值连接但等值连接不一定是自然连接自然连接要求相等的分量必须是公共属性且要去掉重复属性等值连接不要求公共属性、也不去重复属性。3. 数据操作线SQL、视图与关系演算的复习重点3.1 SQL 的三种语言分类不能混SQL 按功能分三类数据定义语言 DDLCREATE、DROP、ALTER、数据操纵语言 DMLSELECT、INSERT、UPDATE、DELETE、数据控制语言 DCLGRANT、REVOKE。选择题常问实现对数据查询、插入、修改、删除的语言叫什么答案是 DML不是 DDL。SQL 的两种使用方式是交互式 SQL 和嵌入式 SQL这个填空点也反复出现。SQL 支持三级模式视图对应外模式基本表对应模式存储文件对应内模式。3.2 视图只存定义不存数据视图是虚表从一或多个基本表导出数据库中只存放视图的定义不存放视图对应的数据。这句话是选择题和填空题的双料考点。视图的价值有两个一是逻辑独立性基本表结构变了可以用视图屏蔽二是安全性对不同用户定义不同视图让机密数据不出现在无权查看者的视图里。资料里给的例子很典型-- 建立信息系学生视图只暴露本系数据 CREATE VIEW IS_Student AS SELECT Sno, Sname, Sage FROM Student WHERE Sdept IS; -- 把查询权限授予用户配合视图实现存取控制 GRANT SELECT ON TABLE Student TO U1;第一段用 WHERE 过滤系别把其他系的数据挡在视图外第二段用 GRANT 把权限精确到表和操作。两段合起来就是视图 存取控制保证安全性的完整链路。复习时要把 GRANT/REVOKE 的语法位置记牢权限在前、ON 表在后、TO 用户收尾。3.3 关系演算与 SQL 的等价改写元组关系演算表达式看着吓人其实套路固定用{T(1) | (∃U)(∃V)...}的形式把存在某个元组满足条件翻译成量词加谓词。比如检索选修了某老师课程的学生姓名就是存在学生元组 U、选课元组 V、课程元组 W满足连接条件且课程教师等于目标值。写这类题的关键是先确定结果元组的目数T(1) 还是 T(2)再把连接条件逐条用 ∧ 串起来。SQL 多表查询则要盯住连接条件和过滤条件分开写。资料里找出程序设计课程成绩 90 分以上学生姓名给了两种写法一种是三表连接加 WHERE另一种是嵌套 IN 子查询。两种都对但考试时如果题目要求用 SQL 完成优先写连接形式因为阅卷时连接条件清晰、不易被判错。-- 写法一三表连接连接条件与过滤条件分离 SELECT SNAME FROM S, SC, C WHERE S.S# SC.S# AND SC.C# C.C# AND SCORE 90 AND CNAME 程序设计;这段里S.S# SC.S#和SC.C# C.C#是连接条件SCORE 90和CNAME 程序设计是过滤条件。漏掉任何一个连接条件都会变成笛卡尔积结果行数爆炸——这是上机和大题都最常见的翻车点。4. 结构规范化线函数依赖、范式分解与 ER 转换4.1 函数依赖与 Armstrong 公理函数依赖是范式理论的骨架。基本概念要分清完全函数依赖、部分函数依赖、传递函数依赖。Armstrong 公理三条——自反律、增广律、传递律是证明其他规则的基础。资料里用公理证明合并规则的写法值得抄下来若 X→Y、X→Z则由增广律得 X→XY、XY→ZY再由传递律得 X→YZ。证明题的关键是每一步都标明用了哪条公理不能跳步。闭包计算是求候选码的前置技能。计算 X 的流程是初始 X(0)X反复用 F 中的函数依赖往右扩充直到不再变化。比如 F{A→BC, CD→E, B→D, E→A}求 BB(0)B由 B→D 得 B(1)BD再无新属性可加故 BBD。这个迭代到不动点的思路要形成肌肉记忆。4.2 求候选码的快捷判断候选码只可能由函数依赖左边的属性组成。资料里给了一个很实用的排除法在 F 中左右都不出现的属性必包含在候选码中因为只有它能函数决定自己只在左边出现的属性也必包含只在右边出现的属性必不包含。判断题里左右都不出现的属性必不包含在候选码中是错的正确说法是必包含——这个反直觉点几乎每年都有人栽。求候选码时先按上述规则锁定必含属性再逐个尝试加入其他属性算闭包看是否等于全集 U。资料中 R(U,F)、U{A,B,C,D,E}、F{A→BC, CD→E, B→D, E→A} 的候选码是 A、BC、CD、E 四个逐个验证闭包都等于 ABCDE且去掉任一属性后闭包不再等于全集才满足最小性。4.3 范式分解从 1NF 到 BCNF 的逐步拆解范式的判定链条是1NF 要求属性不可再分2NF 在 1NF 基础上消除非主属性对候选码的部分函数依赖3NF 在 2NF 基础上消除非主属性对候选码的传递函数依赖BCNF 要求每个决定因素都包含候选码。资料里职工日产量那个综合题是标准模板R(职工编号, 日期, 日产量, 车间编号, 车间主任) FD: (职工编号,日期)→日产量, 职工编号→车间编号, 车间编号→车间主任 关键码: (职工编号, 日期) 分解到 2NF消除部分依赖: R1(职工编号, 车间编号, 车间主任) R2(职工编号, 日期, 日产量) 分解到 3NF消除传递依赖 职工编号→车间编号→车间主任: R11(职工编号, 车间编号) R12(车间编号, 车间主任) R2(职工编号, 日期, 日产量)每一步都要写清消除了什么类型的函数依赖这是评分点。R1 里职工编号→车间编号、车间编号→车间主任于是职工编号→车间主任是传递依赖拆成 R11 和 R12 后每个决定因素都是候选码达到 3NF 也满足 BCNF。注意 3NF 只约束非主属性BCNF 约束所有属性这是两者最本质的差别。4.4 ER 图转关系模型的规则与主外键计数ER 转关系模型的规则可以浓缩成三句话每个实体型转一个关系模式1:N 联系把 1 端的主键放进 N 端作外键M:N 联系单独转一个关系模式主键是两端主键的组合。M:N:P 三元联系同理单独成表主键是三端主键的组合。资料里车辆管理系统的综合题问主键和外键的总数这类计数题最容易错。方法是先数关系模式个数7 个实体 1 个 M:N 2 个 M:N:P 10 个主键数等于关系模式数每个模式一个主键外键数则逐个模式数参照关系。10 个主键、13 个外键这个结果靠的是把每个外键列都标出来再累加不能凭感觉估。注意无损连接分解的判定用表格法Chase 算法。初始表每行对应一个子模式、每列对应一个属性有该属性的填 a_i没有的填 b_ij然后反复用函数依赖把 b 改成 a若最终某行全是 a则分解无损。资料里 R1(ABC)、R2(CD)、R3(DE) 的分解最终第一行变成全 a判定为无损连接。5. 数据管控线安全性、完整性、事务与并发恢复5.1 安全性 vs 完整性一字之差方向相反安全性和完整性是选择题最爱设的对照。安全性是保护数据库防止不合法使用造成泄露和破坏主要手段是存取控制授权完整性是保证数据的正确性和相容性主要手段是完整性约束实体完整性、参照完整性、用户定义完整性。一个防外人乱来一个防数据本身不对方向完全不同。授权编译系统和合法性检查机制一起组成安全性子系统这个填空点要记。参照完整性的含义用例子最好记成绩表中课程号是外码它的值要么为空要么必须在课程表的课程号中找得到。找不到就说明这条选课记录指向了一门不存在的课数据不一致。5.2 事务的 ACID 与并发三大问题事务是 DBMS 的基本工作单位是用户定义的一组逻辑一致的程序序列。ACID 四个特性要能对号入座原子性指操作要么都做要么都不做一致性指数据库从一个一致状态变到另一个一致状态隔离性指并发事务之间互不干扰持久性指提交后改变永久。选择题常把四个定义打乱让你选比如事务一旦提交对数据库的改变是永久的对应持久性不是原子性。并发不加控制会带来三类问题丢失修改、不可重复读、读脏数据。资料里给了两个并发操作图判断方法看时间线T1 读 A 后 T2 也读 A 并写回T1 再写回覆盖了 T2 的结果就是丢失修改T1 读了 AT2 修改 A 并提交T1 再读发现值变了就是不可重复读T1 修改 A 未提交T2 读到这个中间值T1 回滚T2 读的就是脏数据。把图里的读写顺序画成时间轴三类问题一眼可辨。5.3 封锁机制与两段锁协议封锁是并发控制的主要方法。共享锁 S 锁加了 S 锁的事务只能读不能改其他事务还能加 S 锁但不能加 X 锁。排他锁 X 锁加了 X 锁的事务可读可改其他事务什么锁都加不了。这道选择题的正确答案是事务 T 可以读 A 但不能修改 A其它事务只能再对 A 加 S 锁而不能加 X 锁。可串行化是并发调度的正确性标准。这里有个经典反直觉点视图可串行化的调度不一定冲突可串行化。冲突可串行化是视图可串行化的充分条件而非必要条件资料里判断题正是拿这个做文章结论是错误并举了视图可串行化但非冲突可串行化的调度作为反例。复习时要把这个包含关系记死冲突可串行化 ⊂ 视图可串行化。5.4 故障类型与恢复手段数据库运行中可能产生的故障有三类事务故障Transaction failure、系统故障System crash、磁盘故障Disk failure。系统故障是系统停止运行、内存信息丢失但外存数据不受影响这个定义在填空题里反复考。恢复的手段包括事务日志、检查点和数据备份日志记录每个事务对数据的修改用于 UNDO 未提交事务和 REDO 已提交事务检查点减少恢复时需要扫描的日志量备份应对磁盘介质故障。提交 COMMIT 是把更新写回磁盘、事务正常结束回滚 ROLLBACK 是撤消所有已完成更新、回到事务开始状态这两个操作的含义要能用一句话说清。6. 查漏补缺一份可执行的复习清单与自测方法复习到这一步知识点已经铺开剩下的是把看过变成写得出。我的做法是把整门课压缩成一张自测表每行一个考点右边留空合上资料默写写不出来的打勾第二轮只攻打勾项。下面这张表按错误率从高到低排你可以直接拿去用考点自测动作常见失分物理/逻辑数据独立性说出哪层变、谁不改混淆两级映像方向候选码定义判断至多一个属性对错忽略组合码投影 vs 选择各写一个关系代数式行列方向搞反视图存什么填空只存放____答成数据2NF/3NF/BCNF 判定给一个 FD 集判范式漏写消除的依赖类型无损连接判定画 Chase 表初始表填错S 锁/X 锁兼容性画相容矩阵记反读写权限三类并发问题看时间线判类型丢失修改与脏读混淆冲突 vs 视图可串行化说包含关系认为两者等价故障三分类对号入座系统故障与事务故障混默写之外还有两个动作值得强制走一遍。第一每道大题写完先回头检查连接条件——SQL 多表查询漏一个S.S# SC.S#就是笛卡尔积范式分解漏写消除部分依赖就丢步骤分这两个是血泪经验里最高频的翻车点。第二判断题遇到一定必这类绝对词先找反例资料里视图可串行化一定冲突可串行化左右都不出现的属性必不包含在候选码中两道题都是靠反例翻盘的绝对化表述在数据库判断题里十有八九是错的。最后说个习惯我复习范式分解时每拆一步都在旁边标注这一步消除了什么依赖、为什么此时还不是下一范式而不是只写结果。因为考试评分看的是过程而过程写清楚的前提是你真的理解每一级范式在防什么。从那以后我每次做分解题都强制走一遍判码—找依赖—拆—验范式四步再没在步骤分上栽过。这份试题资料把多套卷子的选择、填空、判断、简答、综合题都收在一起正好可以按上面的清单逐项对照练手把地图上的每个节点都落到笔头。希望帮到你。本文还有配套的精品资源点击获取