【数据库系统概论期末复习】第六章 关系数据库理论重点与常考题整理
2026/6/4 9:09:37 网站建设 项目流程

【数据库系统概论期末复习】第六章 关系数据库理论重点与常考题整理

适用教材:《数据库系统概论》第 6 版,王珊
适用场景:大学数据库期末复习、选择题、判断题、填空题、简答题、范式判断题、函数依赖题、模式分解题
本章关键词:函数依赖、码、候选码、主码、外码、范式、1NF、2NF、3NF、BCNF、部分函数依赖、完全函数依赖、传递函数依赖、无损连接、保持函数依赖


一、第六章考试重点总览

第六章是数据库期末考试中的重点和难点,主要考查关系模式是否设计合理,以及如何进行规范化。

期末常考内容:

1. 关系模式中的问题 2. 函数依赖 3. 平凡函数依赖和非平凡函数依赖 4. 完全函数依赖和部分函数依赖 5. 传递函数依赖 6. 码、候选码、主码、主属性、非主属性 7. 第一范式 1NF 8. 第二范式 2NF 9. 第三范式 3NF 10. BCNF 11. 多值依赖和第四范式 4NF 12. 关系模式规范化 13. 模式分解 14. 无损连接性 15. 保持函数依赖 16. 常见选择题、判断题、填空题、简答题、计算题

二、为什么需要关系数据库理论

如果关系模式设计不好,会产生很多问题。

常见问题:

1. 数据冗余 2. 更新异常 3. 插入异常 4. 删除异常

1. 数据冗余

同一信息被重复存储多次。

例如关系模式:

SC(Sno, Sname, Smajor, Cno, Cname, Grade)

如果一个学生选多门课,那么该学生的姓名和专业会重复出现多次。


2. 更新异常

由于数据重复存储,修改时需要修改多处,否则会造成数据不一致。

例:

如果学生 20180001 的专业发生变化,需要修改该学生所有选课记录中的 Smajor。 如果漏改某一行,就会产生数据不一致。

3. 插入异常

某些数据因为缺少其他数据而无法插入。

例:

如果某门新课程还没有学生选修,在 SC(Sno, Sname, Smajor, Cno, Cname, Grade) 中就可能无法单独插入课程信息。

4. 删除异常

删除某些数据时,可能把不该删除的信息也删除了。

例:

如果某个学生只选了一门课,删除该学生的选课记录时,可能把该学生基本信息也删除了。

三、函数依赖

函数依赖是第六章的核心概念。

1. 函数依赖的定义

设有关系模式:

R(U)

其中 U 是属性集合,X 和 Y 是 U 的子集。

如果对于 R 的任意一个可能关系 r,r 中不可能存在两个元组在 X 上属性值相等,而在 Y 上属性值不等,则称:

X 函数确定 Y

记作:

X → Y

也称:

Y 函数依赖于 X

通俗理解:

如果知道 X 的值,就能唯一确定 Y 的值,那么 X → Y。

2. 函数依赖例子

以学生表:

Student(Sno, Sname, Sex, Birthday, Smajor)

因为一个学号唯一对应一个学生,所以:

Sno → Sname Sno → Sex Sno → Birthday Sno → Smajor

可以合写为:

Sno → Sname, Sex, Birthday, Smajor

以课程表:

Course(Cno, Cname, Credit, Cpno)

因为一个课程号唯一对应一门课程,所以:

Cno → Cname, Credit, Cpno

以选课表:

SC(Sno, Cno, Grade, Semester, Teachingclass)

如果一个学生一门课只有一个成绩,则:

(Sno, Cno) → Grade

如果一个课程号可以唯一确定课程名和学分,则:

Cno → Cname, Credit

四、平凡函数依赖与非平凡函数依赖

1. 平凡函数依赖

如果:

Y ⊆ X

则:

X → Y

称为平凡函数依赖。

例:

(Sno, Cno) → Sno (Sno, Cno) → Cno

因为 Sno 和 Cno 本来就是(Sno, Cno)的一部分。


2. 非平凡函数依赖

如果:

Y ⊄ X

则:

X → Y

称为非平凡函数依赖。

例:

Sno → Sname Cno → Cname (Sno, Cno) → Grade

考试一般主要关注非平凡函数依赖。


五、完全函数依赖与部分函数依赖

1. 完全函数依赖

如果:

X → Y

并且 X 的任何真子集都不能确定 Y,则称 Y 完全函数依赖于 X。

记作:

X →f Y

例:

