考点精要:规范化理论、函数依赖与范式判定
MOD-05 数据库系统知识考查题号:上午第 50 ~ 53 题 (约 2 ~ 3 分)⭐⭐⭐⭐⭐ 5星必考强贯通下午 (下午题2 必考15分)🎯 45 分及格通关指引(极简避坑与得分铁律)
- 【45分必背核心得分点】:
- 候选码极速分类闭包法(1分钟拿分):
类(只在箭头左侧出现)和 类(左右均未出现):必定是候选码的核心成员; 类(只在箭头右侧出现):绝对不可能出现在任何候选码中; - 直接令种子集
求属性闭包 ,若 (全集),则 为唯一候选码!
- 范式等级终极秒杀口诀:
- 1NF:属性不可再分(基本二维表);
- 2NF:“单键必 2NF”——若候选码仅由单个属性组成,绝无部分函数依赖,必达 2NF;
- 3NF:“无传递依赖”——不存在“非主属性
非主属性”; - BCNF:“左边全为码”——检查每个函数依赖
, 必须全部是候选码。
- Armstrong 公理常用推论:
- 合并规则:
; - 伪传递规则:
。
- 合并规则:
- 候选码极速分类闭包法(1分钟拿分):
- 【高分选读 / 考场可战略放弃点】:
- 4NF 多值依赖复杂严格证明、极小函数依赖集(保持依赖且消除多余左侧属性)的手工 4 步迭代演算,在上午综合知识中耗时与得分收益不成正比,考场死记“4NF 消除非平凡多值依赖”常识概念即可。
一、 核心考纲与概念辨析
1. 三种函数依赖定义与判断
设
| 函数依赖类型 | 符号表达 | 核心特征与通俗定义 | 破坏范式等级 |
|---|---|---|---|
| 完全函数依赖 | 例如: | 规范状态 | |
| 部分函数依赖 | 例如: | 违反 2NF | |
| 传递函数依赖 | 若 例如: | 违反 3NF |
2. Armstrong 公理系统与推论
设关系模式
- 三大基本公理:
- 自反律:若
,则 成立(平凡函数依赖); - 增广律:若
成立,且 ,则 成立; - 传递律:若
且 成立,则 成立。
- 自反律:若
- 三大常用推论:
- 合并规则:若
且 ,则 ; - 分解规则:若
,则 且 ; - 伪传递规则:若
且 ,则 。
- 合并规则:若
3. 主属性与非主属性界定
- 候选码(候选键):能够唯一标识关系中元组的极小属性组(其闭包包含全集
,且自身任何真子集无法决定 ); - 主码(主键):从多个候选码中人为挑选指定的一个作为主键;
- 主属性 (Prime Attribute):包含在任何一个候选码中的属性(若有多个候选码,只要属于其中任意一个候选码,该属性就是主属性!);
- 非主属性 (Non-prime Attribute):不包含在任何候选码中的属性。
二、 分析模型与核心推导演练
1. 候选码图解秒杀求法:L/R/LR/N 属性分类闭包法
面对复杂的函数依赖集
正在渲染架构图表...
标准算法三步:
- 统计属性分类:
:只在依赖集箭头左边出现的属性; :只在依赖集箭头右边出现的属性; :在依赖集箭头左右均未出现的属性; :在依赖集箭头左右两侧均出现过的属性。
- 核心种子集求闭包:
- 令核心种子集
; - 计算
关于 的属性闭包 ; - 若
(覆盖全部属性):则 是该模式唯一的候选码!算法直接终止!
- 令核心种子集
- 组合 LR 属性扩展测试:
- 若
,则依次将 中的单属性加入 中计算闭包; - 能推出全集的极小属性组合即为候选码;若仍不足再尝试加入 2 个 LR 属性。
- 若
2. 关系范式阶梯逐级判定树 (1NF BCNF)
正在渲染架构图表...
范式级别极速秒杀口诀:
- 1NF:属性不可再分;
- 2NF:“单键必 2NF” —— 只要候选码是单个属性,绝不可能存在部分依赖,直接跳过 2NF 检查!
- 3NF:“无传递” —— 不允许非主属性推导非主属性(
中,要么 是候选码,要么 是主属性); - BCNF:“左边全为码” —— 检查每一个函数依赖,箭头左边的决定属性组必须每一个都是候选码!
3. 模式分解的无损连接性与保持函数依赖
将模式
- 两分解无损连接定理:
具有无损连接性的充要条件是: (即公共属性必须能够函数决定其中一个分表的差集属性,即公共属性是其中某个分表的超键)。 - 保持函数依赖:原依赖集
中的每一个依赖,在分解后的各子模式上通过投影依然能够被推导出来。
三、 命题题眼与陷阱防御
🚨 常见命题陷阱盘点
- 主属性的隐蔽性陷阱:
- 若求出候选码有 2 个:
和 。则主属性包含 !即使 在某个候选码中未出现,但只要它在另一个候选码中,它就是主属性!非主属性只有其余未包含的字段。
- 若求出候选码有 2 个:
- 2NF 判定中的复合键前提:
- 试题给出单属性主键(如学号 Sno),并问其最高范式等级。考生如果还在苦苦寻找部分依赖,就是掉入陷阱。单属性主键绝对不可能存在部分函数依赖,必达 2NF!
- 3NF 与 BCNF 的临界区别:
- 3NF 允许依赖
中 是主属性(即使 不是候选码); - 但 BCNF 绝不妥协,只要
不是候选码,哪怕 是主属性也直接破防,跌出 BCNF!
- 3NF 允许依赖
四、 典型真题溯源与逐项排错解析 (Distractor Analysis)
【真题精选 1】(考查闭包求候选码与范式判定 · 2024上-机考回忆-Q50~51)
题干:给定关系模式
(1) A.
B.
C.
D.
(2) A. 1NF
B. 2NF
C. 3NF
D. BCNF
💡 点击展开【正确答案与逐项排错剖析】
- 【正确答案】:(1) B (2) A
- 【核心考点】:属性分类 L/R 闭包求解算法与部分函数依赖导致降级至 1NF。
- 【45分秒杀技巧】:
- 找只在左边出现的属性:
和 属于 L 类,必定在候选码中; - 算闭包
: (因为 ),进而 ,进而 。 覆盖全属性 ,候选码必定是 ,秒杀 (1) 选 B! - 判定范式:候选码是复合键
,但存在依赖 (候选码的子集 决定非主属性 ),这是典型的部分函数依赖,直接破防 2NF,最高只有 1NF,秒杀 (2) 选 A!
- 找只在左边出现的属性:
- 【逐项排错剖析】:
- 第 (1) 题排错:
- B 选项正确:
是能够推出全集 的极小属性组; - A 选项排除:
,无法推出 ; - C、D 选项排除:含有冗余属性,不符合候选码“极小性”定义。
- B 选项正确:
- 第 (2) 题排错:
- A 选项正确:存在非主属性
对码 的部分函数依赖,无法达到 2NF,最高为 1NF; - B、C、D 选项排除:忽视了
破坏 2NF 的致命缺陷。
- A 选项正确:存在非主属性
- 第 (1) 题排错:
【真题精选 2】(考查 Armstrong 公理系统推论 · 2024上-机考回忆-Q52)
题干:设关系模式
A.
B.
C.
D.
💡 点击展开【正确答案与逐项排错剖析】
- 【正确答案】:B
- 【核心考点】:Armstrong 公理系统的增广律与合并规则。
- 【45分秒杀技巧】:
- 由
,根据增广律两边同乘 ,得 (可推出 ); - 已知
且 ,根据合并规则直接得出 。秒选 B!
- 由
- 【逐项排错剖析】:
- B 选项正确:根据增广律由
导出 ,再结合分解与合并规则可严密导出 ; - A 选项排除:
中必须同时有 和 参与,单凭 无法推导 ; - C 选项排除:无法从已知依赖中导出属性
与 的直接确定关系; - D 选项排除:同理,单凭属性
无法独立推导 。
- B 选项正确:根据增广律由
【真题精选 3】(考查传递依赖与范式规范化分解 · 2024下-机考回忆-Q51~52)
题干:设有关系模式
B. 2NF
C. 3NF
D. BCNF
(2) A.
B.
C.
D.
💡 点击展开【正确答案与逐项排错剖析】
- 【正确答案】:(1) B (2) B
- 【核心考点】:“单键必 2NF”原则与消除传递依赖达成 3NF。
- 【45分秒杀技巧】:
- 码为“职工号”(单属性)
“单键必 2NF”,直接排除 1NF; - 存在
(非主属性决定非主属性),属于传递依赖,破坏 3NF,最高只能满足 2NF,秒杀 (1) 选 B! - 分解为 3NF:把部门独立出去
,原表保留部门名作为关联外键 ,秒杀 (2) 选 B!
- 码为“职工号”(单属性)
- 【逐项排错剖析】:
- 第 (1) 题排错:
- B 选项正确:候选码为单属性满足 2NF,但存在非主属性传递依赖破坏 3NF,最高属 2NF;
- A 选项排除:忽视了单属性候选码绝不可能存在部分依赖的定理;
- C、D 选项排除:存在传递依赖绝无法达到 3NF 或更高。
- 第 (2) 题排错:
- B 选项正确:公共属性“部门名”为
的主键,满足无损连接且保持函数依赖,彻底消除了传递依赖; - A 选项排除:原表中彻底丢失了职工与部门的从属关联;
- C、D 选项排除:分解错误,未消除传递依赖或造成信息失真。
- B 选项正确:公共属性“部门名”为
- 第 (1) 题排错:
考点通关与速查导航
- 📖 全科公式速查:上午综合知识高频计算公式与速解模板速查表
- 🚨 全科避坑指南:上午综合知识高频易错避坑清单与秒杀模板库
- 🏠 专题备考导航:上午综合知识备考导航