如果它在4NF 中并且不包含任何连接依赖关系并且连接应该是无损的,则关系在5NF 中。
当所有表都被分成尽可能多的表以便避免冗余时,满足5NF 。
5NF 也称为项目连接正常形式(PJ/NF)。
示例 -
| SUBJECT | LECTURER | SEMESTER |
|---|---|---|
| Computer | Anshika | Semester 1 |
| Computer | John | Semester 1 |
| Math | John | Semester 1 |
| Math | Akash | Semester 2 |
| Chemistry | Praveen | Semester 1 |
在上表中,John为第一学期提供计算机和数学课程,但他没有学习第二学期的数学课程。在这种情况下,需要组合所有这些字段来识别有效数据。
假设添加了一个新学期:第3学期,但不知道科目以及由哪个讲师来讲该科目,因此将讲师(Lecturer)和科目(Subject)留为NULL。 但是这三个列要组合在一起充当主键,因此不能将其他两列留空(NULL)。
因此,为了使上表成为5NF ,可以将它分解为三个关系P1,P2和P3:
P1 表 -
| SEMESTER | SUBJECT |
|---|---|
| Semester 1 | Computer |
| Semester 1 | Math |
| Semester 1 | Chemistry |
| Semester 2 | Math |
P2 表 -
| SUBJECT | LECTURER |
|---|---|
| Computer | Anshika |
| Computer | John |
| Math | John |
| Math | Akash |
| Chemistry | Praveen |
P3 表 -
| SEMSTER | LECTURER |
|---|---|
| Semester 1 | Anshika |
| Semester 1 | John |
| Semester 1 | John |
| Semester 2 | Akash |
| Semester 1 | Praveen |
上一篇:
DBMS第四范式(4NF)
下一篇:
DBMS关系分解