(Sno, Cno) → Grade

如果仅知道 Sno 不能确定 Grade,仅知道 Cno 也不能确定 Grade,必须同时知道 Sno 和 Cno 才能确定 Grade,则 Grade 完全函数依赖于(Sno, Cno)


2. 部分函数依赖

如果:

X → Y

但 X 的某个真子集也能确定 Y,则称 Y 部分函数依赖于 X。

记作:

X →p Y

例:

关系模式:

R(Sno, Cno, Sname, Cname, Grade)

候选码是:

(Sno, Cno)

函数依赖:

Sno → Sname Cno → Cname (Sno, Cno) → Grade

因为:

(Sno, Cno) → Sname

但实际上:

Sno → Sname

所以 Sname 部分函数依赖于(Sno, Cno)

同理:

Cname 部分函数依赖于 (Sno, Cno)

六、传递函数依赖

如果:

X → Y Y → Z Y 不决定 X Z 不属于 Y

则称:

Z 传递函数依赖于 X

记作:

X → Z

是通过 Y 传递得到的。

例:

关系模式:

Student(Sno, Sdept, Mname)

含义:

Sno:学号 Sdept:所在系 Mname:系主任

函数依赖:

Sno → Sdept Sdept → Mname

因此:

Sno → Mname

是传递函数依赖。

问题:

系主任信息会随每个学生重复存储,产生冗余和更新异常。

七、码、候选码、主码、主属性、非主属性

1. 超码

如果属性集 K 能唯一标识关系中的元组,则 K 称为超码。

例:

Student 中 Sno 是超码。 (Sno, Sname) 也是超码。

2. 候选码

如果 K 是超码,并且 K 的任何真子集都不是超码,则 K 是候选码。

通俗理解:

候选码是最小的超码。

例:

Student 中 Sno 是候选码。 (Sno, Sname) 不是候选码,因为 Sno 已经能唯一标识学生。

3. 主码

如果一个关系有多个候选码,可以选择其中一个作为主码。

主码 = 被选中的候选码

4. 主属性

包含在任一候选码中的属性称为主属性。


5. 非主属性

不包含在任何候选码中的属性称为非主属性。


6. 例子

关系模式:

R(Sno, Cno, Sname, Cname, Grade)

函数依赖:

Sno → Sname Cno → Cname (Sno, Cno) → Grade

候选码:

(Sno, Cno)

主属性:

Sno, Cno

非主属性:

Sname, Cname, Grade

八、范式概述

范式是衡量关系模式规范化程度的标准。

常见范式:

1NF 2NF 3NF BCNF 4NF

范式级别关系:

4NF ⊂ BCNF ⊂ 3NF ⊂ 2NF ⊂ 1NF

也就是说:

满足 4NF 一定满足 BCNF 满足 BCNF 一定满足 3NF 满足 3NF 一定满足 2NF 满足 2NF 一定满足 1NF

九、第一范式 1NF

1. 定义

如果一个关系模式 R 的所有属性都是不可分的基本数据项,则 R 属于第一范式。

记作:

R ∈ 1NF

通俗理解:

表中每个属性值都必须是原子的,不能再分。

2. 不满足 1NF 的例子

Student(Sno, Sname, Phone)

如果 Phone 中存储多个电话:

138xxxx, 139xxxx

则 Phone 不是原子值,不满足 1NF。


3. 满足 1NF 的改法

拆成:

Student(Sno, Sname) StudentPhone(Sno, Phone)

每个 Phone 只存一个电话号码。


十、第二范式 2NF

1. 定义

如果关系模式 R 属于 1NF,并且每个非主属性都完全函数依赖于任一候选码,则 R 属于第二范式。

记作:

R ∈ 2NF

通俗理解:

在 1NF 的基础上,消除非主属性对候选码的部分函数依赖。

2. 不满足 2NF 的例子

关系模式:

R(Sno, Cno, Sname, Cname, Grade)

函数依赖:

Sno → Sname Cno → Cname (Sno, Cno) → Grade

候选码:

(Sno, Cno)

非主属性:

Sname, Cname, Grade

问题:

Sname 只依赖 Sno,不依赖整个候选码 (Sno, Cno) Cname 只依赖 Cno,不依赖整个候选码 (Sno, Cno)

所以:

Sname、Cname 对候选码存在部分函数依赖

因此:

R 不属于 2NF

3. 分解到 2NF

将 R 分解为:

Student(Sno, Sname) Course(Cno, Cname) SC(Sno, Cno, Grade)

