- 如果关系为Boyce Codd范式且没有多值依赖关系, 则关系将为4NF。
- 对于依赖项A→B, 如果对于单个A值, 存在多个B值, 则该关系将是多值依赖项。
学生
STU_ID | 课程 | 爱好 |
---|---|---|
21 | Computer | Dancing |
21 | Math | Singing |
34 | Chemistry | Dancing |
74 | Biology | Cricket |
59 | Physics | Hockey |
在学生关系中, 具有STU_ID(21)的学生包含两门课程, 即计算机和数学, 以及两个爱好(跳舞和唱歌)。因此, 对STU_ID存在多值依赖关系, 这导致不必要的数据重复。
因此, 要将上表转换为4NF, 我们可以将其分解为两个表:
STUDENT_COURSE
STU_ID | 课程 |
---|---|
21 | Computer |
21 | Math |
34 | Chemistry |
74 | Biology |
59 | Physics |
STU_ID | 爱好 |
---|---|
21 | Dancing |
21 | Singing |
34 | Dancing |
74 | Cricket |
59 | Hockey |
推荐阅读
- DBMS功能依赖关系
- DBMS第一范式(1NF)
- DBMS文件组织详解
- DBMS第五范式(5NF)
- DBMS ER模型概念
- DBMS动态散列原理
- DBMS数据模型架构和实例
- DBMS数据独立性
- DBMS冲突可序列化时间表