数据库系统概论期末试题全解析:关系代数、范式与T-SQL核心考点梳理
简介数据库系统概论期末试题及答案PDF面向高校数据库课程学习者与期末备考生内容覆盖数据库基本特征数据共享性与数据独立性、DB/DBMS/DBS三者关系、关系代数中R-(R-S)等价于R∩S、自然连接条件以及E-R模型三要素、关系模型转换、3NF/BCNF规范化等核心考点。题库含选择题和填空题部分题目附参考答案和难度系数能帮助读者结合BETWEEN含边界值、UNIQUE与主外键约束、Teacher表插入约束等实例理解SQL与完整性概念并顺带复习视图来源、GRANT/REVOKE安全控制、M:N联系码组合、DFD/DD需求分析及E-R集成冲突等易混淆知识点。压缩包内只有1个PDF文件整体约690KB适合打印或导入平板随时刷题。目前已有274人学习浏览是一份轻量实用、可反复自测的期末复习资料适合考前冲刺、考研复习和课堂自测等场景。1. 先厘清这份《数据库系统概论期末试题及答案》能做什么数据库系统概论期末复习最怕的不是题难而是手边资料太散、考点边界不清楚。这份试题加答案的 PDF 我前后翻了三遍它把一门课最常见的考点基本都压进了三套卷子里覆盖范围从基本概念、关系代数、范式理论一路延伸到 T-SQL 实操和 E-R 设计。二十道选择题专挑概念辨析DB、DBMS、DBS 的包含关系R-(R-S) 的等价变形UNIQUE 与 PRIMARY KEY 的空值区别全是平时备考容易忽略的细节填空和简答把三层模式、DBMS 功能、DBA 职责、E-R 转换原则这些必背点给到了标准答法T-SQL 综合题则从建表到视图一条链走完。不管手头教材是第五版还是第六版这门课的核心考点基本都在这里了。适合两类人考前想用真题自测找状态的学生党以及像我这样要带新人、需要出题模板和判分参考的人。2. 关系代数与概念辨析选择题里最容易丢分的是这两类2.1 关系代数五种基本运算与 R-(R-S)R∩S 的推导第 7 题问关系代数的五种基本运算很多人的第一反应会选并、差、选择、投影、连接因为连接在日常查询里用得最多。但基本运算是并、差、选择、投影、笛卡尔积这五个连接属于派生运算完全可以用笛卡尔积加选择表达出来。这个区分是考点也是理解后面等价转换的基础。第 3 题的 R-(R-S) 看起来绕推起来其实很直接R-S 得到的是只在 R 中而不在 S 中的行再用 R 减掉这个结果等于把只属于 R 的部分拿掉剩下的自然就是两边都有的行也就是 R∩S。用文氏图想R 被 S 分成两块R-S 是第一块R 减去第一块剩下第二块第二块就是交集。这类题不用背结论考场现推也来得及。第 9 题给了更实用的提醒。SQL 语句 SELECT A,B,D FROM R,S WHERE R.CS.C 对应的关系代数式是 πA,B,D(σR.CS.C(R×S))也就是先做笛卡尔积再做选择最后投影。这个顺序不能颠倒如果先投影 A、B、D连接条件 R.CS.C 里用到的 C 列已经被丢掉了后面的选择无从谈起。从这条可以延伸到第 10 题视图是从基本表或视图导出的本质是一次命名查询结果的复用这也解释了为什么视图在权限控制和简化查询里这么常用。同属这一块的概念还有第 4 题和第 6 题自然连接要求 R 和 S 有一个或多个公共属性连接时按公共属性值相等的行合并E-R 模型的三个基本要素是实体、属性、联系。以及第 18 题的游标——SQL 是集合操作宿主语言是单记录处理中间靠游标一行一行取理解了这一点嵌入式 SQL 为什么要声明游标才算真正过关。2.2 范式判断的绝对词看到一定先举反例第 8 题问规范化理论哪个说法不正确错误项是 D任何一个包含三个属性的关系模式一定满足 2NF。一个反例就能说明问题R(A,B,C)主键是 AB如果存在函数依赖 B→CC 就部分依赖于主键 AB连 2NF 都不满足。所以一定这两个字就是破绽所有带一定的选项都要格外小心。反过来第 10 题填空的结论是如果一个关系模式是 1NF并且每个决定因子都是候选码那它至少是 BCNF——这其实是 BCNF 的定义。为什么任何一个包含两个属性的关系模式一定满足 BCNF成立两个属性之间要么有一个决定另一个要么互相决定这种情况下每个决定因子天然就是候选码不存在部分依赖和传递依赖的空间。这块还顺带覆盖了两个填空考点在函数依赖的范畴内BC 范式达到了最高的规范化程度一个 1NF 关系模式每个决定因子都是候选码至少是 BCNF。函数依赖的推导规则也值得一并记若 A→B、A→C 则 A→BC 是合并律若 A→C 则 AB→C 是增广律而若 AB→C 则 A→C、B→C不成立左侧不能随便拆。2.3 一组容易混的约束UNIQUE、PRIMARY KEY、BETWEEN 与安全完整性第 11 题的 Teacher 表插入判断考的是约束语义的组合。TNO 和 NAME 都声明了 NOT NULLSDEPT 有 CHECK 约束限定取值在 IS、MA、CS 三个值里SAL 和 SEX 允许为空。四个选项里只有 A 的 TNO、T0203、NAME刘刚都非空SDEPTIS在集合内能完整落进去B 的 TNO 是 NULLC 的 NAME 是 NULLD 的 SDEPTEN不在 CHECK 限定的取值里。这种题没什么技巧把每个字段的约束逐项列出来对照就行。第 13 题把 UNIQUE 和 PRIMARY KEY 的区别单独拎出来考UNIQUE 允许取空值但不允许出现重复值PRIMARY KEY 既不充许空值也不允许重复。用一张表记这三类约束的区别约束是否允许空值是否允许重复典型用途UNIQUE允许不允许教师姓名、身份证号等唯一性约束PRIMARY KEY不允许不允许每个表的主键FOREIGN KEY允许允许建立表间引用关系CHECK取决于条件取决于条件取值范围、枚举值约束第 12 题的 BETWEEN 18 AND 30 是闭区间18 和 30 都包含这是最容易丢分的细节。第 14 题数据库完整性定义为正确性和相容性第 15 题 GRANT 和 REVOKE 维护的是安全性而不是完整性这两组概念经常一起出现前者管数据对不对约束、触发器、事务后者管谁能访问授权、视图、审计。把这些成对出现的概念放一块儿记比单背正确选项有效得多。3. T-SQL 综合题实操建表约束、LIKE 转义与分组排序三套卷子的 T-SQL 大题共用同一套学生-课程库Student、Course、SC 三张表的结构几乎一致只是默认值、阈值和排序方向做了替换。这意味着吃透一套的写法另外两套只是改参数的问题。3.1 建表语句逐项拆解从主键到外键级联第一套卷子的建表题要求写出 Student 表的 T-SQL 语句答案是这样的CREATE TABLE Student ( Sno CHAR(8) PRIMARY KEY, Sname CHAR(12) NOT NULL UNIQUE, Ssex CHAR(2) CHECK (Ssex IN (男,女)) DEFAULT 男, Sage INT CHECK (Sage 15 AND Sage 36) DEFAULT 22, Sdept CHAR(20) DEFAULT 计算机系 );逐项看约束Sno 是主键主键自带非空且唯一的语义不需要再重复写 NOT NULLSname 用 NOT NULL UNIQUE 组合表示姓名既不能为空也不能重复这和主键的区别在于它不是表的唯一入口Ssex 的 CHECK 把取值锁死在男女两个值DEFAULT 保证插入时不写性别就用男兜底Sage 的 CHECK 把范围限制在 15 到 36DEFAULT 22 对应默认年龄Sdept 没加 CHECK 但给了默认值计算机系。每个 DEFAULT 都对应插入时省略该列的场景批量导入数据时非常实用。SC 表的外键约束在试题表描述里写得很细值得单独拿出来看CREATE TABLE SC ( Sno CHAR(8), Cno CHAR(8), Grade SMALLINT CHECK (Grade BETWEEN 0 AND 100), PRIMARY KEY (Sno, Cno), FOREIGN KEY (Sno) REFERENCES Student(Sno) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY (Cno) REFERENCES Course(Cno) ON UPDATE CASCADE ON DELETE NO ACTION );这里有个容易被忽略的细节SC 表的两个外键Sno 参照 Student 是级联更新和删除Cno 参照 Course 是级联更新、拒绝删除。也就是说改学号、删学生时选课记录跟着走改课程号可以级联但删除课程时会因为有选课记录而被拒。这个差异对应真实项目里的主数据变更策略学生退学要连带清选课课程不能在有成绩时删除。两个 ON DELETE 策略搞反一个数据一致性就会出问题。3.2 LIKE 通配符与 ESCAPE 转义一个容易被排版坑掉的细节第二道 SQL 题是检索课程名以DB_开头、且倒数第 3 个字符为 k 的课程参考答案用的是 LIKE 加 ESCAPESELECT * FROM Course WHERE Cname LIKE DB\_%k__ ESCAPE \;pattern 逐个字符拆DB_ 匹配字面的DB_反斜杠是转义符把下划线从通配符变回普通字符% 匹配任意长度字符串k 字面匹配字母 k最后两个下划线匹配任意两个字符正好把 k 顶到倒数第 3 位。ESCAPE 声明反斜杠为转义符这是 ANSI SQL 的标准写法SQL Server 和 PostgreSQL 都认。如果不用转义下划线会被当成任意一个字符来匹配DB_ 就变成DB 加任意一个字符查询结果完全偏掉。类似的题还有第二套卷子的姓李且倒数第 2 个字为华或涛SELECT Sname, Sno FROM Student WHERE Sname LIKE 李%[华涛]_;[华涛] 是字符集匹配表示这个位置是华或涛的任意一个。这类 pattern 最实际的问题是空格PDF 里的 SQL 语句经常在转义符、下划线之间被排版拆出空格直接从 PDF 复制到查询窗口DB_%k_ _ 这种带空格的 pattern 既匹配不到数据也不报错排查起来非常折磨人堪称 SQL 玄学。我的习惯是看到带 LIKE 的题先在编辑器里手敲一遍确认没有不可见字符再执行。3.3 分组统计与 UPDATE/DELETE 子查询执行顺序是排错关键求出女同学的每一年龄组超过 3 人有多少人按人数降序、人数相同按年龄升序这题完整 SQL 是这样的SELECT Sage, COUNT(Sno) AS cnt FROM Student WHERE Ssex 女 GROUP BY Sage HAVING COUNT(Sno) 3 ORDER BY cnt DESC, Sage ASC;执行顺序是 FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY。这个顺序决定了三件事WHERE 在分组前过滤所以性别条件放在 WHEREHAVING 在分组后过滤所以超过 3 人必须用聚合函数 COUNT 写在 HAVING 里ORDER BY 最后执行所以可以直接用 SELECT 里的别名 cnt而 WHERE 里不能用别名。题目原答案写的是 ORDER BY 2 DESC, Sage ASC数字 2 指 SELECT 列表的第二列这在 SQL Server 里合法但可读性差换成别名更稳妥。UPDATE 和 DELETE 两题都用到了子查询语义差别要分清。把高等数学成绩提高 8%UPDATE SC SET Grade Grade * 1.08 WHERE Cno IN ( SELECT Cno FROM Course WHERE Cname 高等数学 );用子查询先定位课程号再更新成绩是因为 SC 表里只有 Cno 没有 Cname直接 JOIN 更新也行但子查询这种写法更稳。要注意 Grade 的数据类型如果定义成 SMALLINT 整型×1.08 会触发隐式转换得到的是四舍五入后的整数想保留小数成绩建表时就该用 DECIMAL(5,2)。删除选课成绩在 55 分以下的学生记录这题题干说的是学生记录不是选课记录答案写成DELETE FROM Student WHERE Sno IN ( SELECT Sno FROM SC WHERE Grade 55 );如果手一滑写成 DELETE FROM SC删掉的是选课记录成绩没了但学生还在语义完全不一样。我的判断方法很简单题干问删的是学生记录还是选课记录后者直接 DELETE SC 加 WHERE前者才需要子查询把 Sno 捞出来。最后补一个视图题创建 S_AVG 视图统计每个学生的选课门数和平均成绩成绩非空CREATE VIEW S_AVG (Sno, Cno_num, Avg_grade) AS SELECT Sno, COUNT(Cno), AVG(Grade) FROM SC WHERE Grade IS NOT NULL GROUP BY Sno;视图列名必须显式给出因为 COUNT 和 AVG 这类聚合结果没有默认列名。填空题里出现过 WITH CHECK OPTION它保证对视图的增删改都满足视图定义的谓词条件在窗口更新场景里很常用。另外SQL 中表有三种这个填空答案要记全基本表实表、视图虚表、临时表导出表。4. E-R 转关系模型与综合应用五个常见坑的排查清单4.1 三种联系类型与转换原则简答题E-R 模型转换为关系模型的转换原则在这份卷子里出现了三次标准答法分三步每个实体转一个关系模式属性就是实体的全部属性键就是实体的键每个联系也转一个关系模式属性由联系的属性和相关实体的键组成在转换基础上再按联系类型做合并优化。合并规则用一张表就能记清联系类型转换策略关系模式的码1:1并入任意一端实体另一端实体的键作为外键1:N并入 N 端实体1 端实体的键并入 N 端作外键M:N单独生成一个关系模式两端实体的键组合成联合主键为什么 M:N 必须单独建表因为两个实体都是多端任何一方的键都无法单独决定完整联系只能把两端键拼起来。第 17 题直接考了这一点M:N 联系转换出的关系模式码是 M 端实体码与 N 端实体码的组合。很多同学在这题上踩坑是因为把 1:N 的规则错误地推广到了 M:N。4.2 教务管理系统从局部 E-R 图到关系模式的完整走查第三套卷子的综合应用题给了教务场景系管理所有教师和学生教师讲授课程学生选修课程。四个实体分别是系系名、系主任、办公地点、办公电话、教师教师编号、姓名、性别、职务、职称、电话、E-mail、学生学号、姓名、性别、年龄、所学专业、籍贯、课程课程号、课程名、开课学期、所属类别。两个 M:N 联系教师-课程、学生-课程两个 1:N 联系系-教师、系-学生。转换后的关系模式应该是这样五张表关系模式主键外键说明系系名系主任办公地点办公电话系名无教师教师编号姓名性别职务职称电话E-mail系名教师编号系名参照系表学生学号姓名性别年龄所学专业籍贯系名学号系名参照系表课程课程号课程名开课学期所属类别课程号无选修学号课程号成绩学分学号 课程号学号、课程号分别参照学生、课程表教师-课程这个 M:N 联系按 4.1 的规则也应该单独建表比如授课教师编号课程号原答案没列大概是题目只要求了五个关系但设计原则没变。第 19 题的结构冲突考点也长在这块同一个对象在一个局部 E-R 图里是实体、在另一个局部 E-R 图里是属性比如系主任在系里可以作为属性独立建模时可以作为实体这种冲突叫结构冲突和命名冲突同名不同义、同义不同名、属性冲突域、精度不一致并列都是全局 E-R 集成时要处理的问题。顺着这条线再补两个填空考点DFD 数据流图和数据字典是需求分析阶段的工具六个设计阶段依次是需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、运行和维护。E-R 图属于概念结构设计阶段的产出物下一步才进入逻辑结构设计也就是这里讨论的转关系模型。4.3 这份题库里最常见的五个坑第一条DELETE 删错对象。现象题干写删除选课成绩在 55 分以下的学生记录代码写成 DELETE FROM SC WHERE Grade55。原因只看到成绩在 55 分以下就条件反射去删成绩表。解决先圈出操作对象再写 SQL对象是学生记录就必须 DELETE FROM Student用子查询把 Sno 带出来。第二条LIKE pattern 从 PDF 复制后带进空格或下划线断开。现象查询结果为空又不报错。原因PDF 排版把 pattern 里的下划线和空格混在一起比如 DB_%k_ _ 里插入了空格。解决手敲 pattern并先用一条已知数据验证确认 ESCAPE 字符生效后再跑正式查询。第三条GROUP BY 与 SELECT 列不一致或者 HAVING 里写了非聚合列。现象报错列无效或者分组结果明显不对。原因执行顺序没吃透把不该放在 HAVING 里的普通条件放进去了。解决固定走 FROM→WHERE→GROUP BY→HAVING→SELECT→ORDER BY 这条顺序线先划清楚哪些条件必须在分组前过滤。第四条M:N 联系转换时只合并实体、没有独立建表。现象设计出的表数量比预期少。原因把 1:N 的并入 N 端错误推广到 M:N。解决1:1 并入任一端、1:N 并入 N 端、M:N 单独建表遇到 M:N 先问自己两端键组合成联合主键了吗。第五条三层模式的两个映象写反。现象简答题答出模式/内模式映象保证逻辑独立性外模式/模式映象保证物理独立性。原因死记硬背时把两对关系颠倒了。解决外模式/模式映象管的是用户看到的逻辑结构与全局逻辑结构之间的映射所以它保证逻辑独立性模式/内模式映象管的是全局逻辑结构与物理存储结构之间的映射所以它保证物理独立性。抓住外逻辑、内物理就行。事务特性填空也常在这翻车ACID 里原子性、一致性、隔离性、持久性四个词的位置不要记混。5. 把题库用出真题效果三轮自测法与我最后养成的习惯5.1 第一轮不限时全做把蒙对和真会分开拿到这套 PDF 的第一轮我建议把答案遮住不限时把所有题目完整做一遍。关键是标记完全不会的、蒙对的、会但不确定的、确认会的四种状态分开记。蒙对的和完全不会的处理等级一样——蒙对的本质是不会只是运气好。选择题第 8 题、第 12 题这种靠排除法侥幸选对的如果不标记第二轮很容易被忽略。5.2 第二轮只刷错题和蒙对题用讲一遍验证第二轮只碰第一轮标记的两类题。方法是把每个选项为什么对、为什么错讲给自己听尤其是范式判断题和约束对比题。能讲清楚外模式/模式映象保证逻辑独立性和BETWEEN 是闭区间才算过关。卡壳的地方直接回看正文里的表和推导不要跳过。讲解的过程本质是强制检索比反复看答案有效得多。5.3 第三轮限时手写 SQL再誊到环境里执行验证第三轮我一般给自己 100 分钟闭卷T-SQL 综合题和 E-R 转换题全部手写写完再誊到 SQL Server 或者本地的 SQLite 里执行。手写会暴露两个问题一是 SELECT 列表和 GROUP BY 列不一致这类低级错误二是 LIKE 转义符漏写。第一次执行就会报错正好把 4.3 里那五条坑逐一踩一遍踩完就记住了。从那以后我每次拿到一套试题资源都会先遮答案、计时做一遍再对错题做讲一遍复盘最后才归档进资料库。这套流程帮我带新人时少踩了至少一半重复的坑填空题里的 ACID 位置、外模式/内模式映象的顺序基本再没记混过。希望帮到你。本文还有配套的精品资源点击获取