全国计算机等级考试 - 三级数据库技术 笔记
前言
在备考全国计算机等级考试 - 三级数据库技术时,我发现目前市面上并没有简练的、抓住重点、体系完备的备考资料,本文旨在帮助我复习,同时分享出来,帮助其他人备考。
在我结束考试前,本文随时更新。
YYH
2/9/2026
基础概念
-
候选键:能确定一个值的最少属性的集合
-
属性
-
主属性:在“候选键”中的属性
-
非主属性:不在“候选键中的属性”
-
简单属性:不可再分(如学号)
-
复合属性:可分解为子属性(如地址=省+市+街道)
-
多值属性:一个实体可有多个值(如学生的多个电话号码),用双线椭圆表示
-
派生属性:可由其他属性计算得出(如年龄可由出生日期派生),用虚线椭圆表示
-
-
强实体:独立存在,有独立主键(如学生、课程)
-
弱实体:依赖其他实体存在,主键包含外键(如订单明细)
数据库设计步骤
| 阶段 | 主要任务 | 产出物 |
|---|---|---|
| 1. 需求分析 | 收集用户需求,分析数据流程 | 数据流图(DFD)、数据字典(DD) |
| 2. 概念结构设计 | 构建E-R模型,描述实体关系 | E-R图 |
| 3. 逻辑结构设计 | E-R图→关系模式,规范化处理 | 关系模式、表结构 |
| 4. 物理结构设计 | 确定存储结构、索引、分区 | 物理存储方案 |
| 5. 数据库实施 | 建库、建表、导入数据、编程 | 实际数据库系统 |
| 6. 运行维护 | 性能监控、优化、备份恢复 | 稳定运行的系统 |
| 设计阶段 | 关注重点 | 与三级模式的对应 |
|---|---|---|
| 概念结构设计 | 业务本质 | 独立于具体DBMS |
| 逻辑结构设计 | 数据结构 | 对应模式 |
| 物理结构设计 | 运行效能 | 对应内模式 |
范式
-
1NF
所有属性都是不可分的原子值(属性值不能是集合、数组或重复组) 核心要求:
-
每个单元格只能存一个值
-
不能有多值属性或复合属性
1NF是关系数据库的最低要求,不满足就不是关系模型
-
-
2NF
满足1NF,且每个非主属性完全函数依赖于主键(消除部分依赖) 概念:
- 完全依赖:非主属性依赖整个主键,而非主键的一部分
- 部分依赖:非主属性只依赖主键中的某个属性(仅当主键是复合键时才可能出现)
看到复合主键就要警惕部分依赖!单属性主键自动满足2NF
-
3NF 满足2NF,且不存在非主属性对主键的传递依赖(消除传递依赖) 概念:
- 传递依赖:A → B → C,则 A 传递决定 C
- 要求:非主属性必须直接依赖主键,不能通过其他非主属性传递
要求非主属性之间互不依赖
-
BCNF
满足3NF,且每一个决定因素都是候选键(消除主属性对候选键的部分/传递依赖) 与3NF的区别:
- 3NF:只限制非主属性对主键的依赖
- BCNF:所有属性(包括主属性)都不能对候选键存在部分/传递依赖
| 范式 | 核心要求 | 消除的异常 | 判断技巧 |
|---|---|---|---|
| 1NF | 属性原子性 | 重复组、多值属性 | 看单元格是否只有一个值 |
| 2NF | 消除部分依赖 | 复合主键下的数据冗余 | 看非主属性是否依赖主键的一部分 |
| 3NF | 消除传递依赖 | 非主属性间的依赖冗余 | 看非主属性是否直接依赖主键 |
| BCNF | 决定因素必为候选键 | 主属性间的依赖冗余 | 看所有函数依赖的决定方是否都是候选键 |
例:
非关系模型:
| 学生ID | 学生姓名 | 组合名称 | 班级 | 班主任 | 科目1 | 科目2 | 科目3 |
|---|---|---|---|---|---|---|---|
| 001 | 张三 | 物化生 | 物化生1班 | 王老师 | 物理 | 化学 | 生物 |
| 002 | 李四 | 物化生 | 物化生1班 | 王老师 | 物理 | 化学 | 生物 |
| 003 | 王五 | 物化生 | 物化生2班 | 李老师 | 物理 | 化学 | 生物 |
| 004 | 赵六 | 物化政 | 物化政1班 | 张老师 | 物理 | 化学 | 政治 |
1NF/2NF:
(学生表)
| 学生ID | 学生姓名 | 组合名称 | 班级 | 班主任 |
|---|---|---|---|---|
| 001 | 张三 | 物化生 | 物化生1班 | 王老师 |
| 002 | 李四 | 物化生 | 物化生1班 | 王老师 |
| 003 | 王五 | 物化生 | 物化生2班 | 李老师 |
| 004 | 赵六 | 物化政 | 物化政1班 | 张老师 |
(科目表)
| 组合名称 | 科目 |
|---|---|
| 物化生 | 物理 |
| 物化生 | 化学 |
| 物化生 | 生物 |
| 物化政 | 物理 |
| 物化政 | 化学 |
| 物化政 | 政治 |
单属性主键自动满足2NF
存在传递依赖:学生ID → 班级 → 班主任
3NF/BCNF:
(学生表)
| 学生ID | 学生姓名 | 班级 |
|---|---|---|
| 001 | 张三 | 物化生1班 |
| 002 | 李四 | 物化生1班 |
| 003 | 王五 | 物化生2班 |
| 004 | 赵六 | 物化政1班 |
(班级表)
| 班级 | 组合名称 | 班主任 |
|---|---|---|
| 物化生1班 | 物化生 | 王老师 |
| 物化生2班 | 物化生 | 李老师 |
| 物化政1班 | 物化政 | 张老师 |
(科目表)
| 组合名称 | 科目 |
|---|---|
| 物化生 | 物理 |
| 物化生 | 化学 |
| 物化生 | 生物 |
| 物化政 | 物理 |
| 物化政 | 化学 |
| 物化政 | 政治 |
已经是BCNF(决定因素都是候选键"班级")
三级模式
内模式
也称为存储模式,是数据在数据库内部的表现形式
一个数据库只有一个内模式
一个表可能由多个文件组成
模式
也称作概念模式或逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
一个数据库只有一个模式
定义模式时不仅要定义数据的逻辑结构(如数据记录由哪些数据项构成,数据项的名字、类型、取值范围等),而且要定义与数据有关的安全性、完整性要求,定义这些数据之间的联系
外模式
也称作子模式或用户模式,是数据库用户(包括应用程序员和最终用户)能够看到的
- 一个数据库可以有多个外模式
- 外模式就是用户试图
- 外模式是保证数据安全性的一个有力措施
两级映射
| 映射类型 | 作用 | 保证的独立性 |
|---|---|---|
| 外模式/模式映射 | 将用户视图映射到全局逻辑结构 | 逻辑独立性 |
| 模式/内模式映射 | 将逻辑结构映射到物理存储 | 物理独立性 |
IDEF1X
实体
独立标识符实体/独立实体:强实体
有独立主键,不依赖其他实体存在
从属标识符实体/从属实体:弱实体
主键包含外键,必须依附其他实体
联系
| 联系类型 | 图示特征 | 业务含义 | 示例 |
|---|---|---|---|
| 可标定连接 | 圆角矩形,连线带黑点 | 子实体主键包含父实体主键(强依赖) | 订单明细(主键=订单号+明细号) |
| 非标定连接 | 圆角矩形,连线无黑点 | 子实体主键不包含父实体主键(弱依赖) | 员工-部门(员工有独立工号) |
| 分类联系 | 一实体分多个子类 | 继承关系,子类继承父类属性 | 员工 → 正式工/临时工 |
| 非确定联系 | 菱形连接 | 多对多关系,需分解为关联表 | 学生-课程 |
属性/关键字
| IDEF1X术语 | 对应数据库术语 | 说明 |
|---|---|---|
| 主关键字/主码 | 主键 | 唯一标识实体实例 |
| 次关键字/候选码 | 候选键 | 可作为主键的备选属性 |
| 外来关键字/外来码 | 外键 | 建立实体间联系的属性 |
IDEF0功能描述图示

