📅  最后修改于: 2020-12-12 03:06:50             🧑  作者: Mango
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学期,但不知道该科目以及谁将选修该科目,因此我们将讲师和科目保留为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 |