- 如果关系为Boyce Codd范式且没有多值依赖关系, 则关系将为4NF。
- 对于依赖项A→B, 如果对于单个A值, 存在多个B值, 则该关系将是多值依赖项。
例
学生
| STU_ID | 课程 | 爱好 |
|---|---|---|
| 21 | Computer | Dancing |
| 21 | Math | Singing |
| 34 | Chemistry | Dancing |
| 74 | Biology | Cricket |
| 59 | Physics | Hockey |
给定的STUDENT表位于3NF中, 但COURSE和HOBBY是两个独立的实体。因此, COURSE和HOBBY之间没有关系。
在学生关系中, 具有STU_ID(21)的学生包含两门课程, 即计算机和数学, 以及两个爱好(跳舞和唱歌)。因此, 对STU_ID存在多值依赖关系, 这导致不必要的数据重复。
因此, 要将上表转换为4NF, 我们可以将其分解为两个表:
STUDENT_COURSE
| STU_ID | 课程 |
|---|---|
| 21 | Computer |
| 21 | Math |
| 34 | Chemistry |
| 74 | Biology |
| 59 | Physics |
STUDENT_HOBBY
| STU_ID | 爱好 |
|---|---|
| 21 | Dancing |
| 21 | Singing |
| 34 | Dancing |
| 74 | Cricket |
| 59 | Hockey |
srcmini
评论前必须登录!
注册