这样:

Student 中 Sno → Sname Course 中 Cno → Cname SC 中 (Sno, Cno) → Grade

消除了部分函数依赖。


十一、第三范式 3NF

1. 定义

如果关系模式 R 属于 2NF,并且每个非主属性都不传递函数依赖于任何候选码,则 R 属于第三范式。

记作:

R ∈ 3NF

通俗理解:

在 2NF 的基础上,消除非主属性对候选码的传递函数依赖。

2. 不满足 3NF 的例子

关系模式:

Student(Sno, Sname, Sdept, Mname)

函数依赖:

Sno → Sname, Sdept Sdept → Mname

候选码:

Sno

非主属性:

Sname, Sdept, Mname

因为:

Sno → Sdept Sdept → Mname

所以:

Mname 传递函数依赖于 Sno

因此:

Student 不属于 3NF

3. 分解到 3NF

分解为:

Student(Sno, Sname, Sdept) Dept(Sdept, Mname)

这样消除了传递函数依赖。


十二、BCNF

1. 定义

如果关系模式 R 中每一个非平凡函数依赖:

X → Y

的左部 X 都包含候选码,则 R 属于 BCNF。

记作:

R ∈ BCNF

通俗理解:

每一个决定因素都必须是候选码或超码。

2. 3NF 和 BCNF 的区别

3NF 条件相对宽松:

对于每个非平凡函数依赖 X → A: X 是超码,或者 A 是主属性。

BCNF 条件更严格:

对于每个非平凡函数依赖 X → Y: X 必须是超码。

所以:

BCNF 一定是 3NF,但 3NF 不一定是 BCNF。

3. 不满足 BCNF 但满足 3NF 的例子

关系模式:

R(S, C, T)

含义:

S:学生 C:课程 T:教师

函数依赖:

(S, C) → T T → C

候选码:

(S, C) (S, T)

主属性:

S, C, T

分析:

T → C 中,T 不是超码,但 C 是主属性。

所以:

R 满足 3NF,但不满足 BCNF。

原因:

BCNF 要求每个决定因素都必须是超码。 T 不是超码,所以不满足 BCNF。

十三、第四范式 4NF 简介

第四范式主要处理多值依赖。

1. 多值依赖

如果一个属性集合 X 的值可以决定 Y 的一组值,且这组值与其他属性无关,则称存在多值依赖。

记作:

X →→ Y

2. 4NF 定义

如果关系模式 R 属于 BCNF,并且不存在非平凡且非函数依赖的多值依赖,则 R 属于 4NF。

考试中通常了解即可,重点仍然是:

1NF 2NF 3NF BCNF

十四、规范化过程总结

规范化通常是逐步消除不良依赖。

1NF:属性不可再分 2NF:消除部分函数依赖 3NF:消除传递函数依赖 BCNF:每个决定因素都是候选码 4NF:消除非平凡多值依赖

十五、模式分解

当关系模式存在冗余和异常时,可以通过分解关系模式来改进设计。

分解时应尽量满足:

1. 无损连接性 2. 保持函数依赖

1. 无损连接性

无损连接是指:

分解后的关系通过自然连接可以恢复原关系,不会产生多余元组,也不会丢失信息。

通俗理解:

分解以后还能无误地拼回去。

2. 保持函数依赖

保持函数依赖是指:

原关系模式中的函数依赖可以在分解后的各个关系模式中直接检查,而不需要连接后再检查。

通俗理解:

原来的约束分解后仍然方便检查。

3. 分解的两个目标

无损连接:保证数据不丢、不多。 保持依赖:保证约束容易检查。

注意:

有时分解到 BCNF 可能无法同时保持函数依赖。 分解到 3NF 通常可以做到既无损连接又保持函数依赖。

十六、基于三张表的规范化分析

已知三张表:

Student(Sno, Sname, Sex, Birthday, Smajor) Course(Cno, Cname, Credit, Cpno) SC(Sno, Cno, Grade, Semester, Teachingclass)

1. Student 表

函数依赖:

Sno → Sname, Sex, Birthday, Smajor

候选码:

Sno

分析:

所有非主属性都完全依赖于 Sno。 不存在部分函数依赖。 不存在传递函数依赖。 Sno 是决定因素,也是候选码。

结论:

Student 通常满足 BCNF。

2. Course 表

函数依赖:

Cno → Cname, Credit, Cpno

候选码:

Cno

分析:

所有非主属性都完全依赖于 Cno。 Cno 是决定因素,也是候选码。

