ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

数据库系统原理选择题避坑指南:三级模式、关系代数与SQL易错点

2026/10/3 1:04:36 拓冰建站 浏览量
数据库系统原理选择题避坑指南:三级模式、关系代数与SQL易错点 简介这份PDF资料是《数据库系统概论第五版》配套的数据库系统原理复习选择题集面向高校计算机专业学生及备考数据库相关考试的学习者用于梳理基础概念、检验章节掌握程度。资源包共1个PDF文件大小约1.55MB内容按课次作业组织涵盖数据管理技术发展、数据库系统与文件系统区别、数据独立性、三级模式结构、DBMS、E-R图、层次/网状/关系模型等核心考点。题目以单选题为主每题附有正确答案便于自测与快速核对。目前已有140人学习下载适合在期末复习或考研初试阶段作为概念巩固与查漏补缺的练习材料帮助读者在较短时间内覆盖数据库系统原理的主要基础知识点。1. 从一份选择题 PDF 说起数据库系统原理到底该刷什么题很多人复习《数据库系统概论》时第一反应是去翻教材目录从第一章“绪论”开始逐字啃。但真正上过考场的人都清楚这门课的选择题考的不是背诵能力而是对几个核心概念的精确辨析——数据独立性分几级、三级模式里哪个真正存在、关系代数五个基本运算到底包不包括交、SQL 里HAVING和WHERE谁先执行。这些点一旦概念模糊四个选项看起来都对。这份《数据库系统概论第五版》配套的数据库系统原理复习题目选择题PDF就是把这些高频辨析点按课时拆成了七组单选练习第一次课到第七次课覆盖数据管理发展史、三级模式与数据模型、关系模型与码、关系代数运算、专门的关系运算、SQL 概述与建表、SQL 查询语句。每道题都带正确答案适合在看完教材某一章之后立刻做对应课时来验证理解而不是等到考前一周再从头刷。它适合三类人正在跟课、需要课后同步自测的在校生准备期末考试、想快速定位自己概念盲区的人以及跨考或转行、需要把数据库基础理论在短时间内过一遍的从业者。下面我不讲空泛的复习方法直接拆这份题里最容易翻车的几个知识模块把每道题背后的判断逻辑讲透。2. 三级模式与数据独立性选择题里最爱挖的四个坑2.1 数据独立性为什么是数据库系统阶段的标志第一次课第 1 题问“数据独立性最高的是哪个阶段”答案是数据库系统阶段。这道题本身不难但它的干扰项设计很典型文件系统阶段其实已经实现了数据以文件形式独立于程序存储但它的独立性是“物理层面”的——程序通过文件名访问数据数据结构一变程序照样要改。数据库系统阶段之所以独立性最高是因为它在三级模式之间加了两层映像把“逻辑结构变化”和“物理存储变化”对应用程序的影响都隔开了。具体来说外模式/模式映像保证了逻辑独立性当数据库整体逻辑结构模式调整时只要改映像、不改外模式应用程序就不用动。模式/内模式映像保证了物理独立性当存储结构内模式变化时改映像即可逻辑结构不受影响。第二次课第 12 题“要保证数据库的数据独立性需要修改的是”答案正是“三层模式之间的两种映像”而不是去改三层模式本身。这个点如果理解成“改模式”就会选错。注意数据独立性不是“数据不依赖任何东西”而是“应用程序不依赖数据的逻辑结构和物理结构”。做题时看到“物理独立性”就找“应用程序与磁盘数据相对独立”看到“逻辑独立性”就找“应用程序与逻辑结构相对独立”。2.2 三级模式中“真正存在”的为什么是内模式第二次课第 5 题问“数据库三级模式中真正存在的是”答案是内模式。这道题当年我第一遍做也错了因为直觉上会觉得“模式”才是数据库的核心。但仔细想外模式是视图是面向用户的逻辑窗口本质上是虚的模式是全局逻辑结构的描述也是一层抽象定义只有内模式对应磁盘上实际存储的文件组织方式是物理存在的。第 11 题“数据库在磁盘上的基本组织形式是”答案也是“文件”和第 5 题形成呼应。这里还有一个容易混的点第 3 题问“外模式可以有几个”答案是“可以有多个”。因为不同用户、不同应用可以有不同的视图需求。但第 6 题问“模式和内模式”答案是“只能有一个”——一个数据库只有一个全局逻辑结构和一个物理存储结构。把这两道题放在一起记比单独背“外模式多个、模式一个、内模式一个”要牢固得多。2.3 DB、DBS、DBMS 的包含关系怎么记不混第二次课第 8 题考三者关系答案是“DBS 包括 DB 和 DBMS”。这个知识点几乎每次考试都会以某种形式出现。我的记法是DBS数据库系统是一个完整的大系统它包含数据库DB、数据库管理系统DBMS、应用程序和数据库管理员。DBMS 是系统软件负责管理 DBDB 是被管理的数据集合。所以包含关系是 DBS ⊃ DBMS ⊃ DB或者写成 DBS 包括 DB 和 DBMS。第三次课第 4 题换了个问法“什么是位于用户与操作系统之间的一层数据管理软件”答案还是 DBMS。第 2 题问“负责定义数据库内容、决定存储结构和存取策略及安全授权的是谁”答案是数据库管理员DBA不是 DBMS 软件本身。这两道题的区别在于DBMS 是工具DBA 是使用工具的人。考试时如果问“负责……的是”先判断主语是人还是软件。2.4 概念模型与数据模型的层次关系第二次课第 9 题问“表示数据库的概念模型一般使用什么”答案是 E-R 图。第 10 题问“对现实世界进行第二层抽象的模型是什么”答案是结构数据模型在选项中对应“结构数据模型”。这里需要理清三层抽象现实世界是第一层概念模型E-R 图是第二层逻辑/结构数据模型层次、网状、关系是第三层。第 7 题问“层次模型、网状模型和关系模型的划分原则”答案是“数据之间的联系”不是记录长度或文件大小。把这几道题串起来就是一条完整的抽象链条现实世界 → 概念模型E-R 图→ 结构数据模型层次/网状/关系→ 物理存储。选择题喜欢在“第几层抽象”和“用什么图表示”这两个点上做文章复习时把这条链画一遍比死记答案有效。3. 关系模型与关系代数码、完整性和五个基本运算3.1 主码、外码、候选码的判断规则第三次课第 7 题问“关系数据库中的码是指什么”答案是“能惟一标识元组的属性或属性集合”。第 10 题进一步问“关系模型中一个码是”答案是“可以由一个或多个属性组成”。这两道题合起来说明码不一定是单个属性可以是属性组合码的核心作用是唯一标识不是“很重要”或“不可改动”。第 8 题考主码的完整性规则“一个关系中的主码不允许为空”对应实体完整性。第 9 题考外码在 R(R#, RN, S#) 和 S(S#, SN, SD) 中S# 在 R 中称为外码。判断外码的方法很简单看这个属性是不是另一个关系的主码。S# 是 S 的主码出现在 R 中就是外码。第四次课第 6 题也是同样的逻辑学生关系里的“专业号”是专业关系的主码所以它是外码。第四次课第 4 题和第 5 题把完整性约束分得很细主属性不能取空值是实体完整性年龄必须小于 40 岁是用户自定义完整性。参照完整性则是对外码的约束——外码要么为空要么等于被参照关系中某个主码的值。这三类完整性在选择题里经常混在一起考判断口诀是主码非空 → 实体外码引用 → 参照业务规则 → 用户自定义。3.2 关系代数五个基本运算的边界第四次课第 1 题问“关系代数的 5 个基本运算是”答案是“并、差、选择、投影和笛卡尔积”。这里最大的干扰项是“交”和“自然连接”。交不是基本运算它可以由差运算推导出来自然连接也不是基本运算它由笛卡尔积、选择和投影组合而成。第五次课第 1 题换了个角度问“关系数据库管理系统应能实现的专门关系运算包括”答案是“选择、投影、连接”——注意这里问的是“专门的关系运算”不是“基本运算”所以连接可以出现。第五次课第 2 题问“哪个是单目运算”答案是投影。单目运算只需要一个关系作为输入投影和选择都是单目并、差、笛卡尔积是双目。第 3 题问等值连接和自然连接的区别答案是“等值连接的属性个数大于自然连接”。因为自然连接会去掉重复的属性列等值连接不会。第 4 题问自然连接要求两个关系含有什么答案是“一个或多个共有的属性”。3.3 除法运算和笛卡尔积的元组数计算第五次课第 6 题是一道典型的计算题R(A, B, C) 和 S(B, C, D)问 R÷S 结果的属性个数。答案是 1。除法的规则是结果属性 R 的属性减去 S 的属性即 {A, B, C} - {B, C} {A}所以是 1 个属性。第 7 题问 R 和 S 做自然连接后的属性个数答案是 4R 有 3 个属性S 有 3 个属性共有属性 B、C 两个所以 3 3 - 2 4。第 8 题问“关系运算中花费时间可能最长的运算”答案是笛卡尔积。因为笛卡尔积的元组数是两个关系元组数的乘积数据量一大就会爆炸。第 9 题考选择运算的符号表示正确答案是 σf(R)。这里要区分选择用 σsigma投影用 πpi两个符号不要写反。提示关系代数题在选择题里通常不要求写出完整表达式但要求你判断结果属性个数、元组个数或运算类型。把“并差选择投影笛卡尔积”这七个字背熟再记住“交和连接不是基本运算”大部分题都能排除到只剩一个答案。4. SQL 概述与查询语句从建表到分组过滤的易错点4.1 SQL 语言的性质与两种使用方式第六次课第 1 题问“SQL 语言是什么语言”答案是“非过程化”。这意味着你只需要描述“要什么”不需要写“怎么取”。第 2 题问 SQL 是哪种数据库的语言答案是关系数据库。第 3 题问 SQL 具有哪些功能答案是“数据定义、数据操纵、数据控制”——注意没有“关系规范化”规范化是数据库设计阶段的事不是 SQL 的功能。第 4 题问 SQL 的两种使用方式答案是“交互式 SQL 和嵌入式 SQL”。交互式 SQL 是直接在终端或客户端里写查询嵌入式 SQL 是把 SQL 语句嵌到 C、Java 等宿主语言里执行。第 5 题问用户可以直接操作什么答案是“基本表和视图”。视图是虚表但用户可以像查基本表一样查视图所以“可以直接操作”的集合是基本表和视图不是只有基本表。4.2 CREATE TABLE 与插入数据的约束判断第六次课第 6 题给了一个建表语句CREATE TABLE student ( NO CHAR(4) NOT NULL, NAME CHAR(8) NOT NULL, SEX CHAR(2), AGE INT );然后问哪个元组可以插入。答案是(1031, 曾华, NULL, NULL)。判断逻辑是NO 和 NAME 有 NOT NULL 约束所以不能为空SEX 和 AGE 没有 NOT NULL可以为空。选项 A 的 SEX 写的是“男”没有引号在 SQL 里字符串必须加引号选项 C 的 NO 是 NULL违反 NOT NULL选项 D 的 NAME 是 NULL也违反 NOT NULL。只有 B 满足所有约束。这道题考的不是 SQL 语法有多难而是对“空值”和“字符串引号”的敏感度。实际写 SQL 时字符串常量必须用单引号括起来数值常量不用NULL 表示未知不是空字符串也不是 0。这两个点在选择题里反复出现。4.3 SELECT 语句中各子句与关系运算的对应第七次课集中考 SELECT 语句的结构。第 1 题问“对应关系代数中投影运算的语句”答案是 SELECT。因为 SELECT 后面跟的是要保留的属性列正好对应投影。第 3 题问“与选择运算对应的命令动词”答案是 WHERE。WHERE 后面跟的是过滤条件对应选择运算。第 2 题问“实现数据检索的语句”答案是 SELECT。第 4 题问“SELECT 语句执行结果是什么”答案是“表”。即使只查一列结果也是一个表一行一列的表不是单个数据项。第 5 题问“对输出结果排序的语句”答案是 ORDER BY。第 6 题问“对分组情况满足的条件进行判断时使用什么”答案是 HAVING。这里要区分 WHERE 和 HAVINGWHERE 在分组前过滤行HAVING 在分组后过滤组。如果题目说“分组情况满足的条件”一定选 HAVING。第 7 题问“SELECT 语句中使用 * 表示什么”答案是“所有属性列”。这个点虽然简单但和“SELECT * FROM 表”一起记能帮助理解 SELECT 子句的本质是投影运算的列选择。注意SQL 查询题在选择题里很少考复杂嵌套更多是考子句与关系运算的对应关系。把 SELECT→投影、WHERE→选择、ORDER BY→排序、HAVING→分组过滤这四组对应关系记牢第七次课的题基本不会丢分。5. 避坑与排查刷这份选择题时最容易翻车的五个地方5.1 把“交”当成关系代数的基本运算现象看到“五个基本运算”就选包含“交”的选项结果错选 B并、差、交、选择、投影。原因教材在讲关系代数时先讲并、差、交、笛卡尔积再讲选择和投影容易让人误以为交是基本运算。实际上交可以由差运算推导R ∩ S R - (R - S)。解决记住五个基本运算是“并、差、选择、投影、笛卡尔积”交和连接都是导出运算。做题时看到“基本”两个字先排除含“交”和“连接”的选项。5.2 混淆物理独立性和逻辑独立性的定义现象题目问“数据的物理独立性是指什么”选了“应用程序与数据库中数据的逻辑结构相对独立”。原因物理独立性和逻辑独立性的描述只差“物理/逻辑”两个字读题时容易扫一眼就选。解决物理独立性对应“磁盘上的数据”逻辑独立性对应“逻辑结构”。看到“磁盘”“存储”就选物理看到“逻辑结构”“模式”就选逻辑。第二次课第 6 题和第一次课第 6 题都是这个套路。5.3 把“外模式”和“模式”的个数记反现象题目问“外模式有几个”选了“只能有一个”问“模式有几个”选了“可以有多个”。原因外模式和模式的个数规则相反死记容易混。解决用“用户视角”记——外模式面向不同用户用户多所以外模式多模式是全局逻辑结构一个数据库只有一个内模式是物理存储也只有一个。口诀外多、模一、内一。5.4 在 SQL 建表题里忽略字符串引号现象插入元组时选项里的字符串没有加单引号但其他约束都满足犹豫之下选错。原因平时写 SQL 时客户端可能自动处理引号或者用参数化查询时不需要手动加引号导致对“字符串必须加引号”这个规则不敏感。解决做选择题时把每个选项当成裸 SQL 语句来检查。字符串常量必须用单引号数值常量不用NULL 不加引号。第六次课第 6 题的 A 选项就是典型的“字符串没加引号”陷阱。5.5 把 WHERE 和 HAVING 的执行顺序搞反现象题目问“对分组情况满足的条件进行判断时使用什么”选了 WHERE。原因WHERE 和 HAVING 都用于过滤但作用阶段不同。WHERE 在 GROUP BY 之前过滤行HAVING 在 GROUP BY 之后过滤组。解决记住“先 WHERE 后 GROUP BY 再 HAVING”。题目里出现“分组”“组条件”“聚合结果”等词一律选 HAVING出现“行条件”“元组条件”选 WHERE。第七次课第 6 题就是典型的 HAVING 考点。6. 把这份 PDF 用出最大价值我的三遍刷题法和一个验证技巧这份 PDF 的题量不大七次课加起来不到 70 道单选但它的价值不在于“刷完”而在于“刷透”。我自己的习惯是分三遍走每一遍目标不同。第一遍按课时顺序做不查书凭第一反应选。做完对答案把错题和“虽然选对了但其实是蒙的”题目标出来。这一遍的目的是暴露概念盲区不是追求正确率。很多人第一遍就翻书结果把“短期记忆”当成“已掌握”第二遍再做还是错。第二遍只做第一遍标记的题但这次要求自己在每个选项旁边写一句话说明为什么选它或为什么不选它。比如第一次课第 4 题问“下列说法不正确的是”答案是 A“数据库避免了一切数据的重复”。你要能写出“数据库只能减少冗余不能避免一切重复因为冗余有时是性能优化的手段”。写不出来就说明这个点还没过。第三遍把七次课的题按知识点重新归类而不是按课时顺序。比如把所有考“三级模式”的题抽出来放一起把所有考“关系代数运算”的题放一起。这一步能帮你发现哪些知识点反复出现哪些只是偶尔考一次。归类之后你会发现“数据独立性”“三级模式”“关系代数基本运算”“SQL 子句对应关系”这四个点占了选择题的大头。验证自己是否真的掌握我有一个很土但很有效的办法找一张白纸把三级模式的结构画出来标出两层映像和两种独立性然后把关系代数的五个基本运算写出来每个运算配一个简单例子最后把 SELECT 语句的六个子句按执行顺序排一遍。画不出来或者排不对就回到对应课时重新做那几道题。提示这份 PDF 的题目来自《数据库系统概论第五版》的配套练习和第六版的部分章节顺序可能有差异。如果你用的是第六版建议先对照目录确认课时划分再按知识点归类刷不要死守课时顺序。从那以后我每次复习这类理论选择题都强制自己走一遍“错题写原因、知识点归类、白纸画结构”的流程不再只对答案。希望帮到你。本文还有配套的精品资源点击获取