ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

数据库原理试卷解析:从关系模型到范式分解的复习指南

数据库原理试卷解析:从关系模型到范式分解的复习指南 简介这份《数据库原理》期末试卷及答案doc格式面向正在备考数据库原理课程的高校学生、自考与专升本考生可用来检测对关系模型、函数依赖、数据库设计、事务处理、SQL语言及完整性约束等核心知识点的掌握程度。资源共1个文件是97KB的Word文档内含10道填空题和20道选择题及答案题型覆盖广答案解析清晰适合考前自测、针对训练和查漏补缺。目前已有68人浏览学习。试卷从DBMS核心、二维表关系、候选码判定到并发控制、脏读问题、范式判断、关系代数表达式和SQL查询均有涉及尤其对部分函数依赖、实体完整性、外键等易混概念有直观考查通过练习可快速定位薄弱环节加深对数据库系统概念与原理的理解是一份针对性较强的期末复习资料。1. 从考试结构到复习路径数据库原理试卷怎么用《数据库原理》这门课的知识点说多不多说少不少关系代数、范式分解、SQL、事务、并发控制、存储过程每块都能单独出大题。但期末考试的套路其实很固定翻几套往年卷子就能摸清出题老师的偏好。这份期末试卷及答案涵盖了两套完整试题题型覆盖填空、选择、名词解释、简答和综合题基本对应国内高校数据库原理课程的主流考法。对于正在备考的学生或者想快速回顾数据库核心概念的一线工程师这套资料的价值在于它把零散的知识点按考试题型重新组织了一遍做完一遍等于把整本书的骨架过了一遍。下面按“理论主线 → SQL实操 → 范式与设计 → 考前复盘”的顺序拆解这份试卷重点讲清楚每类题背后的判断逻辑而不是单纯背答案。2. 关系模型与函数依赖选择填空背后的理论主线2.1 候选码判定从函数依赖集反推唯一标识试卷第一套填空题第三题给出关系模式 R(A, B, C)函数依赖集 F{A→B, C→B}要求判断候选码。答案是 (A, C)。这里的判断依据是候选码必须能决定所有属性且没有冗余属性。逐个验证A 只能决定 BC 只能决定 B两者单独都无法决定全部属性但 (A, C) 可以决定 B而 A 和 C 本身就是全部剩余属性所以 (A, C) 能推出 A、B、C 全体且去掉任何一个都无法做到这一点因此候选码是 (A, C)。这类题在考试里几乎必出做题步骤可以固定为三步写出所有属性集合标记已知函数依赖找出只出现在箭头左侧、从未出现在右侧的属性这些属性必然属于候选码用剩余属性组合验证闭包能覆盖全部属性且最小即为候选码。第二套试卷里“关系模式 R 的主关键字是运动员编号项目号”的判断也遵循同样逻辑只是多了部分函数依赖的考察。这里要特别注意候选码是“最小超键”不是随便一个能唯一标识的属性组合。2.2 主键约束与唯一性约束的异同简答题里有一道“简述主键约束和唯一性约束的异、同点”这是概念题的高频考点。两者的共同点是都能保证列值的唯一性都可以用来实现实体完整性区别集中在以下几点对比项主键约束唯一性约束数量限制一个表最多一个主键一个表可以有多个唯一约束空值不允许取空值允许一个 NULL不同数据库实现有差异用途唯一标识一行记录补充候选键或防止业务字段重复索引自动创建聚集索引自动创建非聚集索引语义实体完整性候选键语义考试答题时先写共同点再分条列区别最后补一句“唯一约束常用来实现候选键”这条踩分点很多人会漏。代码层面两者的定义差异也很直观CREATE TABLE Student ( Sno CHAR(8) PRIMARY KEY, -- 主键唯一且非空 Sname CHAR(10) NOT NULL, IdCard CHAR(18) UNIQUE -- 唯一约束允许一个 NULL );2.3 关系代数与集合运算投影、选择、连接选择题第 5 题考查关系运算式查询选修 2 号课程的学生的学号和姓名。正确答案是∏学号姓名(σ课程号2(S∞SC))。这个式子的执行顺序是先做 S 和 SC 的自然连接再选择课程号为 2 的行最后投影学号和姓名。容易错的地方是写成∏学号(σ课程号2(S∞SC))漏掉了姓名列或者是先投影再选择导致课程号在投影后丢失。判断这类题的关键是先确定需要哪些属性作为筛选条件再确定最终输出哪些列筛选要在投影之前完成。另一个高频关系代数题是集合运算等价式R∩S 等价于 R-(R-S)。这个等价关系本质上是集合差运算的嵌套R-S 得到只属于 R 不属于 S 的元组再用 R 减去这部分剩下的就是两个关系的交集。对照选项A 选项 S-(R-S) 的结果是 S 中独有的元素D 选项 S-R 是 S 与 R 的差集都不对。3. SQL 与关系代数实战从语法陷阱到综合题答题框架3.1 DDL 与插入语句主键约束如何影响 INSERT选择题第 14 题给了一张用CREATE TABLE Course(Cno CHAR(2) not null, Cname CHAR(20), Cfen INT)创建的表问哪个 INSERT 可以正确执行。正确答案是 DINSERT INTO Course(Cno,Cname) VALUES(C2,数据库)。原因在于Cno 是主键列且声明了 NOT NULL任何插入必须提供该列的值Cfen 允许为空所以不插入也不会报错。A 选项的问题在于字符串C2没有加引号且 Cfen 值 3 不是字符串B 选项把整数列插入了字符串2类型不匹配C 选项没给主键列赋值违反 NOT NULL 约束。这类题表面考语法实际考的是对约束的理解。写 INSERT 时先看三件事哪些列 NOT NULL、哪些列有默认值、哪些列是自增或计算列。考试里只要题目声明了主键列这一列几乎必然是必填项。3.2 WHERE、HAVING 与聚合函数的执行顺序选择题第 16 题问 WHERE、聚合函数、GROUP BY、HAVING 同时出现时最后执行哪一个答案是 HAVING。SQL 的执行逻辑顺序如下SELECT 班级, AVG(成绩) AS 平均分 FROM 成绩表 WHERE 成绩 0 -- 第一步过滤行 GROUP BY 班级 -- 第二步分组 HAVING AVG(成绩) 80 -- 第三步过滤组 ORDER BY 平均分 DESC; -- 第四步排序执行顺序是FROM → WHERE → GROUP BY → 聚合函数 → HAVING → SELECT → ORDER BY。WHERE 在分组前过滤行HAVING 在分组后过滤组这是两者的核心区别。GROUP BY 出现后SELECT 只能包含分组列和聚合函数这是写查询时最容易踩的坑。试卷里“统计每门课各班的平均成绩”那一题选 WITH ROLLUP本质是因为题目要求同时输出明细分组和小计行而 WITH ROLLUP 会在分组结果上追加汇总行。3.3 综合题 SQL 拆解学生-课程库的标准答法综合题第三题给出了 Student、Course、SC 三个表要求写四条 SQL覆盖条件查询、多表连接、视图创建和存在性判断完整解答如下-- (1) 查询年龄在20以下的女生的姓名、系别、年龄 SELECT Sname, Sdept, Sage FROM Student WHERE Sage 20 AND Ssex 女; -- (2) 查询每个学生的姓名及其选修课程的课程名 SELECT Student.Sname, Course.Cname FROM Student, SC, Course WHERE Student.Sno SC.Sno AND SC.Cno Course.Cno; -- (3) 创建视图包含每个系学生所选每门课的平均成绩平均成绩80分以上 CREATE VIEW v_avg_score AS SELECT Sdept, Cno, AVG(Grade) AS AvgGrade FROM Student, SC WHERE Student.Sno SC.Sno GROUP BY Sdept, Cno HAVING AVG(Grade) 80; -- (4) 查询学号95013的各科成绩若不存在则显示提示 IF (SELECT COUNT(*) FROM SC WHERE Sno 95013) 0 SELECT * FROM SC WHERE Sno 95013 ELSE PRINT 此学生无成绩;逐条分析第(1)题考察 WHERE 多条件组合注意字符串用单引号第(2)题是经典的两表等值连接别漏连接条件否则会得到笛卡尔积第(3)题的关键在于 GROUP BY 后的 HAVING 不能替换成 WHERE因为平均成绩是分组聚合的结果WHERE 在 GROUP BY 之前执行拿不到聚合值第(4)题用IF...ELSE判断记录是否存在比直接查询再判断结果集更容易得分。3.4 权限管理与索引用法GRANT、REVOKE 与唯一索引授予和撤销权限的语法是易混淆点。授予 user1 修改 st 表“姓名”字段的权限GRANT UPDATE(姓名) ON TABLE st TO user1;撤销该权限REVOKE UPDATE(姓名) ON TABLE st FROM user1;注意几个固定搭配授权用GRANT ... ON ... TO ...撤销用REVOKE ... ON ... FROM ...列级权限写在权限名后面的括号里表的类型关键字是TABLE。选择题第 18 题问主数据库文件的扩展名答案是.mdf日志文件是.ldf次要数据文件是.ndf这三个后缀经常混在一起考。索引方面唯一索引的创建语法是CREATE UNIQUE INDEX 索引名 ON 表名(列名)注意 UNIQUE 要放在 INDEX 前面这是与普通索引创建语句唯一的区别。4. 范式分解、E-R 建模与事务并发综合题的完整推演4.1 E-R 图转关系模式联系类型决定表数量综合题第一题要求把学生和课程两个实体及其“学习”联系画成 E-R 图并写出关系模式。判分点有三个实体用矩形、属性用椭圆、联系用菱形联系类型要标注 m:n。关系模式的转换规则是每个实体转一张表主键即为实体标识属性1:1 联系可以并入任意一端1:n 联系并入 n 端m:n 联系单独成表主键是两端实体主键的组合。所以学生和课程之间的“学习”是 m:n 联系需要单独建表学习(学号, 课程号, 成绩)主键是 (学号, 课程号)学号和课程号分别引用学生表和课程表的主键。第二套试卷选择题第 2 题问“5 个实体型、2 个 1:M 联系和 2 个 M:N 联系转换的关系模式个数至少是多少”答案是 75 个实体生成 5 张表2 个 1:M 联系并入 n 端不新增表2 个 M:N 联系各生成 1 张表共 7 张。4.2 从部分依赖到传递依赖3NF 分解的标准步骤综合题第二题是范式分解的完整示例。关系 R(运动员编号, 姓名, 性别, 班级, 班主任, 项目号, 项目名, 成绩) 的候选码是 (运动员编号, 项目号)。判断最高范式等级时按三步走判断 1NF所有属性都是不可分的原子值满足判断 2NF姓名、性别、班级只依赖运动员编号项目名只依赖项目号都只依赖候选码的一部分存在部分函数依赖所以不是 2NF最高只有 1NF若是 3NF需要先消除部分依赖达到 2NF再消除传递依赖。分解过程分两轮第一轮消除部分函数依赖分解为 2NF R1(运动员编号, 姓名, 性别, 班级, 班主任) R2(项目号, 项目名) R3(运动员编号, 项目号, 成绩) 第二轮R1 中班主任依赖班级班级依赖运动员编号存在传递依赖 R1 继续分解 R1a(运动员编号, 姓名, 性别, 班级) R1b(班级, 班主任)最终得到 R1a、R1b、R2、R3 四个关系模式全部满足 3NF。分解的关键是每次只处理一种依赖先拆部分依赖再拆传递依赖。第二套试卷里“职工号、日期、日营业额、部门名、部门经理”的分解逻辑完全相同主键是 (职工号, 日期)存在部门名对职工号的部分依赖先拆出职工(职工号, 部门名)再处理部门经理对部门名的传递依赖最后得到职工(职工号, 部门名)和部门(部门名, 部门经理)。4.3 并发控制脏数据、锁与死锁的连锁考点选择题第 3 题描述的场景事务 1 将 A 从 200 改为 300事务 2 读到 300随后事务 1 撤销操作 A 回到 200事务 2 读到了“脏”数据。这对应并发控制中的读未提交问题解决办法是加锁或提高隔离级别。与之配套的锁机制知识在第二套试卷里也有考查事务 T 获得数据项 Q 的共享锁后T 对 Q 只能读不能写。共享锁S 锁的含义是允许其他事务也加共享锁但任何事务都不能加排他锁所以持有共享锁的事务本身也只能读。死锁的简答题给出了两种典型场景两个事务各自持有对方需要的锁、复杂查询处理顺序不可控。解决办法分预防和检测两类预防类包括一次性锁定所有需要的资源、按固定顺序访问资源检测类允许死锁发生由系统周期检测并牺牲其中一个事务回滚。试卷答案提到“每个事务一次就将要使用的数据全部加锁”属于预防策略而“允许死锁发生系统诊断”属于检测策略。这两类要分清楚考试时常混淆“预防”和“检测”的归属。5. 考前复盘把试卷答案变成自己的知识索引5.1 高频错误点自查清单做完两套试卷后对照下面的清单逐项检查比反复刷题更有效错误类型典型表现纠正策略候选码漏判只看单属性忽略组合属性先找箭头左侧属性再做闭包验证LIKE 通配符混用%和_语义搞混%匹配任意长度_匹配单个字符WHERE 与 HAVING 错位聚合条件写在 WHERE 里WHERE 过滤行HAVING 过滤组视图误判认为视图存储数据视图是虚表不占存储空间范式等级判断错误部分依赖和传递依赖弄反部分依赖是“依赖主键的一部分”传递依赖是“依赖非主属性”5.2 用题号建立知识索引复习到后期不建议再按教材目录从头翻而是把这份试卷的每一道题当作一个知识点的“锚点”。例如填空题第 6 题“聚集索引和非聚集索引的存储结构都采用 B 树”对应的知识点是索引的物理实现选择题第 20 题“只有两个或若干个值的列不适合创建索引”对应索引选择原则。复习时看到一道错题就反向回忆这个知识点在教材哪一章、有哪些配套概念形成“题目 → 概念 → 相邻概念”的网状记忆。建议在试卷答案旁边标注知识点归属章节比如“第 2 章 关系数据库”“第 6 章 事务管理”扫描复习时只看标注就能定位薄弱环节。5.3 综合题答题顺序建议综合题每题 10 分建议先做 SQL 题再作范式分解最后画 E-R 图。SQL 题的判分按语句结构给分连接条件、分组字段、过滤条件各占一定分值即使最终结果不对写出正确的连接逻辑也能拿部分分数。范式分解题先写候选码再分解分解过程要展示中间步骤直接给出最终答案会丢掉推理分。E-R 图题注意联系类型的标注m:n 联系如果漏画菱形框和标注那 10 分基本拿不到。每做完一小问回头检查主键和外键的对应关系这是高分的关键。本文还有配套的精品资源点击获取
返回列表