E-R(实体-关系)图示

| 基数类型 | 符号表示 | 含义 |
|---|---|---|
| 一对一 (1:1) | 1—1 | 一个实体实例对应另一个实体的一个实例(如班长-班级) |
| 一对多 (1:N) | 1—N | 一个实体实例对应多个实例(如班级-学生) |
| 多对多 (M:N) | M—N | 双方都可对应多个实例(如学生-课程) |
INSERT INTO notes (time, edition) VALUES ('2026-02-09', 'First Edition');
T-SQL
单词
从该部分起,应了解一些基础的英文单词。
数据类型
| 英文单词 | 释义 | 说明 |
|---|---|---|
| TABLE | 表 | 数据存储的基本结构 |
| VIEW | 视图 | 虚拟表,基于查询结果 |
| INDEX | 索引 | 加速数据检索的数据结构 |
| COLUMN | 列、字段 | 表中的垂直数据项 |
| ROW | 行、记录 | 表中的水平数据项 |
| PRIMARY | 主要的 | PRIMARY KEY 主键 |
| KEY | 键 | 用于唯一标识或关联数据 |
| FOREIGN | 外来的、外部的 | FOREIGN KEY 外键 |
| REFERENCES | 引用、参考 | 外键约束中指定引用的表 |
| CONSTRAINT | 约束 | 对数据的限制规则 |
| DEFAULT | 默认值 | 未指定值时使用的默认值 |
| UNIQUE | 唯一的 | 确保列值不重复 |
| CHECK | 检查 | 验证数据满足条件 |
| IDENTITY | 标识 | 自动递增的列(SQL Server) |
核心关键字
| 英文单词 | 释义 | 示例/说明 |
|---|---|---|
| SELECT | 选择、查询 | 用于从数据库中检索数据 |
| FROM | 从... | 指定数据来源的表或视图 |
| WHERE | 在哪里、条件 | 用于筛选满足条件的记录 |
| INSERT | 插入 | 向表中添加新数据 |
| UPDATE | 更新 | 修改表中现有数据 |
| DELETE | 删除 | 从表中移除数据 |
| CREATE | 创建 | 创建数据库对象(表、视图等) |
| ALTER | 修改、更改 | 修改现有数据库对象结构 |
| DROP | 删除、丢弃 | 删除数据库对象 |
| JOIN | 连接 | 将多个表的数据关联起来 |
常见操作
| 英文单词 | 释义 | 用法场景 |
|---|---|---|
| INTO | 到...里面 | INSERT INTO 插入到某表 |
| VALUES | 值 | INSERT 语句中指定具体值 |
| SET | 设置 | UPDATE 中指定列的新值 |
| AS | 作为、别名 | 为列或表指定别名 |
| AND | 并且 | 多条件同时满足 |
| OR | 或者 | 多条件满足其一 |
| NOT | 非、不 | 否定条件 |
| NULL | 空值 | 表示缺失或未知的数据 |
| IS | 是 | 常与 NULL 连用 (IS NULL) |
| IN | 在...之中 | 判断值是否在指定集合内 |
| BETWEEN | 在...之间 | 范围查询(包含边界) |
| LIKE | 像、类似 | 模糊匹配查询 |
| EXISTS | 存在 | 判断子查询是否有结果 |
| CASE | 情况、案例 | 条件分支表达式 |
| WHEN | 当...时 | CASE 语句中的条件 |
| THEN | 那么 | CASE 语句中的结果 |
| ELSE | 否则 | CASE 语句中的默认结果 |
| END | 结束 | 结束 CASE 表达式 |
统计
| 英文单词 | 释义 | 功能说明 |
|---|---|---|
| COUNT | 计数 | 统计记录数量 |
| SUM | 求和 | 计算数值列的总和 |
| AVG | 平均值 (Average) | 计算平均值 |
| MAX | 最大值 (Maximum) | 返回最大值 |
| MIN | 最小值 (Minimum) | 返回最小值 |
| GROUP | 分组 | 按指定列对数据进行分组 |
| BY | 通过、按照 | 与 GROUP、ORDER 配合使用 |
| ORDER | 排序 | 对结果集进行排序 |
| ASC | 升序 (Ascending) | 从小到大排序(默认) |
| DESC | 降序 (Descending) | 从大到小排序 |
| HAVING | 有、拥有 | 对分组后的结果进行筛选 |
| DISTINCT | 不同的、唯一的 | 去重,返回唯一值 |
| TOP | 顶部、前N个 | 限制返回的记录数(SQL Server) |
| LIMIT | 限制 | 限制返回数量(MySQL用法,T-SQL用TOP) |
事务
| 英文单词 | 释义 | 功能 |
|---|---|---|
| TRANSACTION | 事务 | 一组作为整体执行的SQL操作 |
| BEGIN | 开始 | 开始事务或代码块 |
| COMMIT | 提交 | 确认并保存事务更改 |
| ROLLBACK | 回滚 | 撤销事务更改 |
| SAVE | 保存 | SAVE TRANSACTION 设置保存点 |
| IF | 如果 | 条件判断 |
| ELSE | 否则 | 条件不成立时执行 |
| WHILE | 当...时候 | 循环语句 |
| BREAK | 中断 | 跳出循环 |
| CONTINUE | 继续 | 跳过当前循环,继续下一次 |
| GOTO | 转到 | 跳转到指定标签 |
| RETURN | 返回 | 从存储过程或函数返回 |
| TRY | 尝试 | 异常处理开始 |
| CATCH | 捕获 | 捕获并处理异常 |
| THROW | 抛出 | 手动引发异常 |
INSERT INTO notes (time, edition) VALUES ('2026-02-10', 'Second Edition');
(´இ皿இ`)
OωO
|´・ω・)ノ