结论:

Course 通常满足 BCNF。

注意:

Cpno 是先修课号,参照 Course(Cno),这是参照完整性,不影响 Cno 作为候选码。

3. SC 表

关系模式:

SC(Sno, Cno, Grade, Semester, Teachingclass)

常见函数依赖:

(Sno, Cno) → Grade

如果一个学生一门课只有一个成绩,则:

(Sno, Cno) 是候选码

如果同一门课程在同一学期有多个教学班,可能还存在:

(Cno, Semester, Teachingclass) → 教师

但当前表中没有教师属性,因此不考虑。

在给定属性下,若只有:

(Sno, Cno) → Grade, Semester, Teachingclass

则:

SC 通常满足 BCNF。

但如果认为:

Cno → Semester

或:

Teachingclass → Cno, Semester

则需要根据题目给出的函数依赖重新判断。

考试提醒:

范式题一定以题目给出的函数依赖为准,不要自己随便假设。

十七、常见范式判断方法

1. 判断是否满足 1NF

看:

每个属性是否不可再分。

如果存在多个值放在一个字段中,则不满足 1NF。


2. 判断是否满足 2NF

步骤:

1. 先找候选码。 2. 找非主属性。 3. 看非主属性是否部分依赖于候选码。

如果存在部分依赖:

不满足 2NF。

常见情况:

候选码是组合属性时,才容易出现部分函数依赖。

如果候选码是单属性:

通常不会存在部分函数依赖。

3. 判断是否满足 3NF

步骤:

1. 先判断是否满足 2NF。 2. 看是否存在非主属性对候选码的传递依赖。

如果存在传递依赖:

不满足 3NF。

4. 判断是否满足 BCNF

步骤:

检查每一个非平凡函数依赖 X → Y。 如果每个 X 都是超码,则满足 BCNF。 只要有一个 X 不是超码,就不满足 BCNF。

十八、第六章常考选择题

1. 函数依赖 X → Y 表示( )

A. X 的值由 Y 唯一确定
B. Y 的值由 X 唯一确定
C. X 和 Y 没有关系
D. X 和 Y 必须相等

答案:B


2. 如果 Y 是 X 的子集,则 X → Y 是( )

A. 非平凡函数依赖
B. 平凡函数依赖
C. 完全函数依赖
D. 传递函数依赖

答案:B


3. 第二范式是在第一范式基础上消除( )

A. 传递函数依赖
B. 部分函数依赖
C. 多值依赖
D. 平凡函数依赖

答案:B


4. 第三范式是在第二范式基础上消除( )

A. 部分函数依赖
B. 传递函数依赖
C. 多值依赖
D. 外键依赖

答案:B


5. BCNF 要求每个非平凡函数依赖的决定因素必须是( )

A. 外键
B. 非主属性
C. 候选码或超码
D. 普通属性

答案:C


6. 下列哪个范式级别最高?( )

A. 1NF
B. 2NF
C. 3NF
D. BCNF

答案:D


7. 关系模式分解时,最重要的两个性质是( )

A. 安全性和完整性
B. 无损连接性和保持函数依赖
C. 共享性和独立性
D. 查询和更新

答案:B


8. 候选码是( )

A. 任意能唯一标识元组的属性组
B. 最小的超码
C. 外键
D. 非主属性

答案:B


9. 包含在任一候选码中的属性称为( )

A. 非主属性
B. 主属性
C. 外属性
D. 普通属性

答案:B


10. 不包含在任何候选码中的属性称为( )

A. 主属性
B. 非主属性
C. 候选属性
D. 码属性

答案:B


十九、第六章常考判断题

1. 函数依赖 X → Y 表示 X 的值可以唯一确定 Y 的值。

答案:对


2. 如果 Y 是 X 的子集,则 X → Y 是非平凡函数依赖。

答案:错

解析:

如果 Y ⊆ X,则 X → Y 是平凡函数依赖。

3. 候选码是最小的超码。

答案:对


4. 一个关系模式只能有一个候选码。

答案:错

解析:

一个关系模式可以有多个候选码。

5. 主码一定是候选码。

答案:对


6. 主属性是包含在任一候选码中的属性。

答案:对


7. 第二范式消除的是非主属性对候选码的部分函数依赖。

答案:对


8. 第三范式消除的是非主属性对候选码的传递函数依赖。

答案:对


9. BCNF 一定满足 3NF。

答案:对


10. 3NF 一定满足 BCNF。

答案:错

解析:

