数据库原理 · 速背卡片
数据库原理 · 期末速背
一、关系数据库基础概念 必考·选择判断
1. 关系的三大要素
| 术语 | 说明 |
| 关系(Relation) | 一张二维表,对应一个实体集或联系 |
| 元组(Tuple) | 表中的一行,代表一个实体 |
| 属性(Attribute) | 表中的一列,代表实体的一个特征 |
记忆:关系=表,元组=行,属性=列。关系中行列无序!
2. 关系的基本性质
- 列是同质的(同一列数据类型相同)
- 行的顺序无关紧要
- 列的顺序无关紧要
- 关系中不允许有重复的行
- 关系中列名不可重复
3. 键(Key)相关概念 必考
| 术语 | 定义 | 特点 |
| 候选码 | 能唯一标识一个元组的属性或属性组 | 可能有多个 |
| 主码(主键) | 从候选码中选出的一个 | 唯一且非空 |
| 主属性 | 包含在任一候选码中的属性 | 属于某个候选码 |
| 非主属性 | 不包含在任何候选码中的属性 | 不属于任何候选码 |
| 外码(外键) | 本关系的属性,参照另一个关系的主码 | 要么为空,要么等于被参照表的主码值 |
易错:主属性≠主码中的属性!主属性=属于任一候选码的属性。一个关系有多个候选码时,主属性的范围更广。
4. 关系模式的表示
R(U, D, DOM, F)
- R = 关系名
- U = 属性名集合
- D = 属性域(取值范围)
- DOM = 属性到域的映射
- F = 属性间的数据依赖
简记:R(属性1, 属性2, ...)
二、关系完整性约束 必考·选择判断填空
| 类型 | 定义 | 要求 |
| 实体完整性 | 保证每个实体唯一可识别 | 主码唯一且非空 |
| 参照完整性 | 维护表之间的关联关系 | 外码值要么为空,要么等于被参照表的主码值 |
| 用户定义完整性 | 针对具体应用场景的约束 | 由用户根据业务需求灵活定义(如性别只能是男/女、订单日期不能早于当前日期) |
易错:关系完整性约束包含三种(实体、参照、用户定义),不包括"域完整性"(那是SQL层面的说法)。用户定义完整性由数据库管理员定义,不是系统自动提供的。
三、关系代数与SQL 重点·简答
关系代数运算符
| 运算 | 符号 | 说明 |
| 选择 | σ条件(R) | 选取符合条件的行 |
| 投影 | π属性(R) | 选取指定列 |
| 连接 | R ⋈ S | 按条件连接两表 |
| 除 | R ÷ S | 找出R中与S所有值匹配的元组 |
| 并/交/差 | ∪ / ∩ / - | 集合运算,要求相容 |
SQL 查询模板
SELECT [DISTINCT] 列名
FROM 表名
[WHERE 条件]
[GROUP BY 列名 [HAVING 条件]]
[ORDER BY 列名 [ASC|DESC]]
聚合函数
COUNT()、SUM()、AVG()、MAX()、MIN()
四、函数依赖与范式 必考·简答计算
1. 函数依赖类型
| 类型 | 定义 |
| 平凡函数依赖 | Y ⊆ X 时,X→Y |
| 非平凡函数依赖 | Y ⊄ X 时,X→Y |
| 完全函数依赖 | X→Y,且X的任何真子集都不能决定Y |
| 部分函数依赖 | X→Y,但X的某个真子集也能决定Y(只有X是组合键时才会出现) |
| 传递函数依赖 | X→Y,Y→Z,且Y⊄X,Y↛X,则X→Z是传递依赖 |
记忆:完全=不能少任何一个,部分=有冗余属性,传递=中间有桥。
2. 范式层级 必考
| 范式 | 要求 | 解决的问题 |
| 1NF | 属性不可再分(原子性) | 基本要求 |
| 2NF | 1NF + 非主属性完全函数依赖于候选码 | 消除部分依赖 |
| 3NF | 2NF + 非主属性不传递依赖于候选码 | 消除传递依赖 |
| BCNF | 3NF + 每个决定因素都包含候选码 | 消除主属性间的部分/传递依赖 |
范式递进:1NF(原子性) → 2NF(消除部分依赖) → 3NF(消除传递依赖) → BCNF(所有决定因素都是候选码)。
3. 属性闭包计算 必考·计算
步骤:从属性集X出发→找X能直接决定的属性→加入X→重复直到不再变化。
例:F={A→B, B→C},求A⁺=ABC
4. 模式分解
目标:分解到3NF或BCNF,同时保持无损连接和函数依赖。
五、数据库设计 重点·综合
ER图要素
| 要素 | 表示 | 说明 |
| 实体 | 矩形 | 现实世界中的对象 |
| 属性 | 椭圆 | 实体的特征 |
| 联系 | 菱形 | 实体之间的关系 |
| 联系类型 | 1:1 / 1:N / M:N | 写在连线旁 |
ER图→关系模式转换
- 1:1 → 可合并到任一方,加对方主码作外码
- 1:N → 外码放在N方
- M:N → 新建关系,包含两方主码+联系属性
考前速记 · 易错30条
- 关系=表,元组=行,属性=列
- 关系中列名不可重复,行不可重复
- 候选码可能有多个,主码只有一个
- 主属性 ∈ 任一候选码,非主属性 ∉ 任何候选码
- 实体完整性:主码唯一且非空
- 参照完整性:外码 = 空 OR = 被参照表主码值
- 完整性约束三种:实体、参照、用户定义
- 平凡依赖:Y ⊆ X
- 部分依赖:X是组合键,真子集也能决定Y
- 传递依赖:X→Y→Z,且Y⊄X
- 2NF:消除非主属性的部分依赖
- 3NF:消除非主属性的传递依赖
- BCNF:消除所有非平凡函数依赖中决定因素不是候选码的情况
- 范式越高,冗余越少,但表越多
- 闭包:逐步扩展直到不变
- 1:1 → 可合并;1:N → 外码放N方;M:N → 新建表
- ER图:实体=矩形,属性=椭圆,联系=菱形
- SQL:SELECT-FROM-WHERE-GROUP-HAVING-ORDER
- 投影 = SELECT列,选择 = WHERE行
- 自然连接 = 同名等值连接+去重列
- 外连接保留悬浮元组(LEFT/RIGHT/FULL)
- COUNT(*) 含NULL,COUNT(列) 不含NULL
- HAVING 对分组过滤,WHERE 对行过滤
- %匹配任意字符序列,_匹配单个字符
- 主码不能为空,候选码也不能为空
- 外码可以为空
- 关系中行列无序
- 关系模式是型,关系是值(实例)
- 分解需保持无损连接和函数依赖
- 数据冗余→插入异常、删除异常、更新异常