我有一个关系:
\n\nR4 = {{T,U,V}, {T \xe2\x86\x92 U, U \xe2\x86\x92 T, T \xe2\x86\x92 V}}\n
Run Code Online (Sandbox Code Playgroud)\n\n从答案中我知道这个关系在BCNF中。
\n\n我正在经历严格确定这种关系所遵循的正常形式的过程。我很清楚为什么这种关系是在 1NF 和 2NF 中,如果我假设它是在 3NF 中,BCNF 就很容易遵循。
\n\n然而,3NF 的定义指出:
\n\n\n\n\n每个非素数属性都非传递地依赖于表中的每个候选键。
\n
但是,据我所知, 和{T}
都是{U}
表的候选键,{V}
因此传递依赖于{U}
。
维基百科上有 3NF 的替代定义:
\n\n\nCarlo Zaniolo 在 1982 年给出了与 Codd 等效的 3NF 定义,但表达方式不同。该定义指出,表在 3NF 中当且仅当对于其每个函数依赖项 X \xe2\x86\ x92 A,至少满足以下条件之一:
\n\n\n
- X 包含 A(即 X \xe2\x86\x92 A 是平凡的函数依赖)
\n- X 是一个超级键
\n- AX 的每个元素(A 和 …