BCNF 比 3NF 更严格,3NF 不一定满足 BCNF。

11. 无损连接分解是指分解后的关系自然连接可以恢复原关系。

答案:对


12. 分解到 BCNF 一定能保持函数依赖。

答案:错

解析:

BCNF 分解可能不保持函数依赖。

13. 分解到 3NF 通常可以做到无损连接且保持函数依赖。

答案:对


二十、第六章常考填空题

1. 如果 X 的值能够唯一确定 Y 的值,则称 Y ________ 于 X。

答案:

函数依赖

2. 函数依赖 X → Y 中,X 称为 ________。

答案:

决定因素

3. 如果 Y ⊆ X,则 X → Y 称为 ________ 函数依赖。

答案:

平凡

4. 如果 X → Y,且 X 的任何真子集都不能确定 Y,则称 Y ________ 函数依赖于 X。

答案:

完全

5. 如果 X → Y,但 X 的某个真子集也能确定 Y,则称 Y ________ 函数依赖于 X。

答案:

部分

6. 第二范式消除的是非主属性对候选码的 ________ 函数依赖。

答案:

部分

7. 第三范式消除的是非主属性对候选码的 ________ 函数依赖。

答案:

传递

8. BCNF 要求每个非平凡函数依赖的左部都是 ________。

答案:

超码

9. 最小的超码称为 ________。

答案:

候选码

10. 包含在任一候选码中的属性称为 ________。

答案:

主属性

11. 不包含在任何候选码中的属性称为 ________。

答案:

非主属性

12. 关系模式分解的两个重要性质是无损连接性和 ________。

答案:

保持函数依赖

二十一、第六章常考简答题

1. 什么是函数依赖?

答案:

设关系模式 R(U),X 和 Y 是 U 的子集。 如果对于 R 的任意一个可能关系 r,r 中任意两个元组在 X 上的属性值相等,则它们在 Y 上的属性值也相等,则称 X 函数确定 Y,或 Y 函数依赖于 X,记作 X → Y。

2. 什么是完全函数依赖和部分函数依赖?

答案:

如果 X → Y,并且 X 的任何真子集都不能确定 Y,则称 Y 完全函数依赖于 X。 如果 X → Y,但 X 的某个真子集也能确定 Y,则称 Y 部分函数依赖于 X。

3. 什么是传递函数依赖?

答案:

如果 X → Y,Y → Z,且 Y 不决定 X,Z 不属于 Y,则称 Z 传递函数依赖于 X。

4. 什么是候选码、主码、主属性和非主属性?

答案:

候选码是能够唯一标识关系中元组的最小属性组,也就是最小超码。 如果一个关系有多个候选码,可以选择其中一个作为主码。 包含在任一候选码中的属性称为主属性。 不包含在任何候选码中的属性称为非主属性。

5. 简述 1NF、2NF、3NF 和 BCNF。

答案:

1NF:关系中每个属性都是不可再分的基本数据项。 2NF:在 1NF 基础上,每个非主属性都完全函数依赖于任一候选码,即消除部分函数依赖。 3NF:在 2NF 基础上,每个非主属性都不传递函数依赖于任何候选码,即消除传递函数依赖。 BCNF:每个非平凡函数依赖 X → Y 的左部 X 都必须是超码。

6. 简述关系模式分解应满足的两个性质。

答案:

关系模式分解应尽量满足无损连接性和保持函数依赖。 无损连接性是指分解后的关系通过自然连接可以恢复原关系,不丢失信息,也不产生多余元组。 保持函数依赖是指原关系模式中的函数依赖可以在分解后的关系模式中直接检查,而不需要连接后再检查。

二十二、第六章常考计算题

题 1:判断范式并分解

已知关系模式:

R(Sno, Cno, Sname, Cname, Grade)

函数依赖:

Sno → Sname Cno → Cname (Sno, Cno) → Grade

问:

1. R 的候选码是什么? 2. R 是否满足 2NF? 3. 如果不满足,如何分解?

答案:

候选码:

(Sno, Cno)

主属性:

Sno, Cno

非主属性:

Sname, Cname, Grade

分析:

Sname 只依赖 Sno,Cname 只依赖 Cno。 因此存在非主属性对候选码 (Sno, Cno) 的部分函数依赖。

结论:

R 不满足 2NF。

分解为:

R1(Sno, Sname) R2(Cno, Cname) R3(Sno, Cno, Grade)

题 2:判断是否满足 3NF

已知关系模式:

R(Sno, Sname, Sdept, Mname)

