这个数据库是 3NF 还是 BCNF?
Is this database 3NF or BCNF?
我有这个 table 规则是:学生在一门学科中接受考试并在 class 列表中获得一个位置。众所周知,两个学生不能在同一科目中获得相同的位置。这是 3NF 数据库还是 BCNF,对此我不能有 100% 肯定的答案
-- Student STUDENT examined in course COURSE
-- obtained position POSITION on class list.
--
test {STUDENT, COURSE, POSITION}
KEY {STUDENT, COURSE}
KEY {COURSE, POSITION}
不平凡FDs
:
{STUDENT, COURSE} --> {POSITION}
{COURSE, POSITION} --> {STUDENT}
使用此作为 NF
的快速检查:
---------------------------------------
For each nontrivial |
FD X --> Y |
at least one holds | 2NF 3NF BCNF
---------------------------------------
X is a superkey ✔ ✔ ✔
Y is a subkey ✔ ✔
X is not a subkey ✔
---------------------------------------
FD X --> Y is trivial iff Y ⊆ X
对于两个非平凡的 FD,X 是一个超级键; BCNF.
我有这个 table 规则是:学生在一门学科中接受考试并在 class 列表中获得一个位置。众所周知,两个学生不能在同一科目中获得相同的位置。这是 3NF 数据库还是 BCNF,对此我不能有 100% 肯定的答案
-- Student STUDENT examined in course COURSE
-- obtained position POSITION on class list.
--
test {STUDENT, COURSE, POSITION}
KEY {STUDENT, COURSE}
KEY {COURSE, POSITION}
不平凡FDs
:
{STUDENT, COURSE} --> {POSITION}
{COURSE, POSITION} --> {STUDENT}
使用此作为 NF
的快速检查:
---------------------------------------
For each nontrivial |
FD X --> Y |
at least one holds | 2NF 3NF BCNF
---------------------------------------
X is a superkey ✔ ✔ ✔
Y is a subkey ✔ ✔
X is not a subkey ✔
---------------------------------------
FD X --> Y is trivial iff Y ⊆ X
对于两个非平凡的 FD,X 是一个超级键; BCNF.