本章目录:
一、节概述
关系数据库
是现代数据库系统中应用最为广泛的一种模型形式,也是软考高级资格考试“系统架构设计师”科目中的重点与高频考查内容。本节内容涵盖了关系数据库的基本术语、关系代数、函数依赖理论、范式设计、事务机制与数据恢复等方面。
这一节既考查对数据库设计理论的理解,又强调实际应用的能力,尤其是在架构设计时如何进行数据建模、事务处理与容灾备份,因此务必熟练掌握。
二、知识详解
1. 关系数据库的基本术语
属性(Attribute)
:表示实体的某一特征,如学生的“学号”“姓名”等。域(Domain)
:属性可能的取值范围,例如“性别”域的取值为{男, 女}。目或度(Degree)
:一个关系中属性的个数。候选码(Candidate Key)
:能唯一标识一个元组的属性或属性组。主码(Primary Key)
:从候选码中选定的一个作为主要标识符。主属性(Prime Attribute)
:包含在候选码中的属性。外码(Foreign Key)
:引用其他关系主码的属性,用于建立关系之间的关联。全码(Super Key)
:所有属性构成的候选码。
📌 注意区分:候选码 ⊃ 主码 ⊃ 主属性;外码 ≠ 主码,但必须参照主码。
2. 关系代数运算
关系代数是查询语言的理论基础,主要包括:
集合运算
:并(∪)、交(∩)、差(−)专用运算
:选择(σ)、投影(π)、连接(⨝)、除法(÷)、重命名(ρ)算术比较运算符
:=、≠、<、≤、>、≥逻辑运算符
:AND、OR、NOT
✏️ 例子说明:
σ_课程号=“DB” (选课)
表示选择“数据库”课程的所有元组。
3. 函数依赖理论
函数依赖描述属性间的约束,是模式规范化的核心。
函数依赖(X→Y)
:若 X 相同时,Y 也相同完全函数依赖
:X 的所有组成都不可缺部分函数依赖
:X 中某一部分即可确定 Y传递依赖
:X→Z,Z→Y 推出 X→Y
🔴 举例说明:
关系(学号,课程号,成绩,系号)
(学号,课程号)→成绩 ✅ 完全依赖
学号→系号 ✅ 部分依赖
学号→系号,系号→系主任 ⇒ 学号→系主任 ✅ 传递依赖
4. Armstrong 公理系统
用于推导函数依赖集合的封闭集,核心推理规则如下:
公理 | 内容 |
---|---|
自反律 | 若 Y⊆X,则 X→Y |
增广律 | 若 X→Y,则 XZ→YZ |
传递律 | 若 X→Y,Y→Z,则 X→Z |
推导规则拓展:
合并规则
:X→Y,X→Z ⇒ X→YZ伪传递规则
:X→Y,WY→Z ⇒ XW→Z分解规则
:X→YZ ⇒ X→Y 且 X→Z
📍 记忆口诀:自增传 → 合伪分
5. 数据库范式设计
数据库设计的目标是消除数据冗余和更新异常,通过规范化处理达到更高范式。
范式 | 定义 | 消除的问题 |
---|---|---|
1NF | 所有属性值为原子值 | 非原子属性 |
2NF | 满足1NF,且非主属性完全依赖主码 | 部分依赖 |
3NF | 满足2NF,且非主属性不传递依赖主码 | 传递依赖 |
BCNF | 每个决定因素是候选码 | 弱主属性决定主属性 |
4NF/5NF | 消除多值和连接依赖 | 高级异常情况 |
🔴 关系:BCNF ⊂ 3NF ⊂ 2NF ⊂ 1NF
6. 事务(Transaction)与 ACID 特性
事务是 DBMS 执行操作的基本单元,具有如下特性(ACID):
特性 | 含义 |
---|---|
原子性(Atomicity) | 要么全部执行,要么全部回滚 |
一致性(Consistency) | 执行前后保持数据库一致 |
隔离性(Isolation) | 并发事务互不影响 |
持久性(Durability) | 提交后永久保留结果 |
🧠 事务是考查重点,尤其与并发控制、恢复机制结合出题频繁。
7. 并发控制与封锁机制
在多用户并发操作时,需要使用封锁机制以避免数据冲突:
排他型封锁(X锁)
:写操作使用,不能共享共享型封锁(S锁)
:读操作使用,可多事务共享
🔐 若事务A加X锁,则事务B不能读也不能写;若A加S锁,B可以读但不能写。
8. 数据库备份与恢复
备份分类:
静态备份
:脱机进行,系统不可用动态备份
:在线进行,不影响系统使用全量备份
:完整备份全部数据增量备份
:仅备份上次之后修改部分
故障类型:
故障类型 | 描述 | 恢复方式 |
---|---|---|
事务故障 | 单个事务失败 | UNDO/REDO |
系统故障 | 系统崩溃 | 日志重放 |
介质故障 | 磁盘损坏 | 备份+日志 |
病毒攻击 | 数据破坏 | 依靠灾备 |
📌 注意:介质故障恢复需要备份+日志双重机制支持。
三、关键点提炼
模块 | 高频考点 |
---|---|
基础术语 | 属性、候选码、外码、主属性 |
函数依赖 | 完全依赖、部分依赖、传递依赖 |
Armstrong 公理 | 自反律、传递律、增广律等 |
范式设计 | 1NF-BCNF 的判断及转换 |
事务机制 | ACID 特性,封锁与并发控制 |
故障与恢复 | 事务故障类型与备份方法 |
四、考试提示
🎯 出题规律
- 术语定义常出现在选择题
- 函数依赖、范式判断常出现在综合题、简答题
- 事务与封锁机制属于实操类应用题,常结合系统场景出题
- Armstrong 公理推理题较为复杂,需掌握推导技巧
⚠️ 常见陷阱
- 将“主属性”和“主码”混淆
- 忽略“部分依赖”与“传递依赖”的边界
- 把“X锁”和“S锁”的作用记反
- 范式从1NF到3NF的定义容易混淆
五、总结与建议
关系数据库
章节内容覆盖面广,难度适中但逻辑性强,需系统梳理并反复练习。
✅ 学习建议:
- 使用“关系模型术语表”记忆各关键概念之间的区别
- 多画依赖图辅助理解函数依赖关系
- 配合实例题掌握范式拆解与重构过程
- 搭配事务案例学习封锁与恢复流程
📌 本节不仅是数据库理论的核心,更是架构设计中数据建模与一致性管理的基础,建议深入理解、加强练习,切忌死记硬背!