函数依赖:

Sno → Sname, Sdept Sdept → Mname

问:

1. R 的候选码是什么? 2. R 是否满足 3NF? 3. 如果不满足,如何分解?

答案:

候选码:

Sno

分析:

Sno → Sdept Sdept → Mname 因此 Mname 传递函数依赖于 Sno。

结论:

R 不满足 3NF。

分解为:

R1(Sno, Sname, Sdept) R2(Sdept, Mname)

题 3:判断是否满足 BCNF

已知关系模式:

R(S, C, T)

函数依赖:

(S, C) → T T → C

问:

1. R 的候选码有哪些? 2. R 是否满足 3NF? 3. R 是否满足 BCNF?

答案:

候选码:

(S, C) (S, T)

主属性:

S, C, T

分析:

对于 (S, C) → T,(S, C) 是候选码。 对于 T → C,T 不是候选码,也不是超码。 但是 C 是主属性。

结论:

R 满足 3NF,但不满足 BCNF。

原因:

BCNF 要求每一个非平凡函数依赖的决定因素都必须是超码。 T → C 中 T 不是超码,因此不满足 BCNF。

题 4:判断 Student 表范式

关系模式:

Student(Sno, Sname, Sex, Birthday, Smajor)

函数依赖:

Sno → Sname, Sex, Birthday, Smajor

问:

Student 满足什么范式?

答案:

候选码:

Sno

分析:

所有非主属性都完全依赖于 Sno。 不存在部分函数依赖。 不存在传递函数依赖。 每个非平凡函数依赖的左部 Sno 是候选码。

结论:

Student 满足 BCNF。

题 5:判断 Course 表范式

关系模式:

Course(Cno, Cname, Credit, Cpno)

函数依赖:

Cno → Cname, Credit, Cpno

问:

Course 满足什么范式?

答案:

候选码:

Cno

分析:

所有非主属性都完全依赖于 Cno。 不存在部分依赖和传递依赖。 每个非平凡函数依赖的左部 Cno 是候选码。

结论:

Course 满足 BCNF。

二十三、第六章高频易错点

1. 候选码和超码混淆

超码:能唯一标识元组的属性集。 候选码:最小的超码。

例:

Sno 是候选码。 (Sno, Sname) 是超码,但不是候选码。

2. 主属性和非主属性混淆

主属性:包含在任一候选码中的属性。 非主属性:不包含在任何候选码中的属性。

3. 2NF 和 3NF 混淆

2NF 消除部分函数依赖。 3NF 消除传递函数依赖。

4. 3NF 和 BCNF 混淆

BCNF 比 3NF 更严格。 BCNF 要求每个决定因素都是超码。 3NF 允许某些右部为主属性的依赖存在。

5. 组合码才容易出现部分依赖

如果候选码是单属性:

通常不会出现部分函数依赖。

如果候选码是组合属性:

要重点检查部分函数依赖。

6. 范式判断必须先找候选码

范式判断步骤:

1. 找函数依赖。 2. 找候选码。 3. 找主属性和非主属性。 4. 判断部分依赖。 5. 判断传递依赖。 6. 判断决定因素是否都是超码。

二十四、考前必背

1. 函数依赖: X → Y 表示 X 的值可以唯一确定 Y 的值。 2. 平凡函数依赖: 如果 Y ⊆ X,则 X → Y 是平凡函数依赖。 3. 完全函数依赖: X → Y,且 X 的任何真子集都不能确定 Y。 4. 部分函数依赖: X → Y,但 X 的某个真子集也能确定 Y。 5. 传递函数依赖: X → Y,Y → Z,则 Z 传递依赖于 X。 6. 候选码: 最小的超码。 7. 主属性: 包含在任一候选码中的属性。 8. 非主属性: 不包含在任何候选码中的属性。 9. 1NF: 属性不可再分。 10. 2NF: 消除非主属性对候选码的部分函数依赖。 11. 3NF: 消除非主属性对候选码的传递函数依赖。 12. BCNF: 每个非平凡函数依赖的左部都是超码。 13. 模式分解: 尽量满足无损连接性和保持函数依赖。

二十五、考前速记口诀

函数依赖 X 定 Y, 知道 X,就知 Y。 候选码,是最小; 能唯一,别多余。 主属性,进候选; 非主属性,不沾边。 一范式,值原子; 二范式,消部分; 三范式,消传递; BCNF,更严格; 决定因素必须是码。 分解关系别乱拆, 无损连接要保真, 函数依赖也要留。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询